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); } }