SSJ
V. labo.

umontreal.iro.lecuyer.discrepancy
Class DiscL2Hickernell

java.lang.Object
  extended by umontreal.iro.lecuyer.discrepancy.Discrepancy
      extended by umontreal.iro.lecuyer.discrepancy.DiscL2Hickernell

public class DiscL2Hickernell
extends Discrepancy

This class computes the Hickernell L2-star discrepancy in for a point set. It is based on the reproducing kernel Hilbert space which consists of functions with square-integrable first-order derivatives, and whose reproducing kernel is given by

K(x,y) = ∏j=1sηj(xj, yj),

where

ηj(x, y) = 1 + $\displaystyle {\frac{{\vert x-a_j\vert + \vert y - a_j\vert - \vert x-y\vert}}{2}}$.

The inner product is given by

f, g〉 = ∑$\scriptstyle \mathfrak$u⊆S[0, 1)|$\scriptscriptstyle \mathfrak$u|$\displaystyle {\frac{{\partial^{\vert\mathfrak{u}\vert}f(\mathbf{x}_{\mathfrak{u}}, \boldsymbol{a})}}{{\partial \mathbf{x_{\mathfrak{u}}}}}}$$\displaystyle {\frac{{\partial^{\vert\mathfrak{u}\vert}g(\mathbf{x}_{\mathfrak{u}}, \boldsymbol{a})}}{{\partial \mathbf{x_{\mathfrak{u}}}}}}$dx[tex2html_wrap_indisplay273]u,

where S is the set of coordinates indices {1, 2,..., s}, |$ \mathfrak$u| denotes the cardinality of [tex2html_wrap_inline279]u, x[tex2html_wrap_inline281]u denotes the vector made of the components of x whose indices are in [tex2html_wrap_inline284]u, and $ \boldsymbol$a∈[0, 1]s is called the anchor.

The worst-case error for this function space is the L2 version of the star discrepancy D2*. Choosing [tex2html_wrap_inline294]a = 1, Hickernell obtained the formula

[D2*(P)]2 = ($\displaystyle {\textstyle\frac{4}{3}}$)s - $\displaystyle {\frac{2}{n}}$i=1nk=1s($\displaystyle {\frac{{3 - z_{ik}^2}}{2}}$) + $\displaystyle {\frac{{1}}{{n^2}}}$i=1nj=1nk=1s$\displaystyle \Bigl($2 - max(zik, zjk)$\displaystyle \Bigr)$,

where n is the number of points of set P, s is the dimension of the points, and zik is the k-th coordinate of point i.

In 1 dimension, the formula is equivalent to

[D2*(P)]2 = $\displaystyle {\textstyle\frac{1}{3}}$ + $\displaystyle {\frac{1}{n}}$i=1nzi2 - [tex2html_wrap_indisplay315]∑i=1nj=1nmax(zi, zj),

where zi is the coordinate of point i.


Constructor Summary
DiscL2Hickernell()
          Empty constructor.
DiscL2Hickernell(double[][] points, int n, int s)
          Constructor with the n points points[i] in dimension s.
DiscL2Hickernell(int n, int s)
          Constructor with n points in dimension s.
DiscL2Hickernell(PointSet set)
          Constructor with the point set set.
 
Method Summary
 double compute(double[][] points, int n, int s)
          Computes the Hickernell L2-discrepancy for the set of n s-dimensional points points.
 double compute(double[][] points, int n, int s, double[] gamma)
          Computes the discrepancy of the first n points of points in dimension s with weights gamma.
 double compute(double[] T, int n)
          Computes the Hickernell L2-discrepancy for the set of n 1-dimensional points T.
 
Methods inherited from class umontreal.iro.lecuyer.discrepancy.Discrepancy
compute, compute, compute, compute, compute, compute, compute, formatPoints, getDimension, getGamma, getName, getNumPoints, setGamma, setPoints, setPoints, sort, toArray, toString
 
Methods inherited from class java.lang.Object
equals, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Constructor Detail

DiscL2Hickernell

public DiscL2Hickernell(double[][] points,
                        int n,
                        int s)
Constructor with the n points points[i] in dimension s. points[i][j] is the j-th coordinate of point i. Both i and j start at 0.


DiscL2Hickernell

public DiscL2Hickernell(int n,
                        int s)
Constructor with n points in dimension s. The n points will be chosen later.


DiscL2Hickernell

public DiscL2Hickernell(PointSet set)
Constructor with the point set set. All the points are copied in an internal array.


DiscL2Hickernell

public DiscL2Hickernell()
Empty constructor. One must set the points and the dimension before calling any method.

Method Detail

compute

public double compute(double[][] points,
                      int n,
                      int s,
                      double[] gamma)
Description copied from class: Discrepancy
Computes the discrepancy of the first n points of points in dimension s with weights gamma.

Overrides:
compute in class Discrepancy

compute

public double compute(double[][] points,
                      int n,
                      int s)
Computes the Hickernell L2-discrepancy for the set of n s-dimensional points points.

Specified by:
compute in class Discrepancy

compute

public double compute(double[] T,
                      int n)
Computes the Hickernell L2-discrepancy for the set of n 1-dimensional points T.

Overrides:
compute in class Discrepancy

SSJ
V. labo.

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