Nebular is a pure Java fuzzy logic API. With nebular you can include fuzzy logic and fuzzy sets to your Java code, without the need of external or binary files.
This is possible in nebular because it uses functional programming. Instead of an external file defining a rule or function, you use Java objects and call methods passing function, predicate or other kinds of functors to model a fuzzy system.
The following code:
double a = 2.0;
double c = 4.0;
SigmoidalMembershipFunction mf = new SigmoidalMembershipFunction(a, c);
for(double i : new DoubleRange(0.0, 10.0, 0.1).toCollection()) {
System.out.printf("%.4f ", mf.apply(i));
}
Produces the following output:
0.0003 0.0004 0.0005 0.0006 0.0007 0.0009 0.0011 0.0014 0.0017 0.0020 0.0025 0.0030 0.0037 0.0045 0.0055 0.0067 0.0082 0.0100 0.0121 0.0148 0.0180 0.0219 0.0266 0.0323 0.0392 0.0474 0.0573 0.0691 0.0832 0.0998 0.1192 0.1419 0.1680 0.1978 0.2315 0.2689 0.3100 0.3543 0.4013 0.4502 0.5000 0.5498 0.5987 0.6457 0.6900 0.7311 0.7685 0.8022 0.8320 0.8581 0.8808 0.9002 0.9168 0.9309 0.9427 0.9526 0.9608 0.9677 0.9734 0.9781 0.9820 0.9852 0.9879 0.9900 0.9918 0.9933 0.9945 0.9955 0.9963 0.9970 0.9975 0.9980 0.9983 0.9986 0.9989 0.9991 0.9993 0.9994 0.9995 0.9996 0.9997 0.9997 0.9998 0.9998 0.9998 0.9999 0.9999 0.9999 0.9999 0.9999 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000
See LICENSE.txt or pom.xml for licensing.