[jboss-svn-commits] JBL Code SVN: r26839 - in labs/jbossrules/branches/DroolsChance/drools-core: src/main/java/org/drools and 8 other directories.

jboss-svn-commits at lists.jboss.org jboss-svn-commits at lists.jboss.org
Thu Jun 4 19:58:24 EDT 2009


Author: dsotty
Date: 2009-06-04 19:58:24 -0400 (Thu, 04 Jun 2009)
New Revision: 26839

Added:
   labs/jbossrules/branches/DroolsChance/drools-core/src/main/java/org/drools/bayesian/
   labs/jbossrules/branches/DroolsChance/drools-core/src/main/java/org/drools/bayesian/BooleanDomain.java
   labs/jbossrules/branches/DroolsChance/drools-core/src/main/java/org/drools/bayesian/IDomain.java
   labs/jbossrules/branches/DroolsChance/drools-core/src/main/java/org/drools/bayesian/RealDomain.java
   labs/jbossrules/branches/DroolsChance/drools-core/src/main/java/org/drools/degrees/ProbabilityDistributionDegree.java
   labs/jbossrules/branches/DroolsChance/drools-core/src/main/java/org/drools/degrees/factory/BayesianDegreeFactory.java
   labs/jbossrules/branches/DroolsChance/drools-core/src/main/java/org/drools/fuzzy/FuzzyRealDomain.java
Removed:
   labs/jbossrules/branches/DroolsChance/drools-core/src/main/java/org/drools/fuzzy/RealDomain.java
Modified:
   labs/jbossrules/branches/DroolsChance/drools-core/pom.xml
   labs/jbossrules/branches/DroolsChance/drools-core/src/main/java/org/drools/degrees/IntervalDegree.java
   labs/jbossrules/branches/DroolsChance/drools-core/src/main/java/org/drools/degrees/factory/SimpleDegreeFactory.java
   labs/jbossrules/branches/DroolsChance/drools-core/src/main/java/org/drools/degrees/operators/IDiscountOperator.java
   labs/jbossrules/branches/DroolsChance/drools-core/src/main/java/org/drools/degrees/operators/intervals/IntervalDiscountOperator.java
   labs/jbossrules/branches/DroolsChance/drools-core/src/main/java/org/drools/degrees/operators/intervals/IntervalDiscountStrategy.java
   labs/jbossrules/branches/DroolsChance/drools-core/src/main/java/org/drools/degrees/operators/intervals/IntervalDoubleMPOperator.java
   labs/jbossrules/branches/DroolsChance/drools-core/src/main/java/org/drools/degrees/operators/intervals/IntervalEquivOperator.java
   labs/jbossrules/branches/DroolsChance/drools-core/src/main/java/org/drools/degrees/operators/intervals/IntervalExistsOperator.java
   labs/jbossrules/branches/DroolsChance/drools-core/src/main/java/org/drools/degrees/operators/intervals/IntervalForallOperator.java
   labs/jbossrules/branches/DroolsChance/drools-core/src/main/java/org/drools/degrees/operators/intervals/IntervalIntersectionOperator.java
   labs/jbossrules/branches/DroolsChance/drools-core/src/main/java/org/drools/degrees/operators/intervals/IntervalLukasImplicationOperator.java
   labs/jbossrules/branches/DroolsChance/drools-core/src/main/java/org/drools/degrees/operators/intervals/IntervalMaxOrOperator.java
   labs/jbossrules/branches/DroolsChance/drools-core/src/main/java/org/drools/degrees/operators/intervals/IntervalMinAndOperator.java
   labs/jbossrules/branches/DroolsChance/drools-core/src/main/java/org/drools/degrees/operators/intervals/IntervalXorOperator.java
   labs/jbossrules/branches/DroolsChance/drools-core/src/main/java/org/drools/degrees/operators/simple/SimpleAverage.java
   labs/jbossrules/branches/DroolsChance/drools-core/src/main/java/org/drools/degrees/operators/simple/SimpleDiscountOperator.java
   labs/jbossrules/branches/DroolsChance/drools-core/src/main/java/org/drools/degrees/operators/simple/SimpleDiscountStrategy.java
   labs/jbossrules/branches/DroolsChance/drools-core/src/main/java/org/drools/degrees/operators/simple/SimpleDotAnd.java
   labs/jbossrules/branches/DroolsChance/drools-core/src/main/java/org/drools/degrees/operators/simple/SimpleDoubleMPOperator.java
   labs/jbossrules/branches/DroolsChance/drools-core/src/main/java/org/drools/degrees/operators/simple/SimpleEquiv.java
   labs/jbossrules/branches/DroolsChance/drools-core/src/main/java/org/drools/degrees/operators/simple/SimpleLukasAnd.java
   labs/jbossrules/branches/DroolsChance/drools-core/src/main/java/org/drools/degrees/operators/simple/SimpleLukasImplication.java
   labs/jbossrules/branches/DroolsChance/drools-core/src/main/java/org/drools/degrees/operators/simple/SimpleLukasOr.java
   labs/jbossrules/branches/DroolsChance/drools-core/src/main/java/org/drools/degrees/operators/simple/SimpleMaxMergeStrategy.java
   labs/jbossrules/branches/DroolsChance/drools-core/src/main/java/org/drools/degrees/operators/simple/SimpleMaxOr.java
   labs/jbossrules/branches/DroolsChance/drools-core/src/main/java/org/drools/degrees/operators/simple/SimpleMinAnd.java
   labs/jbossrules/branches/DroolsChance/drools-core/src/main/java/org/drools/degrees/operators/simple/SimpleMinMergeStrategy.java
   labs/jbossrules/branches/DroolsChance/drools-core/src/main/java/org/drools/degrees/operators/simple/SimpleNot.java
   labs/jbossrules/branches/DroolsChance/drools-core/src/main/java/org/drools/degrees/operators/simple/SimpleVeryModifier.java
   labs/jbossrules/branches/DroolsChance/drools-core/src/main/java/org/drools/degrees/operators/simple/SimpleXor.java
   labs/jbossrules/branches/DroolsChance/drools-core/src/main/java/org/drools/fuzzy/FuzzySet.java
   labs/jbossrules/branches/DroolsChance/drools-core/src/test/java/org/drools/degrees/SimpleDegreeTest.java
Log:


Modified: labs/jbossrules/branches/DroolsChance/drools-core/pom.xml
===================================================================
--- labs/jbossrules/branches/DroolsChance/drools-core/pom.xml	2009-06-04 23:57:29 UTC (rev 26838)
+++ labs/jbossrules/branches/DroolsChance/drools-core/pom.xml	2009-06-04 23:58:24 UTC (rev 26839)
@@ -35,7 +35,11 @@
     <dependency>
       <groupId>joda-time</groupId>
       <artifactId>joda-time</artifactId>
-    </dependency>         
+    </dependency>
+    <dependency>
+    	<groupId>Jama</groupId>
+    	<artifactId>Jama</artifactId>
+    	<version>1.0.2</version></dependency>
   </dependencies>
   
   <build>

Added: labs/jbossrules/branches/DroolsChance/drools-core/src/main/java/org/drools/bayesian/BooleanDomain.java
===================================================================
--- labs/jbossrules/branches/DroolsChance/drools-core/src/main/java/org/drools/bayesian/BooleanDomain.java	                        (rev 0)
+++ labs/jbossrules/branches/DroolsChance/drools-core/src/main/java/org/drools/bayesian/BooleanDomain.java	2009-06-04 23:58:24 UTC (rev 26839)
@@ -0,0 +1,39 @@
+package org.drools.bayesian;
+
+public class BooleanDomain implements IDomain {
+
+	private int focus;
+	
+	public Double getSize() {
+		return new Double(2);
+	}
+	
+	public int getN() {
+		return 2;
+	}
+
+	public boolean includes(Object o) {
+		return (o instanceof Boolean);
+	}
+
+	public boolean isFinite() {
+		return true;
+	}
+
+	
+	public int getFocus() {
+		return focus <= 0 ? 0 : 1;
+	}
+
+	public void setFocus(int j) {
+		focus = j <= 0 ? 0 : 1;		
+	}
+
+	public void setFocus(Object o) {
+		if (o instanceof Boolean) {
+			focus = ((Boolean) o) ? 1 : 0; 
+		}
+		
+	}
+
+}

