SSJ
V. labo.

umontreal.iro.lecuyer.discrepancy
Class DiscrepancyContainer

java.lang.Object
  extended by umontreal.iro.lecuyer.discrepancy.DiscrepancyContainer

public class DiscrepancyContainer
extends Object

This class is used to compute, store and display discrepancies. The method add computes the discrepancy of a given array of points for the selected discrepancies and associates them with a given index. One can assign a parameter value to this index (using setParam) so that a graph or a data file is created showing the discrepancies as functions of the parameter. One can also scale the discrepancies of an index with a given scale factor or take the logarithm of the discrepancies.

The discrepancies are computed, assuming that the theoretical distribution of the points is over the unit hypercube [0, 1]s; thus all the coordinates of the points must be in [0, 1].


Constructor Summary
DiscrepancyContainer(Discrepancy[] discrepancies)
          Creates a DiscrepancyContainer for the given discrepancies.
 
Method Summary
 void add(int i, double[][] points, int n, int s)
          Computes the discrepancies of the first n values contained in points using the first s coordinates, and adds the values at index i.
 void add(int i, double[] points, int n)
          Computes the discrepancies of the first n values contained in points, and adds the values at index i.
 void addSquare(int i, double[][] points, int n, int s)
          Computes the square discrepancies of the first n values contained in points using the first s coordinates, and adds the values at index i.
 void addSquare(int i, double[] points, int n)
          Computes the square of the discrepancies of the first n values contained in points, and adds the values at index i.
 void compute(int i, double[][] points, int n, int s)
          Computes the discrepancies of the first n values contained in points using the first s coordinates and sets the values at index i.
 void compute(int i, double[] points, int n)
          Computes the discrepancies of the first n values contained in points and sets the values at index i.
 void init(int n)
          Calls init(n,"","Parameter", "Discrepancy").
 void init(int n, String title, String xLabel, String yLabel)
          Initialize the container with enough space for n values of the parameter and sets the values to 0.
 void log2(int i)
          Takes the logarithm in base 2 of the discrepancy values at index i.
 String regressionToString()
          Formats and returns a String containing the linear regression slopes for the discrepancies as function of the parameter.
 void reset()
          Calls reset(i) for all indices i.
 void reset(int i)
          Resets the values of the discrepancies at index i to 0.
 void scale(double scale)
          Calls scale(i,scale) for all indices i.
 void scale(int i, double scale)
          Multiplies all the discrepancies at index i by scale;
 void setParam(int i, double paramValue)
          Sets the parameter value at index i to parmValue.
 void square(int i)
          Squares the discrepancy values at index i.
 void toDatFile(String filename, String header)
          Creates a file named filename.dat and writes in it the given header, a table showing the discrepancies for the different values of the parameter and the linear regression slopes.
 String toString()
          Returns a String containing a table showing the discrepancies for the different values of the parameter.
 void toTexFile(String filename)
          Creates a file named filename.tex containing LATEX code that can be compiled by pdfLaTeX to a graph of the discrepancies as function of the parameter.
 
Methods inherited from class java.lang.Object
equals, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Constructor Detail

DiscrepancyContainer

public DiscrepancyContainer(Discrepancy[] discrepancies)
Creates a DiscrepancyContainer for the given discrepancies.

Parameters:
discrepancies - array containing the discrepancies to be used
Method Detail

init

public void init(int n,
                 String title,
                 String xLabel,
                 String yLabel)
Initialize the container with enough space for n values of the parameter and sets the values to 0. Also sets the labels for the parameter and the discrepancy that will be used for graphs and data file.

Parameters:
n - number of values the parameter will take
title - title
xLabel - label name for the parameter
yLabel - label name for the discrepancy

init

public void init(int n)
Calls init(n,"","Parameter", "Discrepancy").

Parameters:
n - Number of values the parameter will take.

reset

public void reset(int i)
Resets the values of the discrepancies at index i to 0.

