fuzzylite Changelog

What's new in fuzzylite 6.0

May 5, 2017
  • What's New:
  • The FuzzyLite Libraries, namely fuzzylite and jfuzzylite, both in version 6.0, are dual licensed under the GNU General Public License version 3 and the Apache License version 2.
  • By default, fuzzylite builds using C++11 instead of C++98.
  • Important performance improvements.
  • Refactored the following names for the operation of engines: from activation operator to implication operator, from accumulation operator to aggregation operator.
  • Renamed the term Accumulated to Aggregated.
  • New activation methods decouple the activation of rules from the rule block and provide different methods for activating rules (see Activation Methods).
  • New class ActivationFactory provides a factory of activation methods.
  • New class Benchmark to evaluate the performance and accuracy of engines.
  • New class Complexity to estimate the computational complexity of an engine.
  • New class RScriptExporter to export the surfaces of an engine using the ggplot2 library.
  • New class Binary term for binary edges.
  • New UnboundedSum S-Norm in SNormFactory.
  • New classes SNormFunction and TNormFunction to create custom functions on any two values using the Function class.
  • Added description strings to Engine, Variable and RuleBlock
  • Privatized previously protected members of classes and subclasses of Term, Variable, Rule, Defuzzifier, [Cloning|Construction]Factory, Importer, Exporter, amongst others.
  • Improved portability by replacing int for std::size_t where necessary, thereby additionally removing warnings in Windows 64bit
  • Deleted Operation.cpp and inlined its methods into Operation.h
  • Updated .travis.yml to use Docker, and build using g++ (versions 6, 5, 4.9, 4.8, 4.7) and clang (versions 3.8, 3.7, 3.6, and 3.5).
  • Added appveyor.yml to use continuous integration in Windows under Visual Studio 2013 and 2015.
  • Added some unit tests and support for future unit tests.
  • Bug fixes.
  • New example of hybrid engines.
  • New example on obstacle avoidance for Mamdani, Takagi-Sugeno, and Hybrid engines.
  • New R scripts for each example and its respective surfaces in pdf formats.
  • Bug fixes:
  • Fixed bug in CloningFactory::deregisterObject(). Bug: Object was deleted before removing it from the map, leaving an invalid object in the map which would cause a segmentation fault. Solution: Remove the object from the map before deleting it.
  • Fixed bug causing segmentation fault when malformed term in FuzzyLite Language
  • Fixed bug computing the NormalizedSum S-Norm.
  • Fixed bug in RuleBlock to reset and clone the implication operator. Bug: implication operator is not copied and reset. Fix: copy and reset implication operator when cloning the RuleBlock.
  • Fixed bug in Function term. Bug: given a formula = "tan(y)" and a map["y"] = 1.0, and executing Function::load(formula), then the map of variables is reset because load() calls unload() first, causing the deregistration of variable y. Solution: Removed method unload() from load(), thereby causing future load() not to reset variables.
  • Fixed bug in Function when enclosing variable in double parenthesis.

New in fuzzylite 4.0 (Jan 9, 2014)

  • Added new features, improvements, and plenty of refactoring.

New in fuzzylite 3.1 (Sep 2, 2013)

  • Included Tsukamoto controllers and fixed bugs in qtfuzzylite

New in fuzzylite 1.03 (Mar 1, 2011)

  • Fixed makefiles of libraries to remove the main.h and main.cpp files from building in order to avoid problems when building certain configurations of projects.
  • Bugs fixed in FuzzyOperation and CompoundTerm that caused some memory leaks. Courtesy of arash.abghari.

New in fuzzylite 1.02 (Feb 12, 2011)

  • Fixed the Triangulation Algorithm to include the first and last triangle (improved accuracy). Courtesy of rctaylor.
  • Implemented the Trapezoidal Algorithm suggested by William Roeder, although its accuracy is not as good as the Triangulation algorithm.
  • Created the scripts for building fuzzylite as static and dynamic library, as well as building a demo version of it. Tested on Linux Ubuntu and Mac OS X 10.5. Although the Unix version should work under Windows as well using G++.
  • Added LeftShoulderTerm and RightShoulderTerm, just to provide a better understanding when configuring the FuzzyEngine.
  • Changed all the #include for "#include "fuzzylite/?.h".
  • Included the Trapezoidal Algorithm into the GUI.

New in fuzzylite 1.01 (Dec 20, 2010)

  • The source can be built on Linux with no need to add several includes to some files. (I work on MacOSX and I did not build fuzzylite 1.0 on Linux, I just assumed it would build just fine, but some includes were missing in some files. FIXED).
  • Several scripts for building fuzzylite using a simple make. These scripts are created automatically by NetBeans, however, you do not need NetBeans to build fuzzylite nor the gui.
  • The scripts are available for Linux and Mac OS X.