Added: labs/jbossrules/branches/DroolsChance/drools-core/src/main/java/org/drools/bayesian/IDomain.java
===================================================================
--- labs/jbossrules/branches/DroolsChance/drools-core/src/main/java/org/drools/bayesian/IDomain.java	                        (rev 0)
+++ labs/jbossrules/branches/DroolsChance/drools-core/src/main/java/org/drools/bayesian/IDomain.java	2009-06-04 23:58:24 UTC (rev 26839)
@@ -0,0 +1,19 @@
+package org.drools.bayesian;
+
+public interface IDomain {
+
+	public Double getSize();
+	
+	public int getN();
+	
+	public boolean isFinite();
+	
+	public boolean includes(Object o);
+	
+	public int getFocus();
+	
+	public void setFocus(int j);
+	
+	public void setFocus(Object o);
+	
+}

Added: labs/jbossrules/branches/DroolsChance/drools-core/src/main/java/org/drools/bayesian/RealDomain.java
===================================================================
--- labs/jbossrules/branches/DroolsChance/drools-core/src/main/java/org/drools/bayesian/RealDomain.java	                        (rev 0)
+++ labs/jbossrules/branches/DroolsChance/drools-core/src/main/java/org/drools/bayesian/RealDomain.java	2009-06-04 23:58:24 UTC (rev 26839)
@@ -0,0 +1,43 @@
+package org.drools.bayesian;
+
+import org.drools.base.ValueType;
+import org.drools.bayesian.IDomain;
+import org.drools.degrees.IDegree;
+
+
+
+public class RealDomain implements IDomain {
+	
+	private Double value;
+	
+	public Double getSize() {
+		return Double.POSITIVE_INFINITY;
+	}
+	
+	public boolean includes(Object o) {
+		return o instanceof Number;
+	}
+	
+	public boolean isFinite() {
+		return false;
+	}
+	
+	public int getN() {
+		return -1;
+	}
+
+	public int getFocus() {
+		// TODO Auto-generated method stub
+		return 0;
+	}
+
+	public void setFocus(int j) {
+		// TODO Auto-generated method stub
+		
+	}
+
+	public void setFocus(Object o) {
+		// TODO Auto-generated method stub
+		
+	}
+}

