q1471341.mp1074.test
Class GenzTestIntegrands

java.lang.Object
  extended byq1471341.mp1074.test.GenzTestIntegrands

public class GenzTestIntegrands
extends java.lang.Object

Generates test functions for benchmarking multidimensional integration routines. The test function classes are from:
Alan Genz, Testing Multidimensional Integration Routines, Tools, Methods and Languages for Scientific and Engineerings Computation, eds. B. Ford et. al, 1984, pp. 81-94.

Each function class will produce functions of a specific type (gaussian, oscillatory, etc.) with random parameters. These random parameters that are generated using a Random object. This may be set, for example with a seeded generator, so the randomization is reproducible.

All functions are normalized, that is the integral over the unit cube is 1.

Author:
Ulrich Telle

Nested Class Summary
 class GenzTestIntegrands.GenzContinuous
           
 class GenzTestIntegrands.GenzCornerPeak
           
 class GenzTestIntegrands.GenzDiscontinuous
           
 class GenzTestIntegrands.GenzGaussian
           
 class GenzTestIntegrands.GenzOscillatory
           
 class GenzTestIntegrands.GenzProductPeak
           
 
Field Summary
static int INTEGRAND_CLASS_GENZ_CONTINUOUS
           
static int INTEGRAND_CLASS_GENZ_CORNER_PEAK
           
static int INTEGRAND_CLASS_GENZ_DISCONTINUOUS
           
static int INTEGRAND_CLASS_GENZ_GAUSSIAN
           
static int INTEGRAND_CLASS_GENZ_OSCILLATORY
           
static int INTEGRAND_CLASS_GENZ_PRODUCT_PEAK
           
 
Constructor Summary
GenzTestIntegrands()
           
 
Method Summary
 Integrand getIntegrand(int classNumber, int dimension, double difficulty)
          Generate an integrand for a given integrand class.
 java.lang.String getIntegrandClassName(int classNumber)
          Returns a String description for a specific integrand class.
 int getNumberOfIntegrandClasses()
          Returns the number of integrand classes.
 void setRandom(java.util.Random random)
          Sets the random generator for the random parameters of the functions.
 
Methods inherited from class java.lang.Object
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

INTEGRAND_CLASS_GENZ_OSCILLATORY

public static final int INTEGRAND_CLASS_GENZ_OSCILLATORY
See Also:
Constant Field Values

INTEGRAND_CLASS_GENZ_PRODUCT_PEAK

public static final int INTEGRAND_CLASS_GENZ_PRODUCT_PEAK
See Also:
Constant Field Values

INTEGRAND_CLASS_GENZ_CORNER_PEAK

public static final int INTEGRAND_CLASS_GENZ_CORNER_PEAK
See Also:
Constant Field Values

INTEGRAND_CLASS_GENZ_GAUSSIAN

public static final int INTEGRAND_CLASS_GENZ_GAUSSIAN
See Also:
Constant Field Values

INTEGRAND_CLASS_GENZ_CONTINUOUS

public static final int INTEGRAND_CLASS_GENZ_CONTINUOUS
See Also:
Constant Field Values

INTEGRAND_CLASS_GENZ_DISCONTINUOUS

public static final int INTEGRAND_CLASS_GENZ_DISCONTINUOUS
See Also:
Constant Field Values
Constructor Detail

GenzTestIntegrands

public GenzTestIntegrands()
Method Detail

getNumberOfIntegrandClasses

public int getNumberOfIntegrandClasses()
Returns the number of integrand classes.

Returns:
number of integrand classes

getIntegrandClassName

public java.lang.String getIntegrandClassName(int classNumber)
Returns a String description for a specific integrand class. classNumber must be between 0 and getNumberOfIntegrandClasses() - 1.

Parameters:
classNumber - number of the class
Returns:
description of the class

getIntegrand

public Integrand getIntegrand(int classNumber,
                              int dimension,
                              double difficulty)
Generate an integrand for a given integrand class. classNumber must be between 0 and getNumberOfIntegrandClasses() - 1. The difficulty specifies how difficult the integrand is to integrate compared to other integrands in this class. Obviously, difficulty depends on the integration algorithm used, so the difficulty levels are not at all comparable between integrand classes, and only heuristics within a integrand class.

Parameters:
classNumber - number of the class
dimension - dimension of the integrand
difficulty - difficulty of integrating the integrand
Returns:
test integrand

setRandom

public void setRandom(java.util.Random random)
Sets the random generator for the random parameters of the functions.

Parameters:
random - random generator