Fidlib: Run-time filter design and execution library.
----------------------------------------------------

Copyright (c) 2002-2004 Jim Peters <http://uazu.net/>.  This library
is released under the GNU Lesser General Public License (LGPL) version
2.1 as published by the Free Software Foundation.  See the file
COPYING_LIB, or visit <http://www.fsf.org/licenses/licenses.html>.

 "This library is distributed in the hope that it will be useful, but
  WITHOUT ANY WARRANTY; without even the implied warranty of
  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE."

It was designed as a backend for the 'fiview' application
(uazu.net/fiview), and to provide performance filtering services to
EEG applications (and others), such as EEGMIR (uazu.net/eegmir).

See Fiview for a more interactive introduction to the filters
included, more related documentation, and for the opportunity to
generate even higher performing filters through generating C code for
a class of filters, compiling it, and at run-time filling in the
coefficients using fidlib.

---

This directory contains a number of testing scripts in addition to the
fidlib source.

  mk-test	Create mini testing apps: do-test-*
  test		Test the speed of these apps
  test-output	Check that the output agrees
  test-codegen	Dump all the code generated by the JIT option

---

See the source files for full library API documentation.

To include this library in your application, build fidlib.c along with
your other C files.  The fidlib.c file #includes all the other source
files it needs.  You will also need to #include fidlib.h in your
source files to get the structure and function declarations.

There are three choices for the filter engine, but only one of these
is actually useful.  The 'combined' option can be slower and is
unstable for larger filters (this is the equivalent to the original
'mkfilter' method) and the 'jit' option is no longer maintained as it
was only slightly faster than the 'cmdlist' option.  This leaves
'cmdlist' as the recommended option.  The 'cmdlist' option should be
portable to other processors as well, which the JIT option certainly
wasn't.

Target-specific fixes are selected according to which of the T_*
macros is set.  See the source.  Targets defined so far are:

  T_LINUX
  T_MINGW
  T_MSVC

Jim 

--
 Jim Peters                   (_)/=\~/_(_)                        Uaz
                           (_)  /=\  ~/_  (_)
                        (_)    /=\    ~/_    (_)                
 Brighton, UK        (_) ____ /=\ ____ ~/_ ____ (_)           uazu.net
