package com.rapidminer.operator.similarity.attributebased.uncertain;
import com.rapidminer.tools.Ontology;
/**
* Abstract class of an object encapsulating a Probability Density Function (pdf).
*
* @author Michael Huber
*/
public abstract class AbstractProbabilityDensityFunction implements ProbabilityDensityFunction{
/**
* represents a data point in multidimensional space
*/
protected double[] value;
protected double uncertainty;
/**
* determines if uncertainty is absolut or relative
*/
protected boolean absoluteError;
public AbstractProbabilityDensityFunction(double value[], double uncertainty,boolean absoluteError) {
this.value = value;
this.uncertainty = uncertainty;
this.absoluteError = absoluteError;
}
public AbstractProbabilityDensityFunction(double uncertainty,boolean absoluteError) {
this.value = null;
this.uncertainty = uncertainty;
this.absoluteError = absoluteError;
}
public void setUncertainty(double uncertainty) {
this.uncertainty = uncertainty;
}
/**
*
* @return returns the measurement point for the uncertainty
*/
public double[] getValue() {
return value;
}
/**
* Sets the measurement center for the uncertainty
* @param value
*/
public void setValue(double value[]) {
this.value = value;
}
/**
* Returns the uncertainty parameters for the PDF
* @return
*/
public double getUncertainty() {
return uncertainty;
}
public int getValueType() {
return Ontology.UNCERTAIN;
}
public double getDoubleValue(){
double sum =0;
for(int i=0;i<value.length;i++){
sum += value[i];
}
return sum/value.length;
}
}