Parameters:
i - index to reset

reset

public void reset()
Calls reset(i) for all indices i.


compute

public void compute(int i,
                    double[] points,
                    int n)
Computes the discrepancies of the first n values contained in points and sets the values at index i.

Parameters:
i - index where to add the discrepancies
points - values for which to compute the discrepancies
n - number of points to use

compute

public void compute(int i,
                    double[][] points,
                    int n,
                    int s)
Computes the discrepancies of the first n values contained in points using the first s coordinates and sets the values at index i.

Parameters:
i - index where to add the discrepancies
points - values for which to compute the discrepancies
n - number of points to use
s - number of coordinates to use for each point

add

public void add(int i,
                double[] points,
                int n)
Computes the discrepancies of the first n values contained in points, and adds the values at index i. **NOTE: This method does not replace the values, it adds to them. Can be used with scale to calculate an average discrepancy over more than one point set.

Parameters:
i - index where to add the discrepancies
points - values for which to compute the discrepancies
n - number of points to use

addSquare

public void addSquare(int i,
                      double[] points,
                      int n)
Computes the square of the discrepancies of the first n values contained in points, and adds the values at index i. **NOTE: This method does not replace the values, it adds to them. Can be used with scale to calculate an average square discrepancy over more than one point set.

Parameters:
i - index where to add the discrepancies
points - values for which to compute the discrepancies
n - number of points to use

add

public void add(int i,
                double[][] points,
                int n,
                int s)
Computes the discrepancies of the first n values contained in points using the first s coordinates, and adds the values at index i. **NOTE: This method does not replace the values, it adds to them. Can be used with scale to calculate an average discrepancy over more than one point set.

Parameters:
i - index where to add the discrepancies
points - values for which to compute the discrepancies
n - number of points to use
s - number of coordinates to use for each point

addSquare

public void addSquare(int i,
                      double[][] points,
                      int n,
                      int s)
Computes the square discrepancies of the first n values contained in points using the first s coordinates, and adds the values at index i. **NOTE: This method does not replace the values, it adds to them. Can be used with scale to calculate an average square discrepancy over more than one point set.

Parameters:
i - index where to add the discrepancies
points - values for which to compute the discrepancies
n - number of points to use
s - number of coordinates to use for each point

scale

public void scale(int i,
                  double scale)
Multiplies all the discrepancies at index i by scale;

Parameters:
i - index where to scale
scale - scale factor

scale

public void scale(double scale)
Calls scale(i,scale) for all indices i.

Parameters:
scale - scale factor

log2

public void log2(int i)
Takes the logarithm in base 2 of the discrepancy values at index i.

Parameters:
i - index where to take the logarithm

square

public void square(int i)
Squares the discrepancy values at index i.

Parameters:
i - index where to take the logarithm

setParam

public void setParam(int i,
                     double paramValue)
Sets the parameter value at index i to parmValue.

Parameters:
i - index where to set the parameter value
paramValue - value to set the parameter

regressionToString

public String regressionToString()
Formats and returns a String containing the linear regression slopes for the discrepancies as function of the parameter.


toTexFile

public void toTexFile(String filename)
Creates a file named filename.tex containing LATEX code that can be compiled by pdfLaTeX to a graph of the discrepancies as function of the parameter.

Parameters:
filename - name of the LaTeX file to be created (without the .tex extension)

toDatFile

public void toDatFile(String filename,
                      String header)
Creates a file named filename.dat and writes in it the given header, a table showing the discrepancies for the different values of the parameter and the linear regression slopes.

Parameters:
filename - name of the output file (without any extension)
header - header of the file (can be empty)

toString

public String toString()
Returns a String containing a table showing the discrepancies for the different values of the parameter.

Overrides:
toString in class Object

SSJ
V. labo.

To submit a bug or ask questions, send an e-mail to Pierre L'Ecuyer.