SSJ
V. 2.6.2.

umontreal.iro.lecuyer.stochprocess
Class VarianceGammaProcessDiffPCA

java.lang.Object
  extended by umontreal.iro.lecuyer.stochprocess.StochasticProcess
      extended by umontreal.iro.lecuyer.stochprocess.VarianceGammaProcess
          extended by umontreal.iro.lecuyer.stochprocess.VarianceGammaProcessDiff
              extended by umontreal.iro.lecuyer.stochprocess.VarianceGammaProcessDiffPCA
Direct Known Subclasses:
VarianceGammaProcessDiffPCABridge, VarianceGammaProcessDiffPCASymmetricalBridge

public class VarianceGammaProcessDiffPCA
extends VarianceGammaProcessDiff

Same as VarianceGammaProcessDiff, but the two inner GammaProcess'es are of PCA type. Also, generatePath(double[] uniforms01) distributes the uniform random variates to the GammaProcessPCA's according to their eigenvalues, i.e. the GammaProcessPCA with the higher eigenvalue gets the next uniform random number. If one should decide to create a VarianceGammaProcessDiffPCA by giving two GammaProcessPCA's to an objet of the class VarianceGammaProcessDiff, the uniform random numbers would not be given this way to the GammaProcessPCA's; this might give less variance reduction when used with QMC.


Constructor Summary
VarianceGammaProcessDiffPCA(double s0, double theta, double sigma, double nu, GammaProcessPCA gpos, GammaProcessPCA gneg)
          Constructs a new VarianceGammaProcessDiffPCA with parameters θ = theta, σ = sigma, ν = nu and initial value S(t0) = s0.
VarianceGammaProcessDiffPCA(double s0, double theta, double sigma, double nu, RandomStream stream)
          Constructs a new VarianceGammaProcessDiffPCA with parameters θ = theta, σ = sigma, ν = nu and initial value S(t0) = s0.
 
Method Summary
 double[] generatePath()
          Generates, returns and saves the path.
 double[] generatePath(double[] uniform01)
          Similar to the usual generatePath(), but here the uniform random numbers used for the simulation must be provided to the method.
 double nextObservation()
          This method is not implemented is this class since the path cannot be generated sequentially.
 
Methods inherited from class umontreal.iro.lecuyer.stochprocess.VarianceGammaProcessDiff
getGneg, getGpos, getStream, resetStartProcess, setObservationTimes, setStream
 
Methods inherited from class umontreal.iro.lecuyer.stochprocess.VarianceGammaProcess
getBrownianMotion, getGammaProcess, getNu, getSigma, getTheta, setParams
 
Methods inherited from class umontreal.iro.lecuyer.stochprocess.StochasticProcess
generatePath, getArrayMappingCounterToIndex, getCurrentObservation, getCurrentObservationIndex, getNbObservationTimes, getObservation, getObservationTimes, getPath, getSubpath, getX0, hasNextObservation, setObservationTimes, setX0
 
Methods inherited from class java.lang.Object
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

VarianceGammaProcessDiffPCA

public VarianceGammaProcessDiffPCA(double s0,
                                   double theta,
                                   double sigma,
                                   double nu,
                                   RandomStream stream)
Constructs a new VarianceGammaProcessDiffPCA with parameters θ = theta, σ = sigma, ν = nu and initial value S(t0) = s0. There is only one RandomStream here which is used for the two inner GammaProcessPCA's. The other parameters are set as in VarianceGammaProcessDiff.


VarianceGammaProcessDiffPCA

public VarianceGammaProcessDiffPCA(double s0,
                                   double theta,
                                   double sigma,
                                   double nu,
                                   GammaProcessPCA gpos,
                                   GammaProcessPCA gneg)
Constructs a new VarianceGammaProcessDiffPCA with parameters θ = theta, σ = sigma, ν = nu and initial value S(t0) = s0. As in VarianceGammaProcessDiff, the RandomStream of gneg is replaced by the one of gpos to avoid any confusion.

Method Detail

nextObservation

public double nextObservation()
This method is not implemented is this class since the path cannot be generated sequentially.

Overrides:
nextObservation in class VarianceGammaProcessDiff

generatePath

public double[] generatePath()
Description copied from class: VarianceGammaProcessDiff
Generates, returns and saves the path. To do so, the path of Γ+ is first generated and then the path of Γ-. This is not the optimal way of proceeding in order to reduce the variance in QMC simulations; for that, use generatePath(double[] uniform01) instead.

Overrides:
generatePath in class VarianceGammaProcessDiff

generatePath

public double[] generatePath(double[] uniform01)
Description copied from class: VarianceGammaProcessDiff
Similar to the usual generatePath(), but here the uniform random numbers used for the simulation must be provided to the method. This allows to properly use the uniform random variates in QMC simulations. This method divides the table of uniform random numbers uniform01 in two smaller tables, the first one containing the odd indices of uniform01 are used to generate the path of Γ+ and the even indices are used to generate the path of Γ-. This way of proceeding further reduces the variance for QMC simulations.

Overrides:
generatePath in class VarianceGammaProcessDiff

SSJ
V. 2.6.2.

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