Modified: labs/jbossrules/branches/DroolsChance/drools-core/src/main/java/org/drools/degrees/IntervalDegree.java
===================================================================
--- labs/jbossrules/branches/DroolsChance/drools-core/src/main/java/org/drools/degrees/IntervalDegree.java	2009-06-04 23:57:29 UTC (rev 26838)
+++ labs/jbossrules/branches/DroolsChance/drools-core/src/main/java/org/drools/degrees/IntervalDegree.java	2009-06-04 23:58:24 UTC (rev 26839)
@@ -3,23 +3,23 @@
 public class IntervalDegree implements IDegree {
 	
 	
-	private float tau;
-	private float phi;
+	private double tau;
+	private double phi;
 
 	
-	public IntervalDegree(float low, float upp) {
+	public IntervalDegree(double low, double upp) {
 		this.setTau(low);
 		this.setPhi(1.0f-upp);
 	}
 
 	
 	
-	public SimpleDegree getDegree() {
+	public SimpleDegree asSimpleDegree() {
 		return new SimpleDegree(getTau());
 	}
 
 	
-	public float getValue() {
+	public double getValue() {
 		return getTau();
 	}
 	
@@ -37,7 +37,7 @@
 	/**
 	 * @param phi the phi to set
 	 */
-	protected void setPhi(float phi) {
+	protected void setPhi(double phi) {
 		this.phi = phi;
 	}
 
@@ -46,7 +46,7 @@
 	/**
 	 * @return the phi
 	 */
-	public float getPhi() {
+	public double getPhi() {
 		return phi;
 	}
 
@@ -55,7 +55,7 @@
 	/**
 	 * @param tau the tau to set
 	 */
-	protected void setTau(float tau) {
+	protected void setTau(double tau) {
 		this.tau = tau;
 	}
 
@@ -64,22 +64,22 @@
 	/**
 	 * @return the tau
 	 */
-	public float getTau() {
+	public double getTau() {
 		return tau;
 	}
 	
 	
-	public float getLow() {
+	public double getLow() {
 		return getTau();
 	}
 	
-	public float getUpp() {
+	public double getUpp() {
 		return 1.0f - getPhi();
 	}
 
 	
 	public int hashCode() {
-		return new Float(getLow()).hashCode()^new Float(getUpp()).hashCode();
+		return new Double(getLow()).hashCode()^new Double(getUpp()).hashCode();
 	}
 	
 	public boolean equals(Object other) {
@@ -97,7 +97,7 @@
 
 
 
-	public float getConfidence(boolean cwa) {
+	public double getConfidence(boolean cwa) {
 		return phi+tau;
 	}
 	

Added: labs/jbossrules/branches/DroolsChance/drools-core/src/main/java/org/drools/degrees/ProbabilityDistributionDegree.java
===================================================================
--- labs/jbossrules/branches/DroolsChance/drools-core/src/main/java/org/drools/degrees/ProbabilityDistributionDegree.java	                        (rev 0)
+++ labs/jbossrules/branches/DroolsChance/drools-core/src/main/java/org/drools/degrees/ProbabilityDistributionDegree.java	2009-06-04 23:58:24 UTC (rev 26839)
@@ -0,0 +1,112 @@
+package org.drools.degrees;
+
+import javax.management.RuntimeErrorException;
+
+import org.drools.bayesian.BooleanDomain;
+import org.drools.bayesian.IDomain;
+
+import Jama.Matrix;
+
+
+
+public class ProbabilityDistributionDegree implements IDegree {
+
+	private static final double tHold = 1e-10;
+
+	private int N;
+	
+	private Matrix distribution;
+	
+	private IDomain domain;
+	
+	
+	public ProbabilityDistributionDegree() {
+		this(new BooleanDomain());
+	}
+	
+	
+	public ProbabilityDistributionDegree(IDomain domain) {
+		setDomain(domain);
+		setN(domain.getN());
+		setDistribution(new Matrix(getN(), 1, 1.0/getN()));
+	}
+	
+	public ProbabilityDistributionDegree(double[] distrib, boolean check) {
+		setN(distrib.length);
+		
+		if (check) {
+			double acc = 0;
+			for (int j = 0; j < getN(); j++)
+				acc += distrib[j];
+			if (acc - 1 > tHold) {
+				throw new RuntimeException("Invalid Probability Distribution");
+			}
+		}
+		
+		setDistribution(new Matrix(distrib,1));
+	}
+	
+		
+	public void setN(int n) {
+		N = n;
+	}
+
+	public int getN() {
+		return N;
+	}
+
+	
+	public double getConfidence(boolean cwa) {
+		return 1;
+	}
+
+	
+	
+	public SimpleDegree asSimpleDegree() {
+		return new SimpleDegree(distribution.get(domain.getFocus(),0));
+	}
+
+	public double getValue() {
+		return distribution.get(domain.getFocus(),0);
+	}
+
+	public boolean toBoolean() {
+		return getValue() > 0.5;
+	}
+
+
+	
+	
+	
+	
+	public void setDistribution(Matrix distribution) {
+		this.distribution = distribution;
+	}
+
+
+	public Matrix getDistribution() {
+		return distribution;
+	}
+
+
+	public void setDomain(IDomain domain) {
+		this.domain = domain;
+	}
+
+
+	public IDomain getDomain() {
+		return domain;
+	}
+
+	public String toString() {
+		StringBuilder sb = new StringBuilder("<");
+			 for (int j = 0; j < getN(); j++) {
+				 sb.append(""+distribution.get(j,0));
+				 if (j != getN() - 1)
+					 sb.append(",");
+			 }
+		sb.append(">");
+		return sb.toString();
+	}
+	
+}

Added: labs/jbossrules/branches/DroolsChance/drools-core/src/main/java/org/drools/degrees/factory/BayesianDegreeFactory.java
===================================================================
--- labs/jbossrules/branches/DroolsChance/drools-core/src/main/java/org/drools/degrees/factory/BayesianDegreeFactory.java	                        (rev 0)
+++ labs/jbossrules/branches/DroolsChance/drools-core/src/main/java/org/drools/degrees/factory/BayesianDegreeFactory.java	2009-06-04 23:58:24 UTC (rev 26839)
@@ -0,0 +1,205 @@
+package org.drools.degrees.factory;
+
+import org.drools.degrees.IDegree;
+import org.drools.degrees.operators.IDegreeCombiner;
+import org.drools.degrees.operators.IDiscountOperator;
+import org.drools.degrees.operators.IDiscountStrategy;
+import org.drools.degrees.operators.IMergeStrategy;
+import org.drools.degrees.operators.INullHandlingStrategy;
+import org.drools.reteoo.filters.IFilterStrategy;
+
+public class BayesianDegreeFactory implements IDegreeFactory {
+	
+	boolean cwa = false;
+
+	public IDegree False() {
+		// TODO Auto-generated method stub
+		return null;
+	}
+
+	public IDegree Random() {
+		// TODO Auto-generated method stub
+		return null;
+	}
+
+	public IDegree True() {
+		// TODO Auto-generated method stub
+		return null;
+	}
+
+	public IDegree Unknown() {
+		// TODO Auto-generated method stub
+		return null;
+	}
+
+	public IDegree buildDegree(float val) {
+		// TODO Auto-generated method stub
+		return null;
+	}
+
+	public IDegree buildDegree(String priorStr) {
+		// TODO Auto-generated method stub
+		return null;
+	}
+
+	public IDegree fromBoolean(boolean b) {
+		// TODO Auto-generated method stub
+		return null;
+	}
+
+	public IDegreeCombiner getAggregator() {
+		// TODO Auto-generated method stub
+		return null;
+	}
+
+	public IDegreeCombiner getAndOperator() {
+		// TODO Auto-generated method stub
+		return null;
+	}
+
+	public IDegreeCombiner getAndOperator(String params) {
+		// TODO Auto-generated method stub
+		return null;
+	}
+
+	public IFilterStrategy getDefaultStrategy() {
+		// TODO Auto-generated method stub
+		return null;
+	}
+
+	public IDiscountOperator getDiscountOperator() {
+		// TODO Auto-generated method stub
+		return null;
+	}
+
+	public IDegreeCombiner getDiscountOperator(String params) {
+		// TODO Auto-generated method stub
+		return null;
+	}
+
+	public IDiscountStrategy getDiscountStrategy() {
+		// TODO Auto-generated method stub
+		return null;
+	}
+
+	public IDegreeCombiner getDoubleMPOperator() {
+		// TODO Auto-generated method stub
+		return null;
+	}
+
+	public IDegreeCombiner getDoubleMPOperator(String params) {
+		// TODO Auto-generated method stub
+		return null;
+	}
+
+	public IDegreeCombiner getEquivOperator() {
+		// TODO Auto-generated method stub
+		return null;
+	}
+
+	public IDegreeCombiner getEquivOperator(String params) {
+		// TODO Auto-generated method stub
+		return null;
+	}
+
+	public IDegreeCombiner getExistsOperator() {
+		// TODO Auto-generated method stub
+		return null;
+	}
+
+	public IDegreeCombiner getForAnyOperator() {
+		// TODO Auto-generated method stub
+		return null;
+	}
+
+	public IDegreeCombiner getForallOperator() {
+		// TODO Auto-generated method stub
+		return null;
+	}
+
+	public IDegreeCombiner getHedgeOperator() {
+		// TODO Auto-generated method stub
+		return null;
+	}
+
+	public IDegreeCombiner getHedgeOperator(String params) {
+		// TODO Auto-generated method stub
+		return null;
+	}
+
+	public IDegreeCombiner getImplicationOperator() {
+		// TODO Auto-generated method stub
+		return null;
+	}
+
+	public IDegreeCombiner getImplicationOperator(String params) {
+		// TODO Auto-generated method stub
+		return null;
+	}
+
+	public IDegreeCombiner getMaxOrOperator() {
+		// TODO Auto-generated method stub
+		return null;
+	}
+
+	public IMergeStrategy getMergeStrategy() {
+		// TODO Auto-generated method stub
+		return null;
+	}
+
+	public IDegreeCombiner getMinAndOperator() {
+		// TODO Auto-generated method stub
+		return null;
+	}
+
+	public IDegreeCombiner getModusPonensOp() {
+		// TODO Auto-generated method stub
+		return null;
+	}
+
+	public IDegreeCombiner getModusPonensOperator(String params) {
+		// TODO Auto-generated method stub
+		return null;
+	}
+
+	public IDegreeCombiner getNegationOperator() {
+		// TODO Auto-generated method stub
+		return null;
+	}
+
+	public INullHandlingStrategy getNullHandlingStrategy() {
+		// TODO Auto-generated method stub
+		return null;
+	}
+
+	public IDegreeCombiner getOrOperator() {
+		// TODO Auto-generated method stub
+		return null;
+	}
+
+	public IDegreeCombiner getOrOperator(String params) {
+		// TODO Auto-generated method stub
+		return null;
+	}
+
+	public IDegreeCombiner getXorOperator() {
+		// TODO Auto-generated method stub
+		return null;
+	}
+
+	public IDegreeCombiner getXorOperator(String params) {
+		// TODO Auto-generated method stub
+		return null;
+	}
+
+	public boolean isClosedWorldAssumption() {
+		// TODO Auto-generated method stub
+		return false;
+	}
+
+	public void setClosedWorldAssumption(boolean cwa) {
+		// TODO Auto-generated method stub
+
+	}
+
+}

Modified: labs/jbossrules/branches/DroolsChance/drools-core/src/main/java/org/drools/degrees/factory/SimpleDegreeFactory.java
===================================================================
--- labs/jbossrules/branches/DroolsChance/drools-core/src/main/java/org/drools/degrees/factory/SimpleDegreeFactory.java	2009-06-04 23:57:29 UTC (rev 26838)
+++ labs/jbossrules/branches/DroolsChance/drools-core/src/main/java/org/drools/degrees/factory/SimpleDegreeFactory.java	2009-06-04 23:58:24 UTC (rev 26839)
@@ -170,7 +170,7 @@
 	}
 
 	public IDiscountOperator getDiscountOperator() {
-		return new SimpleDiscountOperator(this.Unknown().getDegree());
+		return new SimpleDiscountOperator(this.Unknown().asSimpleDegree());
 	}
 
 	public IDegreeCombiner getDoubleMPOperator() {

Modified: labs/jbossrules/branches/DroolsChance/drools-core/src/main/java/org/drools/degrees/operators/IDiscountOperator.java
===================================================================
--- labs/jbossrules/branches/DroolsChance/drools-core/src/main/java/org/drools/degrees/operators/IDiscountOperator.java	2009-06-04 23:57:29 UTC (rev 26838)
+++ labs/jbossrules/branches/DroolsChance/drools-core/src/main/java/org/drools/degrees/operators/IDiscountOperator.java	2009-06-04 23:58:24 UTC (rev 26839)
@@ -4,6 +4,6 @@
 
 public interface IDiscountOperator extends IDegreeCombiner {
 	
-	public IDegree discount(IDegree arg, float strength);
+	public IDegree discount(IDegree arg, double strength);
 
 }

Modified: labs/jbossrules/branches/DroolsChance/drools-core/src/main/java/org/drools/degrees/operators/intervals/IntervalDiscountOperator.java
===================================================================
--- labs/jbossrules/branches/DroolsChance/drools-core/src/main/java/org/drools/degrees/operators/intervals/IntervalDiscountOperator.java	2009-06-04 23:57:29 UTC (rev 26838)
+++ labs/jbossrules/branches/DroolsChance/drools-core/src/main/java/org/drools/degrees/operators/intervals/IntervalDiscountOperator.java	2009-06-04 23:58:24 UTC (rev 26839)
@@ -15,8 +15,8 @@
 public class IntervalDiscountOperator implements IDiscountOperator {
 
 	
-	public IDegree discount(IDegree arg, float strength) {
-		float alfa = strength;
+	public IDegree discount(IDegree arg, double strength) {
+		double alfa = strength;
 		IntervalDegree ival = (IntervalDegree) arg;
 		return new IntervalDegree(ival.getTau()*alfa, 1 - ival.getPhi()*alfa);	
 	}
@@ -26,8 +26,8 @@
 			return factory == null ? IntervalDegreeFactory.UNKNOWN : factory.Unknown();
 		
 		IntervalDegree ival = (IntervalDegree) args[0];
-		SimpleDegree disc = args[1].getDegree();
-		float alfa = disc.getValue();	
+		SimpleDegree disc = args[1].asSimpleDegree();
+		double alfa = disc.getValue();	
 		
 		return new IntervalDegree(ival.getTau()*alfa, 1 - ival.getPhi()*alfa);
 		
@@ -39,8 +39,8 @@
 		Iterator<? extends IDegree> iter= args.iterator();
 		
 		IntervalDegree ival = (IntervalDegree) iter.next();
-		SimpleDegree disc = iter.next().getDegree();
-		float alfa = disc.getValue();	
+		SimpleDegree disc = iter.next().asSimpleDegree();
+		double alfa = disc.getValue();	
 		
 		
 		return new IntervalDegree(ival.getTau()*alfa, 1 - ival.getPhi()*alfa);

Modified: labs/jbossrules/branches/DroolsChance/drools-core/src/main/java/org/drools/degrees/operators/intervals/IntervalDiscountStrategy.java
===================================================================
--- labs/jbossrules/branches/DroolsChance/drools-core/src/main/java/org/drools/degrees/operators/intervals/IntervalDiscountStrategy.java	2009-06-04 23:57:29 UTC (rev 26838)
+++ labs/jbossrules/branches/DroolsChance/drools-core/src/main/java/org/drools/degrees/operators/intervals/IntervalDiscountStrategy.java	2009-06-04 23:58:24 UTC (rev 26839)
@@ -14,7 +14,7 @@
 	}
 	
 	public IDegree[] discount(IDegree[] args, boolean[] flags, IDegreeFactory factory) {
-		float confMax = 0;
+		double confMax = 0;
 		
 		IDegree[] ans = new IDegree[args.length];
 		
@@ -24,10 +24,10 @@
 		}
 		
 		for (int j = 0; j < args.length; j++) {
-			//float weak = Math.max(0 , confMax - args[j].getConfidence());
+			//double weak = Math.max(0 , confMax - args[j].getConfidence());
 			
-			float strength;
-			float c0 = args[j].getConfidence(factory.isClosedWorldAssumption());
+			double strength;
+			double c0 = args[j].getConfidence(factory.isClosedWorldAssumption());
 			if (flags[j]) {
 				//weaken weaker defeaters
 				strength = 1 - (confMax - c0);

Modified: labs/jbossrules/branches/DroolsChance/drools-core/src/main/java/org/drools/degrees/operators/intervals/IntervalDoubleMPOperator.java
===================================================================
--- labs/jbossrules/branches/DroolsChance/drools-core/src/main/java/org/drools/degrees/operators/intervals/IntervalDoubleMPOperator.java	2009-06-04 23:57:29 UTC (rev 26838)
+++ labs/jbossrules/branches/DroolsChance/drools-core/src/main/java/org/drools/degrees/operators/intervals/IntervalDoubleMPOperator.java	2009-06-04 23:58:24 UTC (rev 26839)
@@ -21,8 +21,8 @@
 		IntervalDegree prem = (IntervalDegree) args[0];
 		IntervalDegree impl = (IntervalDegree) args[1];
 		
-		float tau = Math.min(prem.getTau(),impl.getTau());
-		float phi = Math.min(prem.getPhi(),impl.getTau());
+		double tau = Math.min(prem.getTau(),impl.getTau());
+		double phi = Math.min(prem.getPhi(),impl.getTau());
 			
 		return new IntervalDegree(tau, 1-phi);
 		                    
@@ -36,8 +36,8 @@
 		IntervalDegree prem = (IntervalDegree) iter.next();
 		IntervalDegree impl = (IntervalDegree) iter.next();
 		
-		float tau = Math.min(prem.getTau(),impl.getTau());
-		float phi = Math.min(prem.getPhi(),impl.getTau());
+		double tau = Math.min(prem.getTau(),impl.getTau());
+		double phi = Math.min(prem.getPhi(),impl.getTau());
 			
 		return new IntervalDegree(tau, 1-phi);
 	}

Modified: labs/jbossrules/branches/DroolsChance/drools-core/src/main/java/org/drools/degrees/operators/intervals/IntervalEquivOperator.java
===================================================================
--- labs/jbossrules/branches/DroolsChance/drools-core/src/main/java/org/drools/degrees/operators/intervals/IntervalEquivOperator.java	2009-06-04 23:57:29 UTC (rev 26838)
+++ labs/jbossrules/branches/DroolsChance/drools-core/src/main/java/org/drools/degrees/operators/intervals/IntervalEquivOperator.java	2009-06-04 23:58:24 UTC (rev 26839)
@@ -20,7 +20,7 @@
 		if (a1.getUpp() < a2.getLow() || a2.getUpp() < a1.getLow())
 			return IntervalDegreeFactory.FALSE;
 		
-		float maxDist = Math.max(a2.getUpp()-a1.getLow(),a1.getUpp()-a2.getLow());
+		double maxDist = Math.max(a2.getUpp()-a1.getLow(),a1.getUpp()-a2.getLow());
 		return new IntervalDegree(1-maxDist,1);
 		
 	}		
@@ -35,7 +35,7 @@
 		if (a1.getUpp() < a2.getLow() || a2.getUpp() < a1.getLow())
 			return IntervalDegreeFactory.FALSE;
 		
-		float maxDist = Math.max(a2.getUpp()-a1.getLow(),a1.getUpp()-a2.getLow());
+		double maxDist = Math.max(a2.getUpp()-a1.getLow(),a1.getUpp()-a2.getLow());
 		return new IntervalDegree(1-maxDist,1);
 	}
 

Modified: labs/jbossrules/branches/DroolsChance/drools-core/src/main/java/org/drools/degrees/operators/intervals/IntervalExistsOperator.java
===================================================================
--- labs/jbossrules/branches/DroolsChance/drools-core/src/main/java/org/drools/degrees/operators/intervals/IntervalExistsOperator.java	2009-06-04 23:57:29 UTC (rev 26838)
+++ labs/jbossrules/branches/DroolsChance/drools-core/src/main/java/org/drools/degrees/operators/intervals/IntervalExistsOperator.java	2009-06-04 23:58:24 UTC (rev 26839)
@@ -13,8 +13,8 @@
 	public IDegree eval(IDegree[] args, IDegreeFactory factory) {
 		if (args == null || args.length == 0)
 			return factory == null ? IntervalDegreeFactory.UNKNOWN : factory.Unknown();		
-		float tau = 0;
-		float phi = 1.0f;
+		double tau = 0;
+		double phi = 1.0f;
 		for (IDegree deg : args) {
 			IntervalDegree ival = (IntervalDegree) deg;
 			if (ival == null) 
@@ -28,8 +28,8 @@
 	public IDegree eval(Collection<? extends IDegree> args, IDegreeFactory factory) {
 		if (args == null || args.size() == 0)
 			return factory == null ? IntervalDegreeFactory.UNKNOWN : factory.Unknown();		
-		float tau = 0;
-		float phi = 1.0f;
+		double tau = 0;
+		double phi = 1.0f;
 		for (IDegree deg : args) {
 			IntervalDegree ival = (IntervalDegree) deg;
 			if (ival == null) 

Modified: labs/jbossrules/branches/DroolsChance/drools-core/src/main/java/org/drools/degrees/operators/intervals/IntervalForallOperator.java
===================================================================
--- labs/jbossrules/branches/DroolsChance/drools-core/src/main/java/org/drools/degrees/operators/intervals/IntervalForallOperator.java	2009-06-04 23:57:29 UTC (rev 26838)
+++ labs/jbossrules/branches/DroolsChance/drools-core/src/main/java/org/drools/degrees/operators/intervals/IntervalForallOperator.java	2009-06-04 23:58:24 UTC (rev 26839)
@@ -13,8 +13,8 @@
 	public IDegree eval(IDegree[] args, IDegreeFactory factory) {
 		if (args == null || args.length == 0)
 			return factory == null ? IntervalDegreeFactory.UNKNOWN : factory.Unknown();		
-		float tau = 1.0f;
-		float phi = 0.0f;
+		double tau = 1.0f;
+		double phi = 0.0f;
 		for (IDegree deg : args) {
 			IntervalDegree ival = (IntervalDegree) deg;
 			if (ival == null) 
@@ -28,8 +28,8 @@
 	public IDegree eval(Collection<? extends IDegree> args, IDegreeFactory factory) {
 		if (args == null || args.size() == 0)
 			return factory == null ? IntervalDegreeFactory.UNKNOWN : factory.Unknown();		
-		float tau = 1.0f;
-		float phi = 0.0f;
+		double tau = 1.0f;
+		double phi = 0.0f;
 		for (IDegree deg : args) {
 			IntervalDegree ival = (IntervalDegree) deg;
 			if (ival == null) 

Modified: labs/jbossrules/branches/DroolsChance/drools-core/src/main/java/org/drools/degrees/operators/intervals/IntervalIntersectionOperator.java
===================================================================
--- labs/jbossrules/branches/DroolsChance/drools-core/src/main/java/org/drools/degrees/operators/intervals/IntervalIntersectionOperator.java	2009-06-04 23:57:29 UTC (rev 26838)
+++ labs/jbossrules/branches/DroolsChance/drools-core/src/main/java/org/drools/degrees/operators/intervals/IntervalIntersectionOperator.java	2009-06-04 23:58:24 UTC (rev 26839)
@@ -15,8 +15,8 @@
 	public IDegree eval(IDegree[] args, IDegreeFactory factory) {
 		if (args == null || args.length == 0)
 			return factory == null ? IntervalDegreeFactory.UNKNOWN : factory.Unknown();		
-		float tau = 0;
-		float phi = 0;
+		double tau = 0;
+		double phi = 0;
 		for (IDegree deg : args) {
 			IntervalDegree ival = (IntervalDegree) deg;
 			if (ival == null) 
@@ -30,8 +30,8 @@
 	public IDegree eval(Collection<? extends IDegree> args, IDegreeFactory factory) {
 		if (args == null || args.size() == 0)
 			return factory == null ? IntervalDegreeFactory.UNKNOWN : factory.Unknown();		
-		float tau = 0;
-		float phi = 0;
+		double tau = 0;
+		double phi = 0;
 		for (IDegree deg : args) {
 			IntervalDegree ival = (IntervalDegree) deg;
 			if (ival == null) 

Modified: labs/jbossrules/branches/DroolsChance/drools-core/src/main/java/org/drools/degrees/operators/intervals/IntervalLukasImplicationOperator.java
===================================================================
--- labs/jbossrules/branches/DroolsChance/drools-core/src/main/java/org/drools/degrees/operators/intervals/IntervalLukasImplicationOperator.java	2009-06-04 23:57:29 UTC (rev 26838)
+++ labs/jbossrules/branches/DroolsChance/drools-core/src/main/java/org/drools/degrees/operators/intervals/IntervalLukasImplicationOperator.java	2009-06-04 23:58:24 UTC (rev 26839)
@@ -16,8 +16,8 @@
 	public IDegree eval(IDegree[] args, IDegreeFactory factory) {		
 		if (args == null || args.length < 2)
 			return factory == null ? IntervalDegreeFactory.UNKNOWN : factory.Unknown();		
-		float low = 0;
-		float upp = 0;
+		double low = 0;
+		double upp = 0;
 		
 		IntervalDegree prem = (IntervalDegree) args[0];
 		IntervalDegree conc = (IntervalDegree) args[1];
@@ -31,8 +31,8 @@
 	public IDegree eval(Collection<? extends IDegree> args, IDegreeFactory factory) {
 		if (args == null || args.size() == 0)
 			return factory == null ? IntervalDegreeFactory.UNKNOWN : factory.Unknown();		
-		float low = 0;
-		float upp = 0;
+		double low = 0;
+		double upp = 0;
 		
 		Iterator<? extends IDegree> iter = args.iterator();
 		IntervalDegree prem = (IntervalDegree) iter.next();

Modified: labs/jbossrules/branches/DroolsChance/drools-core/src/main/java/org/drools/degrees/operators/intervals/IntervalMaxOrOperator.java
===================================================================
--- labs/jbossrules/branches/DroolsChance/drools-core/src/main/java/org/drools/degrees/operators/intervals/IntervalMaxOrOperator.java	2009-06-04 23:57:29 UTC (rev 26838)
+++ labs/jbossrules/branches/DroolsChance/drools-core/src/main/java/org/drools/degrees/operators/intervals/IntervalMaxOrOperator.java	2009-06-04 23:58:24 UTC (rev 26839)
@@ -13,8 +13,8 @@
 	public IDegree eval(IDegree[] args, IDegreeFactory factory) {
 		if (args == null || args.length == 0)
 			return factory == null ? IntervalDegreeFactory.UNKNOWN : factory.Unknown();		
-		float tau = 0;
-		float phi = 1.0f;
+		double tau = 0;
+		double phi = 1.0f;
 		for (IDegree deg : args) {
 			IntervalDegree ival = (IntervalDegree) deg;
 			if (ival == null) 
@@ -28,8 +28,8 @@
 	public IDegree eval(Collection<? extends IDegree> args, IDegreeFactory factory) {
 		if (args == null || args.size() == 0)
 			return factory == null ? IntervalDegreeFactory.UNKNOWN : factory.Unknown();		
-		float tau = 0;
-		float phi = 1.0f;
+		double tau = 0;
+		double phi = 1.0f;
 		for (IDegree deg : args) {
 			IntervalDegree ival = (IntervalDegree) deg;
 			if (ival == null) 

Modified: labs/jbossrules/branches/DroolsChance/drools-core/src/main/java/org/drools/degrees/operators/intervals/IntervalMinAndOperator.java
===================================================================
--- labs/jbossrules/branches/DroolsChance/drools-core/src/main/java/org/drools/degrees/operators/intervals/IntervalMinAndOperator.java	2009-06-04 23:57:29 UTC (rev 26838)
+++ labs/jbossrules/branches/DroolsChance/drools-core/src/main/java/org/drools/degrees/operators/intervals/IntervalMinAndOperator.java	2009-06-04 23:58:24 UTC (rev 26839)
@@ -13,8 +13,8 @@
 	public IDegree eval(IDegree[] args, IDegreeFactory factory) {
 		if (args == null || args.length == 0)
 			return factory == null ? IntervalDegreeFactory.UNKNOWN : factory.Unknown();		
-		float tau = 1.0f;
-		float phi = 0.0f;
+		double tau = 1.0f;
+		double phi = 0.0f;
 		for (IDegree deg : args) {
 			IntervalDegree ival = (IntervalDegree) deg;
 			if (ival == null) 
@@ -28,8 +28,8 @@
 	public IDegree eval(Collection<? extends IDegree> args, IDegreeFactory factory) {
 		if (args == null || args.size() == 0)
 			return factory == null ? IntervalDegreeFactory.UNKNOWN : factory.Unknown();		
-		float tau = 1.0f;
-		float phi = 0.0f;
+		double tau = 1.0f;
+		double phi = 0.0f;
 		for (IDegree deg : args) {
 			IntervalDegree ival = (IntervalDegree) deg;
 			if (ival == null) 

Modified: labs/jbossrules/branches/DroolsChance/drools-core/src/main/java/org/drools/degrees/operators/intervals/IntervalXorOperator.java
===================================================================
--- labs/jbossrules/branches/DroolsChance/drools-core/src/main/java/org/drools/degrees/operators/intervals/IntervalXorOperator.java	2009-06-04 23:57:29 UTC (rev 26838)
+++ labs/jbossrules/branches/DroolsChance/drools-core/src/main/java/org/drools/degrees/operators/intervals/IntervalXorOperator.java	2009-06-04 23:58:24 UTC (rev 26839)
@@ -20,7 +20,7 @@
 		if (a1.getUpp() < a2.getLow() || a2.getUpp() < a1.getLow())
 			return IntervalDegreeFactory.FALSE;
 		
-		float maxDist = Math.max(a2.getUpp()-a1.getLow(),a1.getUpp()-a2.getLow());
+		double maxDist = Math.max(a2.getUpp()-a1.getLow(),a1.getUpp()-a2.getLow());
 		return new IntervalDegree(0,maxDist);
 		
 	}		
@@ -35,7 +35,7 @@
 		if (a1.getUpp() < a2.getLow() || a2.getUpp() < a1.getLow())
 			return IntervalDegreeFactory.FALSE;
 		
-		float maxDist = Math.max(a2.getUpp()-a1.getLow(),a1.getUpp()-a2.getLow());
+		double maxDist = Math.max(a2.getUpp()-a1.getLow(),a1.getUpp()-a2.getLow());
 		return new IntervalDegree(0,maxDist);
 	}
 

Modified: labs/jbossrules/branches/DroolsChance/drools-core/src/main/java/org/drools/degrees/operators/simple/SimpleAverage.java
===================================================================
--- labs/jbossrules/branches/DroolsChance/drools-core/src/main/java/org/drools/degrees/operators/simple/SimpleAverage.java	2009-06-04 23:57:29 UTC (rev 26838)
+++ labs/jbossrules/branches/DroolsChance/drools-core/src/main/java/org/drools/degrees/operators/simple/SimpleAverage.java	2009-06-04 23:58:24 UTC (rev 26839)
@@ -19,7 +19,7 @@
 		float ans = 0;
 		int n = 0;
 		for (IDegree deg : args) {
-			SimpleDegree d = deg.getDegree();				
+			SimpleDegree d = deg.asSimpleDegree();				
 				ans += d.getValue();
 				n++;
 		}

Modified: labs/jbossrules/branches/DroolsChance/drools-core/src/main/java/org/drools/degrees/operators/simple/SimpleDiscountOperator.java
===================================================================
--- labs/jbossrules/branches/DroolsChance/drools-core/src/main/java/org/drools/degrees/operators/simple/SimpleDiscountOperator.java	2009-06-04 23:57:29 UTC (rev 26838)
+++ labs/jbossrules/branches/DroolsChance/drools-core/src/main/java/org/drools/degrees/operators/simple/SimpleDiscountOperator.java	2009-06-04 23:58:24 UTC (rev 26839)
@@ -17,13 +17,13 @@
 		this.unk = unk;
 	}
 	
-	public IDegree discount(IDegree source, float strength) {
-		float val = (1-strength)*unk.getValue() + strength*source.getDegree().getValue();
+	public IDegree discount(IDegree source, double strength) {
+		double val = (1-strength)*unk.getValue() + strength*source.getValue();
 		return new SimpleDegree(val);
 	}
 
 	public IDegree eval(IDegree[] args, IDegreeFactory factory) {
-		return discount(args[0], args[1].getDegree().getValue());
+		return discount(args[0], args[1].getValue());
 	}
 
 	public IDegree eval(Collection<? extends IDegree> args,
@@ -31,7 +31,7 @@
 		Iterator<? extends IDegree> iter = args.iterator();
 		IDegree arg = iter.next();
 		IDegree wgt = iter.next();
-		return discount(arg, wgt.getDegree().getValue());
+		return discount(arg, wgt.getValue());
 	}
 
 	public String getName() {

Modified: labs/jbossrules/branches/DroolsChance/drools-core/src/main/java/org/drools/degrees/operators/simple/SimpleDiscountStrategy.java
===================================================================
--- labs/jbossrules/branches/DroolsChance/drools-core/src/main/java/org/drools/degrees/operators/simple/SimpleDiscountStrategy.java	2009-06-04 23:57:29 UTC (rev 26838)
+++ labs/jbossrules/branches/DroolsChance/drools-core/src/main/java/org/drools/degrees/operators/simple/SimpleDiscountStrategy.java	2009-06-04 23:58:24 UTC (rev 26839)
@@ -15,7 +15,7 @@
 	}
 
 	public IDegree[] discount(IDegree[] args, boolean[] flags, IDegreeFactory factory) {
-		float confMax = 0;
+		double confMax = 0;
 		
 		IDegree[] ans = new IDegree[args.length];
 		
@@ -25,10 +25,10 @@
 		}
 		
 		for (int j = 0; j < args.length; j++) {
-			//float weak = Math.max(0 , confMax - args[j].getConfidence());
+			//double weak = Math.max(0 , confMax - args[j].getConfidence());
 			
-			float strength;
-			float c0 = args[j].getConfidence(factory.isClosedWorldAssumption());
+			double strength;
+			double c0 = args[j].getConfidence(factory.isClosedWorldAssumption());
 			if (flags[j]) {
 				//weaken weaker defeaters
 				strength = 1 - (confMax - c0);

Modified: labs/jbossrules/branches/DroolsChance/drools-core/src/main/java/org/drools/degrees/operators/simple/SimpleDotAnd.java
===================================================================
--- labs/jbossrules/branches/DroolsChance/drools-core/src/main/java/org/drools/degrees/operators/simple/SimpleDotAnd.java	2009-06-04 23:57:29 UTC (rev 26838)
+++ labs/jbossrules/branches/DroolsChance/drools-core/src/main/java/org/drools/degrees/operators/simple/SimpleDotAnd.java	2009-06-04 23:58:24 UTC (rev 26839)
@@ -17,7 +17,7 @@
 			return factory == null ? SimpleDegree.UNKNOWN(true) : factory.Unknown();		
 		float ans = 1;
 		for (IDegree deg : args) {
-			SimpleDegree d = deg.getDegree();				
+			SimpleDegree d = deg.asSimpleDegree();				
 				ans *= d.getValue();
 		}
 		

Modified: labs/jbossrules/branches/DroolsChance/drools-core/src/main/java/org/drools/degrees/operators/simple/SimpleDoubleMPOperator.java
===================================================================
--- labs/jbossrules/branches/DroolsChance/drools-core/src/main/java/org/drools/degrees/operators/simple/SimpleDoubleMPOperator.java	2009-06-04 23:57:29 UTC (rev 26838)
+++ labs/jbossrules/branches/DroolsChance/drools-core/src/main/java/org/drools/degrees/operators/simple/SimpleDoubleMPOperator.java	2009-06-04 23:58:24 UTC (rev 26839)
@@ -17,11 +17,11 @@
 		IDegree prem = args[0];
 		IDegree impl = args[1];
 		
-		//float mp1 = Math.min(prem.getDegree().getValue(),impl.getDegree().getValue());
-		//float mp2 = 1 - Math.min(1 - prem.getDegree().getValue(),impl.getDegree().getValue());
+		//double mp1 = Math.min(prem.getValue(),impl.getValue());
+		//double mp2 = 1 - Math.min(1 - prem.getValue(),impl.getValue());
 	
-		float mp1 = prem.getDegree().getValue()*impl.getDegree().getValue();
-		float mp2 = 1 - (1 - prem.getDegree().getValue())*(impl.getDegree().getValue());
+		double mp1 = prem.getValue()*impl.getValue();
+		double mp2 = 1 - (1 - prem.getValue())*(impl.getValue());
 		
 		return new SimpleDegree(Math.min(mp1, mp2));
 		                    
@@ -35,11 +35,11 @@
 		IDegree prem = iter.next();
 		IDegree impl = iter.next();
 		
-		//float mp1 = Math.min(prem.getDegree().getValue(),impl.getDegree().getValue());
-		//float mp2 = 1 - Math.min(1 - prem.getDegree().getValue(),impl.getDegree().getValue());
+		//double mp1 = Math.min(prem.getValue(),impl.getValue());
+		//double mp2 = 1 - Math.min(1 - prem.getValue(),impl.getValue());
 	
-		float mp1 = prem.getDegree().getValue()*impl.getDegree().getValue();
-		float mp2 = 1 - (1 - prem.getDegree().getValue())*(impl.getDegree().getValue());
+		double mp1 = prem.getValue()*impl.getValue();
+		double mp2 = 1 - (1 - prem.getValue())*(impl.getValue());
 		
 		return new SimpleDegree(Math.min(mp1, mp2));
 	}

Modified: labs/jbossrules/branches/DroolsChance/drools-core/src/main/java/org/drools/degrees/operators/simple/SimpleEquiv.java
===================================================================
--- labs/jbossrules/branches/DroolsChance/drools-core/src/main/java/org/drools/degrees/operators/simple/SimpleEquiv.java	2009-06-04 23:57:29 UTC (rev 26838)
+++ labs/jbossrules/branches/DroolsChance/drools-core/src/main/java/org/drools/degrees/operators/simple/SimpleEquiv.java	2009-06-04 23:58:24 UTC (rev 26839)
@@ -16,8 +16,8 @@
 	
 	public IDegree eval(IDegree[] args, IDegreeFactory factory) {	
 		return new SimpleDegree( 1 - Math.abs(
-						args[0].getDegree().getValue() 
-						- args[1].getDegree().getValue())
+						args[0].getValue() 
+						- args[1].getValue())
 						);
 	}
 
@@ -32,8 +32,8 @@
 		SimpleDegree a2 = (SimpleDegree) iter.next();
 		
 		return new SimpleDegree( 1 - Math.abs(
-				a1.getDegree().getValue() 
-				- a2.getDegree().getValue())
+				a1.getValue() 
+				- a2.getValue())
 				);			
 	}
 

Modified: labs/jbossrules/branches/DroolsChance/drools-core/src/main/java/org/drools/degrees/operators/simple/SimpleLukasAnd.java
===================================================================
--- labs/jbossrules/branches/DroolsChance/drools-core/src/main/java/org/drools/degrees/operators/simple/SimpleLukasAnd.java	2009-06-04 23:57:29 UTC (rev 26838)
+++ labs/jbossrules/branches/DroolsChance/drools-core/src/main/java/org/drools/degrees/operators/simple/SimpleLukasAnd.java	2009-06-04 23:58:24 UTC (rev 26839)
@@ -17,7 +17,7 @@
 			return factory == null ? SimpleDegree.UNKNOWN(true) : factory.Unknown();		
 		float ans = 1;
 		for (IDegree deg : args) {
-			SimpleDegree d = deg.getDegree();				
+			SimpleDegree d = deg.asSimpleDegree();
 				ans += d.getValue() - 1;
 		}
 		
@@ -29,7 +29,7 @@
 			return factory == null ? SimpleDegree.UNKNOWN(true) : factory.Unknown();		
 		float ans = 1;
 		for (IDegree deg : args) {
-			SimpleDegree d = deg.getDegree();				
+			SimpleDegree d = deg.asSimpleDegree();			
 				ans += d.getValue() - 1;
 		}
 		

Modified: labs/jbossrules/branches/DroolsChance/drools-core/src/main/java/org/drools/degrees/operators/simple/SimpleLukasImplication.java
===================================================================
--- labs/jbossrules/branches/DroolsChance/drools-core/src/main/java/org/drools/degrees/operators/simple/SimpleLukasImplication.java	2009-06-04 23:57:29 UTC (rev 26838)
+++ labs/jbossrules/branches/DroolsChance/drools-core/src/main/java/org/drools/degrees/operators/simple/SimpleLukasImplication.java	2009-06-04 23:58:24 UTC (rev 26839)
@@ -16,7 +16,7 @@
 	public IDegree eval(IDegree[] args, IDegreeFactory factory) {
 		if (args == null || args.length < 2)
 			return factory == null ? SimpleDegree.UNKNOWN(true) : factory.Unknown();		
-		float ans = 1 - args[0].getDegree().getValue() + args[1].getDegree().getValue();
+		double ans = 1 - args[0].getValue() + args[1].getValue();
 		
 		
 		return new SimpleDegree(Math.min(1,ans));
@@ -26,7 +26,7 @@
 		if (args == null || args.size() < 2)
 			return factory == null ? SimpleDegree.UNKNOWN(true) : factory.Unknown();		
 		Iterator<? extends IDegree> iter = args.iterator();
-		float ans = 1 - iter.next().getDegree().getValue() + iter.next().getDegree().getValue();
+		double ans = 1 - iter.next().getValue() + iter.next().getValue();
 		
 		
 		return new SimpleDegree(Math.min(1,ans));

Modified: labs/jbossrules/branches/DroolsChance/drools-core/src/main/java/org/drools/degrees/operators/simple/SimpleLukasOr.java
===================================================================
--- labs/jbossrules/branches/DroolsChance/drools-core/src/main/java/org/drools/degrees/operators/simple/SimpleLukasOr.java	2009-06-04 23:57:29 UTC (rev 26838)
+++ labs/jbossrules/branches/DroolsChance/drools-core/src/main/java/org/drools/degrees/operators/simple/SimpleLukasOr.java	2009-06-04 23:58:24 UTC (rev 26839)
@@ -17,7 +17,7 @@
 			return factory == null ? SimpleDegree.UNKNOWN(true) : factory.Unknown();		
 		float ans = 0;
 		for (IDegree deg : args) {
-			SimpleDegree d = deg.getDegree();				
+			SimpleDegree d = deg.asSimpleDegree();
 				ans += d.getValue();
 		}
 		
@@ -30,7 +30,7 @@
 
 		float ans = 0;
 		for (IDegree deg : args) {
-			SimpleDegree d = deg.getDegree();				
+			SimpleDegree d = deg.asSimpleDegree();			
 				ans += d.getValue();
 		}
 		

Modified: labs/jbossrules/branches/DroolsChance/drools-core/src/main/java/org/drools/degrees/operators/simple/SimpleMaxMergeStrategy.java
===================================================================
--- labs/jbossrules/branches/DroolsChance/drools-core/src/main/java/org/drools/degrees/operators/simple/SimpleMaxMergeStrategy.java	2009-06-04 23:57:29 UTC (rev 26838)
+++ labs/jbossrules/branches/DroolsChance/drools-core/src/main/java/org/drools/degrees/operators/simple/SimpleMaxMergeStrategy.java	2009-06-04 23:58:24 UTC (rev 26839)
@@ -28,9 +28,9 @@
 		}
 		
 		
-		float val = factory.Unknown().getDegree().getValue();
+		double val = factory.Unknown().getValue();
 		for (IDegree deg : args) {					
-				val = Math.max(val,deg.getDegree().getValue());		
+				val = Math.max(val,deg.getValue());		
 		}
 		
 		

Modified: labs/jbossrules/branches/DroolsChance/drools-core/src/main/java/org/drools/degrees/operators/simple/SimpleMaxOr.java
===================================================================
--- labs/jbossrules/branches/DroolsChance/drools-core/src/main/java/org/drools/degrees/operators/simple/SimpleMaxOr.java	2009-06-04 23:57:29 UTC (rev 26838)
+++ labs/jbossrules/branches/DroolsChance/drools-core/src/main/java/org/drools/degrees/operators/simple/SimpleMaxOr.java	2009-06-04 23:58:24 UTC (rev 26839)
@@ -15,9 +15,9 @@
 	public IDegree eval(IDegree[] args, IDegreeFactory factory) {
 		if (args == null || args.length == 0)
 			return factory == null ? SimpleDegree.UNKNOWN(true) : factory.Unknown();		
-		float ans = 0;
+		double ans = 0;
 		for (IDegree deg : args) {
-			SimpleDegree d = deg.getDegree();				
+			SimpleDegree d = deg.asSimpleDegree();				
 				ans = Math.max(ans,d.getValue());
 		}
 		
@@ -27,9 +27,9 @@
 	public IDegree eval(Collection<? extends IDegree> args, IDegreeFactory factory) {
 		if (args == null || args.size() == 0)
 			return factory == null ? SimpleDegree.UNKNOWN(true) : factory.Unknown();		
-		float ans = 0;
+		double ans = 0;
 		for (IDegree deg : args) {
-			SimpleDegree d = deg.getDegree();				
+			SimpleDegree d = deg.asSimpleDegree();	
 				ans = Math.max(ans,d.getValue());
 		}
 		

Modified: labs/jbossrules/branches/DroolsChance/drools-core/src/main/java/org/drools/degrees/operators/simple/SimpleMinAnd.java
===================================================================
--- labs/jbossrules/branches/DroolsChance/drools-core/src/main/java/org/drools/degrees/operators/simple/SimpleMinAnd.java	2009-06-04 23:57:29 UTC (rev 26838)
+++ labs/jbossrules/branches/DroolsChance/drools-core/src/main/java/org/drools/degrees/operators/simple/SimpleMinAnd.java	2009-06-04 23:58:24 UTC (rev 26839)
@@ -14,9 +14,9 @@
 	public IDegree eval(IDegree[] args, IDegreeFactory factory) {
 		if (args == null || args.length == 0)
 			return factory == null ? SimpleDegree.UNKNOWN(true) : factory.Unknown();		
-		float ans = 1;
+		double ans = 1;
 		for (IDegree deg : args) {
-			SimpleDegree d = deg.getDegree();				
+			SimpleDegree d = deg.asSimpleDegree();	
 				ans = Math.min(ans,d.getValue());
 		}
 		

Modified: labs/jbossrules/branches/DroolsChance/drools-core/src/main/java/org/drools/degrees/operators/simple/SimpleMinMergeStrategy.java
===================================================================
--- labs/jbossrules/branches/DroolsChance/drools-core/src/main/java/org/drools/degrees/operators/simple/SimpleMinMergeStrategy.java	2009-06-04 23:57:29 UTC (rev 26838)
+++ labs/jbossrules/branches/DroolsChance/drools-core/src/main/java/org/drools/degrees/operators/simple/SimpleMinMergeStrategy.java	2009-06-04 23:58:24 UTC (rev 26839)
@@ -30,9 +30,9 @@
 		}
 		
 		
-		float val = factory.Unknown().getDegree().getValue();
+		double val = factory.Unknown().getValue();
 		for (IDegree deg : args) {				
-				val = Math.min(val,deg.getDegree().getValue());		
+				val = Math.min(val,deg.getValue());		
 		}
 		
 		return new SimpleDegree(val);

Modified: labs/jbossrules/branches/DroolsChance/drools-core/src/main/java/org/drools/degrees/operators/simple/SimpleNot.java
===================================================================
--- labs/jbossrules/branches/DroolsChance/drools-core/src/main/java/org/drools/degrees/operators/simple/SimpleNot.java	2009-06-04 23:57:29 UTC (rev 26838)
+++ labs/jbossrules/branches/DroolsChance/drools-core/src/main/java/org/drools/degrees/operators/simple/SimpleNot.java	2009-06-04 23:58:24 UTC (rev 26839)
@@ -10,7 +10,7 @@
 public class SimpleNot extends NegationOperator {
 
 	public IDegree negate(IDegree arg) {
-		return new SimpleDegree(1-arg.getDegree().getValue());
+		return new SimpleDegree(1-arg.getValue());
 	}
 
 	

Modified: labs/jbossrules/branches/DroolsChance/drools-core/src/main/java/org/drools/degrees/operators/simple/SimpleVeryModifier.java
===================================================================
--- labs/jbossrules/branches/DroolsChance/drools-core/src/main/java/org/drools/degrees/operators/simple/SimpleVeryModifier.java	2009-06-04 23:57:29 UTC (rev 26838)
+++ labs/jbossrules/branches/DroolsChance/drools-core/src/main/java/org/drools/degrees/operators/simple/SimpleVeryModifier.java	2009-06-04 23:58:24 UTC (rev 26839)
@@ -15,7 +15,7 @@
 	public IDegree eval(IDegree[] args, IDegreeFactory factory) {
 		if (args == null || args.length == 0)
 			return factory == null ? SimpleDegree.UNKNOWN(true) : factory.Unknown();		
-		float arg = args[0].getDegree().getValue();
+		double arg = args[0].getValue();
 		
 		
 		return new SimpleDegree(arg*arg);
@@ -24,7 +24,7 @@
 	public IDegree eval(Collection<? extends IDegree> args, IDegreeFactory factory) {
 		if (args == null || args.size() == 0)
 			return factory == null ? SimpleDegree.UNKNOWN(true) : factory.Unknown();		
-		float arg = args.iterator().next().getDegree().getValue();
+		double arg = args.iterator().next().getValue();
 		
 		
 		return new SimpleDegree(arg*arg);

Modified: labs/jbossrules/branches/DroolsChance/drools-core/src/main/java/org/drools/degrees/operators/simple/SimpleXor.java
===================================================================
--- labs/jbossrules/branches/DroolsChance/drools-core/src/main/java/org/drools/degrees/operators/simple/SimpleXor.java	2009-06-04 23:57:29 UTC (rev 26838)
+++ labs/jbossrules/branches/DroolsChance/drools-core/src/main/java/org/drools/degrees/operators/simple/SimpleXor.java	2009-06-04 23:58:24 UTC (rev 26839)
@@ -14,8 +14,8 @@
 	
 	public IDegree eval(IDegree[] args, IDegreeFactory factory) {	
 		return new SimpleDegree( Math.abs(
-						args[0].getDegree().getValue() 
-						- args[1].getDegree().getValue())
+						args[0].getValue() 
+						- args[1].getValue())
 						);
 	}
 
@@ -29,8 +29,8 @@
 		SimpleDegree a2 = (SimpleDegree) iter.next();
 		
 		return new SimpleDegree( Math.abs(
-				a1.getDegree().getValue() 
-				- a2.getDegree().getValue())
+				a1.getValue() 
+				- a2.getValue())
 				);			
 	}
 

Copied: labs/jbossrules/branches/DroolsChance/drools-core/src/main/java/org/drools/fuzzy/FuzzyRealDomain.java (from rev 26751, labs/jbossrules/branches/DroolsChance/drools-core/src/main/java/org/drools/fuzzy/RealDomain.java)
===================================================================
--- labs/jbossrules/branches/DroolsChance/drools-core/src/main/java/org/drools/fuzzy/FuzzyRealDomain.java	                        (rev 0)
+++ labs/jbossrules/branches/DroolsChance/drools-core/src/main/java/org/drools/fuzzy/FuzzyRealDomain.java	2009-06-04 23:58:24 UTC (rev 26839)
@@ -0,0 +1,52 @@
+package org.drools.fuzzy;
+
+import org.drools.base.ValueType;
+import org.drools.bayesian.IDomain;
+import org.drools.bayesian.RealDomain;
+import org.drools.degrees.IDegree;
+
+
+
+public abstract class FuzzyRealDomain extends FuzzyDomain  {
+	
+	private Double value;
+	
+	private RealDomain domain;
+	
+	
+	public Double getValue() {
+		if (value != null)
+			return value;
+		else if (getPossibilityDistribution() == null)
+			return null;
+		else return ((NumericDomainFuzzySet) getPossibilityDistribution()).defuzzify().doubleValue(); 
+	}
+	
+	public void setValue(Double value) {
+		this.value = value;
+	}
+	
+	protected void setValueBit(Double value) {
+		if (this.value == null)
+			this.value = value;
+		else this.value += value;
+	}
+	
+	
+	public void setValue(String op, IDegree deg) {
+		double refVal = ((NumericDomainFuzzySet) this.getGranule(op)).defuzzify().doubleValue(); 
+		double wgt = deg.getValue();
+		
+		setValueBit(refVal*wgt); 
+	}
+	
+	
+	public boolean supportsType(ValueType type) {
+		
+		return type.isNumber();
+	}
+
+	
+
+
+}

Modified: labs/jbossrules/branches/DroolsChance/drools-core/src/main/java/org/drools/fuzzy/FuzzySet.java
===================================================================
--- labs/jbossrules/branches/DroolsChance/drools-core/src/main/java/org/drools/fuzzy/FuzzySet.java	2009-06-04 23:57:29 UTC (rev 26838)
+++ labs/jbossrules/branches/DroolsChance/drools-core/src/main/java/org/drools/fuzzy/FuzzySet.java	2009-06-04 23:58:24 UTC (rev 26839)
@@ -23,23 +23,23 @@
 		return name;
 	}
 	
-	public float getConfidence(boolean cwa) {		
+	public double getConfidence(boolean cwa) {		
 		return 1;
 	}
 	
 	
 	
-	public float getValue() {
+	public double getValue() {
 		return -99;
 	}
 	
-	public SimpleDegree getDegree() {
+	public SimpleDegree asSimpleDegree() {
 		// TODO Defuzzify here
 		return null;
 	}
 
 	public boolean toBoolean() {
-		return getDegree().toBoolean();
+		return asSimpleDegree().toBoolean();
 	}
 
 }

Deleted: labs/jbossrules/branches/DroolsChance/drools-core/src/main/java/org/drools/fuzzy/RealDomain.java
===================================================================
--- labs/jbossrules/branches/DroolsChance/drools-core/src/main/java/org/drools/fuzzy/RealDomain.java	2009-06-04 23:57:29 UTC (rev 26838)
+++ labs/jbossrules/branches/DroolsChance/drools-core/src/main/java/org/drools/fuzzy/RealDomain.java	2009-06-04 23:58:24 UTC (rev 26839)
@@ -1,47 +0,0 @@
-package org.drools.fuzzy;
-
-import org.drools.base.ValueType;
-import org.drools.degrees.IDegree;
-
-
-
-public abstract class RealDomain extends FuzzyDomain {
-	
-	private Double value;
-	
-	
-	public Double getValue() {
-		if (value != null)
-			return value;
-		else if (getPossibilityDistribution() == null)
-			return null;
-		else return ((NumericDomainFuzzySet) getPossibilityDistribution()).defuzzify().doubleValue(); 
-	}
-	
-	public void setValue(Double value) {
-		this.value = value;
-	}
-	
-	protected void setValueBit(Double value) {
-		if (this.value == null)
-			this.value = value;
-		else this.value += value;
-	}
-	
-	
-	public void setValue(String op, IDegree deg) {
-		System.out.println(this.getClass()+" WARNING : NEED TO IMPLEMENT Alpha-Cuts AND SET UNION");
-		double refVal = ((NumericDomainFuzzySet) this.getGranule(op)).defuzzify().doubleValue(); 
-		double wgt = deg.getDegree().getValue();
-		
-		setValueBit(refVal*wgt); 
-	}
-	
-	
-	public boolean supportsType(ValueType type) {
-		
-		return type.isNumber();
-	}
-
-
-}

Modified: labs/jbossrules/branches/DroolsChance/drools-core/src/test/java/org/drools/degrees/SimpleDegreeTest.java
===================================================================
--- labs/jbossrules/branches/DroolsChance/drools-core/src/test/java/org/drools/degrees/SimpleDegreeTest.java	2009-06-04 23:57:29 UTC (rev 26838)
+++ labs/jbossrules/branches/DroolsChance/drools-core/src/test/java/org/drools/degrees/SimpleDegreeTest.java	2009-06-04 23:58:24 UTC (rev 26839)
@@ -89,9 +89,9 @@
 
 	@Test
 	public void testGetDegree() {
-		assertEquals(s1,s1.getDegree());
-		assertTrue(s3.getDegree() instanceof IDegree );
-		assertTrue(s5.getDegree() instanceof SimpleDegree);
+		assertEquals(s1,s1.asSimpleDegree());
+		assertTrue(s3.asSimpleDegree() instanceof IDegree );
+		assertTrue(s5.asSimpleDegree() instanceof SimpleDegree);
 	}
 
 	@Test




More information about the jboss-svn-commits mailing list