liba
0.1.15
An algorithm library based on C/C++
Toggle main menu visibility
Loading...
Searching...
No Matches
fuzzy.h
Go to the documentation of this file.
1
5
6
#ifndef LIBA_FUZZY_H
7
#define LIBA_FUZZY_H
8
9
#include "
a.h
"
10
16
17
#if defined(__cplusplus)
18
extern
"C"
{
19
#endif
/* __cplusplus */
20
#if defined(LIBA_FUZZY_C)
22
#undef A_INTERN
23
#define A_INTERN A_INLINE
25
#endif
/* LIBA_FUZZY_C */
26
32
#if !defined A_HAVE_INLINE || defined(LIBA_FUZZY_C)
33
A_EXTERN
a_real
a_fuzzy_not
(
a_real
x);
34
#endif
/* A_HAVE_INLINE */
35
#if defined(A_HAVE_INLINE) || defined(LIBA_FUZZY_C)
36
A_INTERN
a_real
a_fuzzy_not
(
a_real
x) {
return
1 - x; }
37
#endif
/* A_HAVE_INLINE */
38
45
#if !defined A_HAVE_INLINE || defined(LIBA_FUZZY_C)
46
A_EXTERN
a_real
a_fuzzy_cap
(
a_real
a,
a_real
b);
47
#endif
/* A_HAVE_INLINE */
48
#if defined(A_HAVE_INLINE) || defined(LIBA_FUZZY_C)
49
A_INTERN
a_real
a_fuzzy_cap
(
a_real
a,
a_real
b) {
return
A_MIN
(a, b); }
50
#endif
/* A_HAVE_INLINE */
51
58
#if !defined A_HAVE_INLINE || defined(LIBA_FUZZY_C)
59
A_EXTERN
a_real
a_fuzzy_cap_algebra
(
a_real
a,
a_real
b);
60
#endif
/* A_HAVE_INLINE */
61
#if defined(A_HAVE_INLINE) || defined(LIBA_FUZZY_C)
62
A_INTERN
a_real
a_fuzzy_cap_algebra
(
a_real
a,
a_real
b) {
return
a * b; }
63
#endif
/* A_HAVE_INLINE */
64
71
#if !defined A_HAVE_INLINE || defined(LIBA_FUZZY_C)
72
A_EXTERN
a_real
a_fuzzy_cap_bounded
(
a_real
a,
a_real
b);
73
#endif
/* A_HAVE_INLINE */
74
#if defined(A_HAVE_INLINE) || defined(LIBA_FUZZY_C)
75
A_INTERN
a_real
a_fuzzy_cap_bounded
(
a_real
a,
a_real
b)
76
{
77
a_real
const
c = a + b - 1;
78
return
A_MAX
(c, 0);
79
}
80
#endif
/* A_HAVE_INLINE */
81
88
#if !defined A_HAVE_INLINE || defined(LIBA_FUZZY_C)
89
A_EXTERN
a_real
a_fuzzy_cup
(
a_real
a,
a_real
b);
90
#endif
/* A_HAVE_INLINE */
91
#if defined(A_HAVE_INLINE) || defined(LIBA_FUZZY_C)
92
A_INTERN
a_real
a_fuzzy_cup
(
a_real
a,
a_real
b) {
return
A_MAX
(a, b); }
93
#endif
/* A_HAVE_INLINE */
94
101
#if !defined A_HAVE_INLINE || defined(LIBA_FUZZY_C)
102
A_EXTERN
a_real
a_fuzzy_cup_algebra
(
a_real
a,
a_real
b);
103
#endif
/* A_HAVE_INLINE */
104
#if defined(A_HAVE_INLINE) || defined(LIBA_FUZZY_C)
105
A_INTERN
a_real
a_fuzzy_cup_algebra
(
a_real
a,
a_real
b) {
return
a + b - a * b; }
106
#endif
/* A_HAVE_INLINE */
107
114
#if !defined A_HAVE_INLINE || defined(LIBA_FUZZY_C)
115
A_EXTERN
a_real
a_fuzzy_cup_bounded
(
a_real
a,
a_real
b);
116
#endif
/* A_HAVE_INLINE */
117
#if defined(A_HAVE_INLINE) || defined(LIBA_FUZZY_C)
118
A_INTERN
a_real
a_fuzzy_cup_bounded
(
a_real
a,
a_real
b)
119
{
120
a_real
const
c = a + b;
121
return
A_MIN
(c, 1);
122
}
123
#endif
/* A_HAVE_INLINE */
124
131
A_EXTERN
a_real
a_fuzzy_equ
(
a_real
a,
a_real
b);
132
140
A_EXTERN
a_real
a_fuzzy_equ_
(
a_real
gamma,
a_real
a,
a_real
b);
141
142
#if defined(LIBA_FUZZY_C)
144
#undef A_INTERN
145
#define A_INTERN static A_INLINE
147
#endif
/* LIBA_FUZZY_C */
148
#if defined(__cplusplus)
149
}
/* extern "C" */
150
#endif
/* __cplusplus */
151
153
154
#endif
/* a/fuzzy.h */
a.h
algorithm library
a_fuzzy_cup_bounded
a_real a_fuzzy_cup_bounded(a_real a, a_real b)
bounded sum operator
a_fuzzy_cap_bounded
a_real a_fuzzy_cap_bounded(a_real a, a_real b)
bounded product operator
a_fuzzy_cup
a_real a_fuzzy_cup(a_real a, a_real b)
fuzzy union operator
a_fuzzy_cup_algebra
a_real a_fuzzy_cup_algebra(a_real a, a_real b)
algebraic sum operator
a_fuzzy_equ
a_real a_fuzzy_equ(a_real a, a_real b)
equilibrium operator
a_fuzzy_equ_
a_real a_fuzzy_equ_(a_real gamma, a_real a, a_real b)
equilibrium operator
a_fuzzy_cap
a_real a_fuzzy_cap(a_real a, a_real b)
fuzzy intersection operator
a_fuzzy_not
a_real a_fuzzy_not(a_real x)
complementary operator
a_fuzzy_cap_algebra
a_real a_fuzzy_cap_algebra(a_real a, a_real b)
algebraic product operator
a_real
double a_real
compiler built-in floating-point number type
Definition
a.h:1012
A_MIN
#define A_MIN(x, y)
minimum value between x and y
Definition
a.h:1071
A_MAX
#define A_MAX(x, y)
maximum value between x and y
Definition
a.h:1076
fuzzy.h
Generated by
1.17.0