27 #ifndef _MEMBERSHIP_HPP_
28 #define _MEMBERSHIP_HPP_
39 #include <tnt/tnt_array1d.h>
40 #include <tnt/tnt_array2d.h>
47 #define MAX_SIZE_TYPE_NAME 16
210 virtual double eval(
double x)
const = 0;
217 virtual double evalder(
double x)
const = 0;
224 virtual double paramder(
size_t parameter,
232 virtual int test(
void)
const;
269 int edit(
size_t index,
278 void edit(
const double*
const parameters);
286 double read(
size_t index)
const;
291 TNT::Array1D<double>
read(
void)
const;
321 double eval(
double x)
const;
322 double evalder(
double x)
const;
340 double eval(
double x)
const;
341 double evalder(
double x)
const;
358 double eval(
double x)
const;
359 double evalder(
double x)
const;
362 int test(
void)
const;
392 double eval(
double x)
const;
393 double evalder(
double x)
const;
396 int test(
void)
const;
399 double Center2 = 0.55,
400 double Beta2 = 0.25);
414 double eval(
double x)
const;
415 double evalder(
double x)
const;
418 int test(
void)
const;
436 double eval(
double x)
const;
437 double evalder(
double x)
const;
440 Pimf(
double a = 0.05,
457 double eval(
double x)
const;
458 double evalder(
double x)
const;
491 double eval(
double x)
const;
492 double evalder(
double x)
const;
510 double eval(
double x)
const;
511 double evalder(
double x)
const;
530 double eval(
double x)
const;
531 double evalder(
double x)
const;
565 double eval(
double x)
const;
566 double evalder(
double x)
const;
569 int test(
void)
const;
600 double eval(
double x)
const;
601 double evalder(
double x)
const;
604 int test(
void)
const;
605 Trimf(
double a = 0.0,
634 double eval(
double x)
const;
635 double evalder(
double x)
const;
static const size_t MF_PARAM_NUMBER[]
Initial number of parameters of each Membership function in FLT::TYPE_MF.
Definition: membership.hpp:166
double evalder(double x) const
Evaluates the derivative of the Membership function with respect to x, .
Definition: membership.cpp:128
double eval(double x) const
Evaluates the Membership function.
Definition: membership.cpp:391
double eval(double x) const
Evaluates the Membership function.
Definition: membership.cpp:223
TYPE_MF
Enumeration with the implemented Membership functions.
Definition: membership.hpp:117
Gaussian Membership function.
Definition: membership.hpp:355
virtual double eval(double x) const =0
Evaluates the Membership function.
double eval(double x) const
Evaluates the Membership function.
Definition: membership.cpp:123
virtual double evalder(double x) const =0
Evaluates the derivative of the Membership function with respect to x, .
Defines output messages (informational messages, warnings, errors, ...).
double paramder(size_t parameter, double x) const
Evaluates the derivative of the Membership function with respect to a parameter, .
Definition: membership.cpp:186
virtual int test(void) const
This function checks parameters in the Membership function, and corrects them if possible.
Definition: membership.cpp:11
Trapezoidal Membership function.
Definition: membership.hpp:562
int test(void) const
This function checks parameters in the Membership function, and corrects them if possible.
Definition: membership.cpp:764
double evalder(double x) const
Evaluates the derivative of the Membership function with respect to x, .
Definition: membership.cpp:181
double paramder(size_t parameter, double x) const
Evaluates the derivative of the Membership function with respect to a parameter, .
Definition: membership.cpp:597
double evalder(double x) const
Evaluates the derivative of the Membership function with respect to x, .
Definition: membership.cpp:442
double eval(double x) const
Evaluates the Membership function.
Definition: membership.cpp:791
double eval(double x) const
Evaluates the Membership function.
Definition: membership.cpp:477
int test(void) const
This function checks parameters in the Membership function, and corrects them if possible.
Definition: membership.cpp:372
Constant Membership function.
Definition: membership.hpp:337
Bell Membership function.
Definition: membership.hpp:411
Fuzzy Logic Tools (FLT) namespace.
Definition: derivatives.hpp:41
double paramder(size_t parameter, double x) const
Evaluates the derivative of the Membership function with respect to a parameter, .
Definition: membership.cpp:407
int sign(double x)
Implementation of the sign function.
Definition: membership.hpp:55
Definition: membership.hpp:122
double evalder(double x) const
Evaluates the derivative of the Membership function with respect to x, .
Definition: membership.cpp:491
Definition: membership.hpp:123
double paramder(size_t parameter, double x) const
Evaluates the derivative of the Membership function with respect to a parameter, .
Definition: membership.cpp:157
Double gaussian Membership function.
Definition: membership.hpp:389
double evalder(double x) const
Evaluates the derivative of the Membership function with respect to x, .
Definition: membership.cpp:351
double evalder(double x) const
Evaluates the derivative of the Membership function with respect to x, .
Definition: membership.cpp:713
Definition: membership.hpp:119
double eval(double x) const
Evaluates the Membership function.
Definition: membership.cpp:621
double evalder(double x) const
Evaluates the derivative of the Membership function with respect to x, .
Definition: membership.cpp:152
Definition: membership.hpp:127
double evalder(double x) const
Evaluates the derivative of the Membership function with respect to x, .
Definition: membership.cpp:590
TNT::Array1D< double > read(void) const
Returns the vector of parameters.
Definition: membership.cpp:65
double paramder(size_t parameter, double x) const
Evaluates the derivative of the Membership function with respect to a parameter, .
Definition: membership.cpp:284
Product of sigmoidals Membership function.
Definition: membership.hpp:454
static const char * MF_NAMES[]
Names of the Membership functions.
Definition: membership.hpp:140
double paramder(size_t parameter, double x) const
Evaluates the derivative of the Membership function with respect to a parameter, .
Definition: membership.cpp:561
Definition: membership.hpp:126
double eval(double x) const
Evaluates the Membership function.
Definition: membership.cpp:434
double paramder(size_t parameter, double x) const
Evaluates the derivative of the Membership function with respect to a parameter, .
Definition: membership.cpp:450
Definition: membership.hpp:130
Membership * createMF(TYPE_MF t)
Virtual constructor for Membership functions.
Definition: membership.cpp:865
double eval(double x) const
Evaluates the Membership function.
Definition: membership.cpp:583
Definition: membership.hpp:120
double evalder(double x) const
Evaluates the derivative of the Membership function with respect to x, .
Definition: membership.cpp:633
double eval(double x) const
Evaluates the Membership function.
Definition: membership.cpp:551
int edit(size_t index, double value)
Changes a parameter.
Definition: membership.cpp:44
double evalder(double x) const
Evaluates the derivative of the Membership function with respect to x, .
Definition: membership.cpp:246
Sigmoidal Membership function.
Definition: membership.hpp:507
Pi (S-Z) Membership function.
Definition: membership.hpp:433
double paramder(size_t parameter, double x) const
Evaluates the derivative of the Membership function with respect to a parameter, .
Definition: membership.cpp:815
int test(void) const
This function checks parameters in the Membership function, and corrects them if possible.
Definition: membership.cpp:312
Any Membership function.
Definition: membership.hpp:318
double eval(double x) const
Evaluates the Membership function.
Definition: membership.cpp:175
size_t n
Number of parameters of the Membership function.
Definition: membership.hpp:202
TYPE_MF type_mf
Type of Membership function.
Definition: membership.hpp:203
double paramder(size_t parameter, double x) const
Evaluates the derivative of the Membership function with respect to a parameter, .
Definition: membership.cpp:729
size_t num_params(void) const
Reads the number of parameters that define the Membership function.
Definition: membership.cpp:16
double evalder(double x) const
Evaluates the derivative of the Membership function with respect to x, .
Definition: membership.cpp:556
This class contains methods and attributes common to all Membership functions.
Definition: membership.hpp:198
TYPE_MF type(void) const
Returns the type of Membership function.
Definition: membership.cpp:21
double paramder(size_t parameter, double x) const
Evaluates the derivative of the Membership function with respect to a parameter, .
Definition: membership.cpp:647
double * param
Vector of parameters that define the Membership function.
Definition: membership.hpp:201
double paramder(size_t parameter, double x) const
Evaluates the derivative of the Membership function with respect to a parameter, .
Definition: membership.cpp:133
Definition: membership.hpp:124
Triangular Membership function.
Definition: membership.hpp:597
int test(void) const
This function checks parameters in the Membership function, and corrects them if possible.
Definition: membership.cpp:198
virtual double paramder(size_t parameter, double x) const =0
Evaluates the derivative of the Membership function with respect to a parameter, .
double evalder(double x) const
Evaluates the derivative of the Membership function with respect to x, .
Definition: membership.cpp:399
Definition: membership.hpp:129
Definition: membership.hpp:121
double eval(double x) const
Evaluates the Membership function.
Definition: membership.cpp:703
double paramder(size_t parameter, double x) const
Evaluates the derivative of the Membership function with respect to a parameter, .
Definition: membership.cpp:356
Definition: membership.hpp:125
Definition: membership.hpp:131
double paramder(size_t parameter, double x) const
Evaluates the derivative of the Membership function with respect to a parameter, .
Definition: membership.cpp:501
Difference of sigmoidals Membership function.
Definition: membership.hpp:527
double evalder(double x) const
Evaluates the derivative of the Membership function with respect to x, .
Definition: membership.cpp:805
int test(void) const
This function checks parameters in the Membership function, and corrects them if possible.
Definition: membership.cpp:675
Definition: membership.hpp:128
double eval(double x) const
Evaluates the Membership function.
Definition: membership.cpp:147
S Membership function.
Definition: membership.hpp:488
Z Membership function.
Definition: membership.hpp:631
double eval(double x) const
Evaluates the Membership function.
Definition: membership.cpp:346