A fuzzy logic C++ library
|
This software is mainly a library, and as so, it should be usable on any platform as soon as the basic requirements (C++ compiler) and the dependencies are met. However, the build system has only been tested on the following platforms:
Since these two are the most representative, I am rather confident for building/using on other platforms. At most, it will require a few minor adjustments in the hardcoded paths in the makefile. See Building the software for more details. Please contact author in case of trouble, or missing details on the build process.
./demo1 ./demo2 ./demo3
try-fis demo_shower.fis
For the core part, this has two answers:
-I/usr/local/include
-I"c:\program files\slifis\include"
/usr/local/lib/lib_slifis.a
to your linker command (or "c:\\program files\\slifis\\lib\\lib_slifis.a"
on Windows.
.a with
.so on Linux (Windows .dll build broken, will be fixed in next release). For the 'gapi' part of library (that is a separate component), it will be similar (see Introduction), except that only the static library (lib_slifis_gapi.a
) is provided. You will need to link also with the used backend-library, as it is of course not possible to include those huge packages in the library.
This linking operation can be done easilly for Cairo/Gtk2 using pkg-config, and by linking manually for OpenCv.
Slifis stands for Simple LInear Fuzzy Inference System. The "Linear" is there to state that the underlying computation is based on line segments (the membership functions are piecewise linear functions). "Simple" because I assumed it would remain kind of a small project, which is not quite true anymore.
Yes, you cannot have a function with a vertical segment, i.e. have two points with same 'x' value. But MEMBFUNC::AddPoint() deals with that, and throws an error if you do.