diff options
Diffstat (limited to 'fuzzylite/fl/hedge')
-rw-r--r-- | fuzzylite/fl/hedge/Any.h | 47 | ||||
-rw-r--r-- | fuzzylite/fl/hedge/Extremely.h | 42 | ||||
-rw-r--r-- | fuzzylite/fl/hedge/Hedge.h | 51 | ||||
-rw-r--r-- | fuzzylite/fl/hedge/Not.h | 42 | ||||
-rw-r--r-- | fuzzylite/fl/hedge/Seldom.h | 42 | ||||
-rw-r--r-- | fuzzylite/fl/hedge/Somewhat.h | 42 | ||||
-rw-r--r-- | fuzzylite/fl/hedge/Very.h | 42 |
7 files changed, 308 insertions, 0 deletions
diff --git a/fuzzylite/fl/hedge/Any.h b/fuzzylite/fl/hedge/Any.h new file mode 100644 index 0000000..c30b4c7 --- /dev/null +++ b/fuzzylite/fl/hedge/Any.h @@ -0,0 +1,47 @@ +/* + Author: Juan Rada-Vilela, Ph.D. + Copyright (C) 2010-2014 FuzzyLite Limited + All rights reserved + + This file is part of fuzzylite. + + fuzzylite is free software: you can redistribute it and/or modify it under + the terms of the GNU Lesser General Public License as published by the Free + Software Foundation, either version 3 of the License, or (at your option) + any later version. + + fuzzylite is distributed in the hope that it will be useful, but WITHOUT + ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License + for more details. + + You should have received a copy of the GNU Lesser General Public License + along with fuzzylite. If not, see <http://www.gnu.org/licenses/>. + + fuzzylite™ is a trademark of FuzzyLite Limited. + + */ + +#ifndef FL_ANY_H +#define FL_ANY_H + +#include "fl/hedge/Hedge.h" + +namespace fl { + //Only this hedge has virtual methods due to its special case use. + + class FL_API Any : public Hedge { + public: + Any(); + virtual ~Any() FL_IOVERRIDE; + FL_DEFAULT_COPY_AND_MOVE(Any) + + virtual std::string name() const FL_IOVERRIDE; + virtual scalar hedge(scalar x) const FL_IOVERRIDE; + virtual Any* clone() const FL_IOVERRIDE; + + static Hedge* constructor(); + }; + +} +#endif /* FL_ANY_H */ diff --git a/fuzzylite/fl/hedge/Extremely.h b/fuzzylite/fl/hedge/Extremely.h new file mode 100644 index 0000000..7ecda66 --- /dev/null +++ b/fuzzylite/fl/hedge/Extremely.h @@ -0,0 +1,42 @@ +/* + Author: Juan Rada-Vilela, Ph.D. + Copyright (C) 2010-2014 FuzzyLite Limited + All rights reserved + + This file is part of fuzzylite. + + fuzzylite is free software: you can redistribute it and/or modify it under + the terms of the GNU Lesser General Public License as published by the Free + Software Foundation, either version 3 of the License, or (at your option) + any later version. + + fuzzylite is distributed in the hope that it will be useful, but WITHOUT + ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License + for more details. + + You should have received a copy of the GNU Lesser General Public License + along with fuzzylite. If not, see <http://www.gnu.org/licenses/>. + + fuzzylite™ is a trademark of FuzzyLite Limited. + + */ + +#ifndef FL_EXTREMELY_H +#define FL_EXTREMELY_H + +#include "fl/hedge/Hedge.h" + +namespace fl { + + class FL_API Extremely : public Hedge { + public: + std::string name() const; + scalar hedge(scalar x) const; + Extremely* clone() const; + + static Hedge* constructor(); + }; + +} +#endif /* FL_EXTREMELY_H */ diff --git a/fuzzylite/fl/hedge/Hedge.h b/fuzzylite/fl/hedge/Hedge.h new file mode 100644 index 0000000..011c745 --- /dev/null +++ b/fuzzylite/fl/hedge/Hedge.h @@ -0,0 +1,51 @@ +/* + Author: Juan Rada-Vilela, Ph.D. + Copyright (C) 2010-2014 FuzzyLite Limited + All rights reserved + + This file is part of fuzzylite. + + fuzzylite is free software: you can redistribute it and/or modify it under + the terms of the GNU Lesser General Public License as published by the Free + Software Foundation, either version 3 of the License, or (at your option) + any later version. + + fuzzylite is distributed in the hope that it will be useful, but WITHOUT + ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License + for more details. + + You should have received a copy of the GNU Lesser General Public License + along with fuzzylite. If not, see <http://www.gnu.org/licenses/>. + + fuzzylite™ is a trademark of FuzzyLite Limited. + + */ + +#ifndef FL_HEDGE_H +#define FL_HEDGE_H + +#include "fl/fuzzylite.h" + +#include <string> + +namespace fl { + + class FL_API Hedge { + public: + + Hedge() { + } + + virtual ~Hedge() { + } + FL_DEFAULT_COPY_AND_MOVE(Hedge) + + virtual std::string name() const = 0; + virtual scalar hedge(scalar x) const = 0; + virtual Hedge* clone() const = 0; + + }; +} + +#endif /* FL_HEDGE_H */ diff --git a/fuzzylite/fl/hedge/Not.h b/fuzzylite/fl/hedge/Not.h new file mode 100644 index 0000000..161fefd --- /dev/null +++ b/fuzzylite/fl/hedge/Not.h @@ -0,0 +1,42 @@ +/* + Author: Juan Rada-Vilela, Ph.D. + Copyright (C) 2010-2014 FuzzyLite Limited + All rights reserved + + This file is part of fuzzylite. + + fuzzylite is free software: you can redistribute it and/or modify it under + the terms of the GNU Lesser General Public License as published by the Free + Software Foundation, either version 3 of the License, or (at your option) + any later version. + + fuzzylite is distributed in the hope that it will be useful, but WITHOUT + ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License + for more details. + + You should have received a copy of the GNU Lesser General Public License + along with fuzzylite. If not, see <http://www.gnu.org/licenses/>. + + fuzzylite™ is a trademark of FuzzyLite Limited. + + */ + +#ifndef FL_NOT_H +#define FL_NOT_H + +#include "fl/hedge/Hedge.h" + +namespace fl { + + class FL_API Not : public Hedge { + public: + std::string name() const FL_IOVERRIDE; + scalar hedge(scalar x) const FL_IOVERRIDE; + Not* clone() const FL_IOVERRIDE; + + static Hedge* constructor(); + }; + +} +#endif /* FL_NOT_H */ diff --git a/fuzzylite/fl/hedge/Seldom.h b/fuzzylite/fl/hedge/Seldom.h new file mode 100644 index 0000000..a2a96c2 --- /dev/null +++ b/fuzzylite/fl/hedge/Seldom.h @@ -0,0 +1,42 @@ +/* + Author: Juan Rada-Vilela, Ph.D. + Copyright (C) 2010-2014 FuzzyLite Limited + All rights reserved + + This file is part of fuzzylite. + + fuzzylite is free software: you can redistribute it and/or modify it under + the terms of the GNU Lesser General Public License as published by the Free + Software Foundation, either version 3 of the License, or (at your option) + any later version. + + fuzzylite is distributed in the hope that it will be useful, but WITHOUT + ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License + for more details. + + You should have received a copy of the GNU Lesser General Public License + along with fuzzylite. If not, see <http://www.gnu.org/licenses/>. + + fuzzylite™ is a trademark of FuzzyLite Limited. + + */ + +#ifndef FL_SELDOM_H +#define FL_SELDOM_H + +#include "fl/hedge/Hedge.h" + +namespace fl { + + class FL_API Seldom : public Hedge { + public: + std::string name() const FL_IOVERRIDE; + scalar hedge(scalar x) const FL_IOVERRIDE; + Seldom* clone() const FL_IOVERRIDE; + + static Hedge* constructor(); + }; + +} +#endif /* FL_SELDOM_H */ diff --git a/fuzzylite/fl/hedge/Somewhat.h b/fuzzylite/fl/hedge/Somewhat.h new file mode 100644 index 0000000..89a14a6 --- /dev/null +++ b/fuzzylite/fl/hedge/Somewhat.h @@ -0,0 +1,42 @@ +/* + Author: Juan Rada-Vilela, Ph.D. + Copyright (C) 2010-2014 FuzzyLite Limited + All rights reserved + + This file is part of fuzzylite. + + fuzzylite is free software: you can redistribute it and/or modify it under + the terms of the GNU Lesser General Public License as published by the Free + Software Foundation, either version 3 of the License, or (at your option) + any later version. + + fuzzylite is distributed in the hope that it will be useful, but WITHOUT + ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License + for more details. + + You should have received a copy of the GNU Lesser General Public License + along with fuzzylite. If not, see <http://www.gnu.org/licenses/>. + + fuzzylite™ is a trademark of FuzzyLite Limited. + + */ + +#ifndef FL_SOMEWHAT_H +#define FL_SOMEWHAT_H + +#include "fl/hedge/Hedge.h" + +namespace fl { + + class FL_API Somewhat : public Hedge { + public: + std::string name() const FL_IOVERRIDE; + scalar hedge(scalar x) const FL_IOVERRIDE; + Somewhat* clone() const FL_IOVERRIDE; + + static Hedge* constructor(); + }; + +} +#endif /* FL_SOMEWHAT_H */ diff --git a/fuzzylite/fl/hedge/Very.h b/fuzzylite/fl/hedge/Very.h new file mode 100644 index 0000000..bcfe5e4 --- /dev/null +++ b/fuzzylite/fl/hedge/Very.h @@ -0,0 +1,42 @@ +/* + Author: Juan Rada-Vilela, Ph.D. + Copyright (C) 2010-2014 FuzzyLite Limited + All rights reserved + + This file is part of fuzzylite. + + fuzzylite is free software: you can redistribute it and/or modify it under + the terms of the GNU Lesser General Public License as published by the Free + Software Foundation, either version 3 of the License, or (at your option) + any later version. + + fuzzylite is distributed in the hope that it will be useful, but WITHOUT + ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License + for more details. + + You should have received a copy of the GNU Lesser General Public License + along with fuzzylite. If not, see <http://www.gnu.org/licenses/>. + + fuzzylite™ is a trademark of FuzzyLite Limited. + + */ + +#ifndef FL_VERY_H +#define FL_VERY_H + +#include "fl/hedge/Hedge.h" + +namespace fl { + + class FL_API Very : public Hedge { + public: + std::string name() const FL_IOVERRIDE; + scalar hedge(scalar x) const FL_IOVERRIDE; + Very* clone() const FL_IOVERRIDE; + + static Hedge* constructor(); + }; + +} +#endif /* FL_VERY_H */ |