class ForwardSampler implements SamplingAlgorithm {

    @Override
    public void sample(Map<VariableReference, List<?>> samples, List<Double> logOfMasterPForEachSample) {
        step();
        takeSamples(samples, variablesToSampleFrom);
        double logProb = calculateSampleProbability ? network.getLogOfMasterP() : LOG_PROB_OF_PRIOR;
        logOfMasterPForEachSample.add(logProb);
    }

    public  ForwardSampler(BayesianNetwork network, List<? extends Variable> variablesToSampleFrom, List<Vertex> topologicallySortedVertices, KeanuRandom random, boolean calculateSampleProbability);

}