/** * */ package fr.unistra.pelican.util.morphology.complements; import fr.unistra.pelican.PelicanException; /** * @author perret * */ public class FuzzyUnifiedSugenoAndYageComplement extends FuzzyComplement { private double omega; private double lambda; public FuzzyUnifiedSugenoAndYageComplement(double lambda,double omega) { if (omega<=0.0 || lambda <= -1.0) throw new PelicanException("Invalid lambda and/or omega parametre!"); this.omega=omega; this.lambda=lambda; } /* (non-Javadoc) * @see fr.unistra.pelican.algorithms.experimental.perret.fuzzy.util.Complements.FuzzyComplement#complement(double) */ @Override public double complement(double a) { return Math.pow((1.0-Math.pow(a,omega))/(1.0+lambda*Math.pow(a,omega)), 1.0/omega); } }