A fuzzy logic C++ library
Namespaces | Functions
global_functions.cpp File Reference

This file contains implementation of the fuzzy AND, OR and product functions, plus some functions used by them. More...

#include "global_functions.hpp"
#include "slifis.hpp"
#include "pline.hpp"
#include "private.hpp"
#include <boost/version.hpp>
+ Include dependency graph for global_functions.cpp:

Namespaces

namespace  slifis
 

This namespace includes all root classes, functions, and datatypes of the library.


Functions

void slifis::P_FindIntersectionPoints (const MEMBFUNC &f1, const MEMBFUNC &f2, MEMBFUNC &out)
 Finds all intersection points between f1 and f2, and adds them to out.
void slifis::P_ProcessPoints (const MEMBFUNC &fa, const MEMBFUNC &fb, MEMBFUNC &out, EN_MERGE_OP op)
 Considers all points of fa and fb, and adds them to out. Local function, not exported.
void slifis::P_FindLowestFunction (const MEMBFUNC *f1, const MEMBFUNC *f2, const MEMBFUNC **f_L, const MEMBFUNC **f_R)
 Returns in f_L a pointer on the function f1 or f2, the one that first point is the lowest, and in f_R the other one.
static void slifis::PrintDifferences (FILE *f, const RULE_BASE &rb1, const RULE_BASE &rb2)
 Prints in f the differences between the two rule bases.
static void slifis::PrintDifferences (FILE *f, const FUZZY_ROOT &set1, const FUZZY_ROOT &set2)
 Prints in f the differences between the two sets of functions.
void slifis::FuzzyMerge (EN_MERGE_OP op, const MEMBFUNC &in1, const MEMBFUNC &in2, MEMBFUNC &out)
 A wrapper functions for combining two membership function together, using slifis::EN_MERGE_OP.
void slifis::FuzzyBSum (const MEMBFUNC &f1, const MEMBFUNC &f2, MEMBFUNC &out)
 Performs bounded sum between two functions ( $ y = \min(1,a+b) $ )
void slifis::FuzzyPSum (const MEMBFUNC &f1, const MEMBFUNC &f2, MEMBFUNC &out)
 Performs Probabilistic sum between two functions ( $ y = a+b-a.b $ )
void slifis::FuzzyLukas (const MEMBFUNC &f1, const MEMBFUNC &f2, MEMBFUNC &out)
 Performs Ɓukasiewicz t-norm between two functions ( $ y = \max \{ 0, a+b-1 \} $ )
void slifis::FuzzyProduct (const MEMBFUNC &f1, const MEMBFUNC &f2, MEMBFUNC &out)
 Performs fuzzy product between two functions.
void slifis::FuzzyMin (const MEMBFUNC &f1, const MEMBFUNC &f2, MEMBFUNC &out)
 Performs fuzzy MIN between two functions.
void slifis::FuzzyMax (const MEMBFUNC &f1, const MEMBFUNC &f2, MEMBFUNC &out)
 Performs fuzzy MAX between two functions.
size_t slifis::P_FIP_OneSide (const MEMBFUNC *f1, const MEMBFUNC *f2, MEMBFUNC *out)
 Finds all intersection points between f1 and f2, and adds them to out.
void slifis::P_Process_OneSide (const MEMBFUNC &fa, const MEMBFUNC &fb, MEMBFUNC &out, EN_MERGE_OP op)
 Consider all points of fa, and compare to y value of fb. Add point to out if operation op tells to do so.
void slifis::P_AddPointIfInInterval (MEMBFUNC *out, REALVAL x, FUZZYVAL y, REALVAL x1, REALVAL x2)
 Local function, not exported.
const char * slifis::GetNow_String ()
 A function for returning current date.
void slifis::PrintBuildInfo (std::ostream &st)
 Prints out build information in stream st.
void slifis::PrintDifferences (FILE *f, const SLIFIS &fis1, const SLIFIS &fis2)
 Prints in f the differences between the two FIS.

Detailed Description

This file contains implementation of the fuzzy AND, OR and product functions, plus some functions used by them.

The task is divided in several steps: