public Degree match(InternalWorkingMemory workingMemory, Object object, String typeName) { TraitableBean core = null; if (object instanceof Thing) { Thing thing = (Thing) object; core = (TraitableBean) thing.getCore(); if (core.hasTrait(typeName)) { Thing proxy = core.getTrait(typeName.toString()); return extractDegree(proxy); } else { return ChanceDegreeTypeRegistry.getSingleInstance().getDefaultOne().False(); } } else if (object instanceof TraitableBean) { core = (TraitableBean) object; if (core.hasTrait(typeName)) { Thing proxy = core.getTrait(typeName.toString()); return extractDegree(proxy); } else { return ChanceDegreeTypeRegistry.getSingleInstance().getDefaultOne().False(); } } else { core = lookForWrapper(object, workingMemory); if (core == null || !core.hasTrait(typeName)) { return ChanceDegreeTypeRegistry.getDefaultOne().False(); } else { Thing proxy = core.getTrait(typeName.toString()); return extractDegree(proxy); } } }
private Degree extractDegree(Thing proxy) { if (proxy == null) { return ChanceDegreeTypeRegistry.getSingleInstance().getDefaultOne().False(); } else { if (proxy instanceof ImperfectTraitProxy) { return ((ImperfectTraitProxy) proxy).isA(); } else { return ChanceDegreeTypeRegistry.getSingleInstance().getDefaultOne().True(); } } }
public Distribution<Double> newDistribution(Set<Double> focalElements) { Iterator<Double> iter = focalElements.iterator(); return new GaussianDistribution( iter.next().doubleValue(), iter.next().doubleValue(), ChanceDegreeTypeRegistry.getSingleInstance().buildDegree(degreeType, 0.0)); }
private Constructor getDegreeStringConstructor() { if (degreeStringConstr == null) { degreeStringConstr = ChanceDegreeTypeRegistry.getSingleInstance().getConstructorByString(degreeType); } return degreeStringConstr; }
private Distribution<T> createUniformDistribution(Collection<T> focalElements) { DiscreteDistribution<T> ret = new DiscreteDistribution<T>(); for (Iterator<? extends T> currIt = focalElements.iterator(); currIt.hasNext(); ) { ret.put( currIt.next(), ChanceDegreeTypeRegistry.getSingleInstance() .buildDegree(degreeType, 1.0 / focalElements.size())); } return ret; }
public Distribution<Double> parse(String distrAsString) { if (distrAsString.startsWith("N")) { StringTokenizer tok = new StringTokenizer(distrAsString.substring(1), "(,) "); return new GaussianDistribution( tok.hasMoreTokens() ? Double.valueOf(tok.nextToken()) : 0.0, tok.hasMoreTokens() ? Double.valueOf(tok.nextToken()) : 1.0, ChanceDegreeTypeRegistry.getSingleInstance().buildDegree(degreeType, 0.0)); } else { return newDistribution(); } }
public Distribution<Double> newDistribution() { return new GaussianDistribution( 0.0, 1.0, ChanceDegreeTypeRegistry.getSingleInstance().buildDegree(degreeType, 0.0)); }
public Distribution<Double> toDistribution(Double value, Object... params) { return new GaussianDistribution( value.doubleValue(), Double.valueOf(params[0].toString()), ChanceDegreeTypeRegistry.getSingleInstance().buildDegree(degreeType, 0.0)); }
public Distribution<Double> toDistribution(Double value, String strategy) { return new GaussianDistribution( value.doubleValue(), 1.0, ChanceDegreeTypeRegistry.getSingleInstance().buildDegree(degreeType, 0.0)); }