Table of contents
Here is a simple example of how to construct a density and a subspace, and compute probabilities
import java.util.List;
import uk.ac.gla.dcs.renaissance.iqir.qpr.Density;
import uk.ac.gla.dcs.renaissance.iqir.qpr.Subspace;
import bpiwowar.maths.matrix.DoubleMatrix1D;
public final class QuantumProbabilityExample {
/**
*
* @param densityVectors A list of density vectors
* @param subspaceVectors
*/
public void example(List<DoubleMatrix1D> densityVectors, List<DoubleMatrix1D> subspaceVectors) {
// --- Creates the density and subspace trackers
// Creates a new density tracker
DensityTracker tracker = new DensityTracker();
// Add the vectors one by one
for(DoubleMatrix1D v: densityVectors)
tracker.add(v);
// Creates a density (do not copy the matrices, so be careful)
Density density = new Density(tracker, false);
// Creates a subspace from the tracker
Subspace subspace = new Subspace(tracker);
// --- Compute probabilities
double probability;
// Computes a probability
probability = density.computeProbability(subspace, false);
System.err.format("The probability P(S|rho) is %.4f", probability);
// Computes a fuzzy probability
probability = density.computeProbability(subspace, true);
System.err.format("The probability P_fuzzy(S|rho) is %.4f", probability);
}
}