Installation
- Checkout an actual version from the AG ANI CVS repository:
- Edit the file "./mlsrc/make.include"
- For compiling the library on the AG NI Linux network, all default settings in "make.include" apply.
- If you want to build an installation in a separate directory, set the variable INSTALLDIR.
- Checkout further modules
- Compile the library:
make all
make man
make install
Using the Library
- For using the library with native C/C++ code, link your code with the shared object "libml.so". All module objects "xxx_module.so" will be linked to your code automatically via "libml.so".
- If you want link your code statically, use the xxx_module.a files. Note that there is no libml.a file that includes all modules. If you want to profile your code using gprof (which is indeed a good idea), you have to use the static libraries.
- For using the library in the NEO/NST environment, you can load all shared objects with the prefix neo_ in the NEO prog_unit. You should always load the "neo_base_module.so" first. Note that only a subset of classes is available for the NEO/NST environment.
Further Modules
- MPV-Module (mpv_module):...
- SVM-Module (svm_module): A set of kernel-based algorithms:
- Support Vector Machines for binary classification (supports kernel caching, chunking and shrinking)
- One-Class Support Vector Machines
- Several RKHS kernel functions (e.g. Gaussian, Polynomial, ANOVA, Linear)
- PVM-Module (pvm_module): Several Envelop Classes
- Projection-Module (kernel_module): A set of projection algorithms like Kernel PCA for exchanging objects like CDenseVector, CMatrix or CDataset via PVM/CPPVM streams between distributed processes in a PVM cluster.
Guidelines for Writing New Classes
Since an increasing number of persons is using and extending this library, some standardization like in many other software libraries like VTK or Qt seem to be useful. The following list contains some hints that should facilitate the cooperation of all developers:
Auxiliary Libraries
This library uses LAPACK, ARPACK, BLAS and ATLAS (optionally) since these are standard libraries which provide high performance and stable routines for numerical computing. Nevertheless, each additional library complicates the installation of this code. Therefore, think about:
- Implementing the needed functions by yourself, if they are only a small subset of the auxiliary library
- Use preprocessor directives for disabling that part of code which uses the auxiliary library.
Options
You can use several of the following preprocessor directives:
- SAFE If SAFE is set, all SAFE blocks are enabled. This may cause a small lose of performance, but is useful for debugging your code.
- DS_IS_A_DEQUE If this flag is set, CDataset uses a STL deque instead a STL vector for managing items. Using a deque avoids defragmentation of the memory during extension the size of large datasets. Note that you have always to set this flag, if you include the CDataset header file in your own code.
Copyrigths
COPYRIGHT (C) 2003 APPLIED NEUROINFORMATIC GROUP - UNIVERSITY OF BIELEFELD.
ALL RIGHTS RESERVED.
REDISTRIBUTION AND USE IN SOURCE AND BINARY FORM, WITH OR WITHOUT
MODIFICATION, REQUIRE THE PERMISSION OF THE COPYRIGHT HOLDERS.
COMMERCIAL USE WITHOUT THE EXPLICIT PERMISSION OF THE COPYRIGHT HOLDERS ARE FORBIDDEN
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS ``AS IS''
AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHORS OR CONTRIBUTORS BE LIABLE FOR
ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
Contacts
Axel Saalbach: asaal.nosp@m.bac@.nosp@m.TechF.nosp@m.ak.u.nosp@m.ni-Bi.nosp@m.elef.nosp@m.eld.d.nosp@m.e
Thorsten Twellmann: ttwel.nosp@m.lma@.nosp@m.TechF.nosp@m.ak.U.nosp@m.ni-Bi.nosp@m.elef.nosp@m.eld.d.nosp@m.e