AbstractRandomVariableFactory.java
/*
* (c) Copyright Christian P. Fries, Germany. Contact: email@christian-fries.de.
*
* Created on 09.02.2004
*/
package net.finmath.montecarlo;
import java.io.Serializable;
import net.finmath.stochastic.RandomVariable;
/**
*
* @author Christian Fries
* @version 1.0
*/
public abstract class AbstractRandomVariableFactory implements Serializable, RandomVariableFactory {
private static final long serialVersionUID = -4412332958142580025L;
@Override
public RandomVariable createRandomVariable(final double value) {
return createRandomVariable(Double.NEGATIVE_INFINITY, value);
}
@Override
public abstract RandomVariable createRandomVariable(double time, double value);
@Override
public abstract RandomVariable createRandomVariable(double time, double[] values);
@Override
public RandomVariable[] createRandomVariableArray(final double[] values) {
final RandomVariable[] valuesAsRandomVariables = new RandomVariable[values.length];
for(int i=0; i<values.length; i++) {
valuesAsRandomVariables[i] = this.createRandomVariable(Double.NEGATIVE_INFINITY, values[i]);
}
return valuesAsRandomVariables;
}
@Override
public RandomVariable[][] createRandomVariableMatrix(final double[][] values) {
final RandomVariable[][] valuesAsRandomVariables = new RandomVariable[values.length][];
for(int i=0; i<values.length; i++) {
valuesAsRandomVariables[i] = new RandomVariable[values[i].length];
for(int j=0; j<values[i].length; j++) {
valuesAsRandomVariables[i][j] = this.createRandomVariable(Double.NEGATIVE_INFINITY, values[i][j]);
}
}
return valuesAsRandomVariables;
}
}