Numerix-DSP Home Page  

SigLib FAQ


This is a list of commonly asked questions about SigLib.

What are the main benefits of using SigLib ?

We have spent many thousands of hours coding, testing and optimizing the SigLib functions across a range of different processors. You can use all of this knowledge in your applications and whats more, you can start your software development on your favourite development platform and then recompile it for your chosen DSP, when you need to move to a real-time environment. SigLib has a very rich functional set and allows very quick application development. Click here to find out what our customers say about us.

But what if I require the performance of hand optimised assembly routines ?

Most microprocessor and DSP manufacturers supply hand optimized functions for low level operations such as FFTs etc. If you need other functions optimized for your particular target proccessor then please do contact us and we will be more than happy to try to help.

Do You Have A List Of Customers That Are Using SigLib ?

Yes, Numerix is proud that the following companies use our products: /customers.html.

What Is The Best Way To Evaluate SigLib ?

The full SigLib library source code and documentation is available on: GitHub. Refer to the User's Guide for installation instructions for your chosen compiler (located in the folder: siglib/docs/Users.pdf). Then navigate to the Examples folder siglib/Examples/CExamples. We also provide an introductory video.

Am I required to use the standard math functions provided with SigLib (e.g SDA_Sin()) or can I use those provided with my compiler ?

Not at all. The SigLib math library functions are just macros that call the functions provided by your compiler. The reason why these macros are used is because some DSP compilers use variations of the standard functions to support processor architectures with different word lengths.

Do you support C++ ?

Yes. Although it is written in ANSI C, SigLib has been written to be fully compatible with C++ and examples are provided to show how to compile and link C++ applications.

Does SigLib support fixed point devices ?

SigLib has been written to support floating point processors and as such, it does not support fixed point data scaling. The most common technique for supporting fixed point processors is to start with floating point data and then port the algortihm to fixed point. It is important to be aware that the scaling issues associated with using integer architectures are very dependent on the choice of algorithm and processor, they are not handled by SigLib because they are best handled by the application developer. Further information on this subject is available in an applications note.

How easy is it to change the data type used ?

The user interface to the SigLib library is via a "C" header file, each supported processor has a section describing the device and its environment. Changing the data types for a supported processor is simply a matter of changing one single typedef and recompiling.

Is SigLib Multi-thread Safe ?

Yes, the SigLib library has been written to be completely multi-thread safe. All variables are either local to each function call or are maintained but the calling thread.

How easy is it to add support for a new processor ?

Each supported processor has a section in the "C" header file, describing the device and its environment. Adding support for a new device is simply a matter of copying an existing section that closely matches your requirement, modifying the appropriate directives and recompiling the library. This technique has been used successfully by several companies who have ported SigLib to many different environments.

What format does the SigLib documentation take ?

The SigLib documentation is in two parts - a User's Guide and a Function Reference Manual - in pdf file format or printed form. The User's Guide gives an introduction to each part of the library, while the Reference Manual gives a description of every function in the library.

Is the SigLib documentation available in hard copy format ?

Yes. As standard, the SigLib documentation is provided in electronic pdf file format however printed copies are available on request.

How easy is SigLib to learn ?

One of the most important features of the SigLib package is the examples section, this is provided to allow users to quickly familiarise themselves with the package and also to allow them to quickly develop their applications. SigLib includes over 80 example programs, for both simulations and real-time systems. See How Easy SigLib Is To Use

What about the future ?

Numerix has been supplying and supporting SigLib since 1992 and fully intends to support it in the future with more features, extra functionality and support for newer processors.

Are any benchmark figures available ?

But surely C code is not very efficient ?

The SigLib routines have been coded with a great deal of thought going into their run-time efficiency. While we accept that there will always be routines that are more efficient to code at the assembly level, modern C compilers can produce very efficient assembly code. We follow a set of standard guide lines for coding our functions for optimum run-time efficiency.

Can I use the SigLib performance together with MatLab, Visual Basic, Delphi, Vee, LabView or Excel graphics ?

Yes, SigLib and MatLab use interchangable delimited ASCII data files formats. SigLib is also available as a 32 bit DLL and these can be called from most programs that can call DLLs.

If these are ANSI C libraries, what makes them specific to any specific processor ?

The libraries are coded entirely in ANSI C and so they are portable across all processors however there are a whole load of issues to consider, including:

Selecting the appropriate word length for the processor to optimise the performance and or results
Slight modifications to the algorithms to ensure that they are optimised
Rigorous testing to ensure that the compiled code really does give the correct results

Do the SigLib functions support continuous data streams ?

Yes. Where appropriate all of the functions are designed and tested to support continuous data streams that are divided into blocks. Many of the functions (e.g. filtering) have block and sample oriented variants so that the processing can be optimised for each particular application.

How usable are the graphics functions in the Windows environment ?

The graphics functionality is designed for DOS based applications and originates from the time when there was very little in the way of available libraries. Under Windows 95/98/NT or Solaris, there are now a large number of libraries and other applications that provide this functionality and we have no intention of competing with them. As a company we use 3 main packages that provide varying levels of graphical handling capabilities, these are: Microsoft Visual C/C++, Visual Basic and Hewlett-Packard's VEE. The latter is a very very good package and you can get a free working demonstration from their web site. If you do decide to use a package like C++ then you will find, as we do, that the standard SigLib graphics libraries provide a lot of functionality that you can pull into your application.

Do you have a representative in my country ?

In general, Sigma Numerix does not deal through distributors or representatives because we are able to provide a higher level of technical support by working directly with our customers.



YouTube 
Email Numerix
Email

Copyright© 2022 Sigma Numerix Ltd.. Permission is granted to create WWW pointers to this document.
SigLib, Digital Filter Plus and Numerix-DSP are trademarks of Sigma Numerix Ltd. All other trademarks acknowledged.