diff --git a/out/artifacts/jFuzzyLogic_jar/jFuzzyLogic.jar b/out/artifacts/jFuzzyLogic_jar/jFuzzyLogic.jar index 4db8b79..7887a30 100644 Binary files a/out/artifacts/jFuzzyLogic_jar/jFuzzyLogic.jar and b/out/artifacts/jFuzzyLogic_jar/jFuzzyLogic.jar differ diff --git a/src/main/java/net/sourceforge/jFuzzyLogic/defuzzifier/DefuzzifierMeanMax.java b/src/main/java/net/sourceforge/jFuzzyLogic/defuzzifier/DefuzzifierMeanMax.java index 23d27a8..ef23d43 100644 --- a/src/main/java/net/sourceforge/jFuzzyLogic/defuzzifier/DefuzzifierMeanMax.java +++ b/src/main/java/net/sourceforge/jFuzzyLogic/defuzzifier/DefuzzifierMeanMax.java @@ -15,28 +15,38 @@ public class DefuzzifierMeanMax extends DefuzzifierContinuous { /** Deffuzification function */ @Override public double defuzzify() { + /** + * Fixes: + * @author mdsflyboy + */ + double max = 0, maxX = 0; - int count = 0; // Calculate max - for( int i = 0; i < values.length; i++ ) { - if( values[i] >= max ) max = values[i]; + for (double value : values) { + if (value >= max) + max = value; } // No max? => this variable has no active antecedent - if( max <= 0 ) return Double.NaN; + if (max <= 0) return Double.NaN; // Calculate mean of max - for( int i = 0; i < values.length; i++ ) { - if( values[i] == max ) { - maxX += min + stepSize * i; - count++; + boolean isFirstMax = false; + int startOfMax = 0; + for (int i = 0; i < values.length; i++) { + if (values[i] == max) { + if (!isFirstMax){ + isFirstMax = true; + startOfMax = i; + } + maxX = i; } } // Return mean of max - return maxX / count; - + int middleI = (int) ((maxX + startOfMax) / 2); + return min + stepSize * middleI; } @Override diff --git a/src/main/java/net/sourceforge/jFuzzyLogic/membership/MembershipFunctionGenBell.java b/src/main/java/net/sourceforge/jFuzzyLogic/membership/MembershipFunctionGenBell.java index e9e00ec..451f9fa 100644 --- a/src/main/java/net/sourceforge/jFuzzyLogic/membership/MembershipFunctionGenBell.java +++ b/src/main/java/net/sourceforge/jFuzzyLogic/membership/MembershipFunctionGenBell.java @@ -64,12 +64,12 @@ public class MembershipFunctionGenBell extends MembershipFunctionContinuous { */ @Override public String toString() { - return getName() + " : " + " , " + parameters[0] + parameters[1] + " , " + parameters[2]; + return getName() + " : " + parameters[1] + " , " + parameters[2] + " , " + parameters[0]; } /** FCL representation */ @Override public String toStringFcl() { - return "GBELL " + parameters[0] + " " + parameters[1] + " " + parameters[2]; + return "GBELL " + parameters[1] + " " + parameters[2] + " " + parameters[0]; } }