SSJ API Documentation
Stochastic Simulation in Java
Loading...
Searching...
No Matches
GeometricNormalInverseGaussianProcess.java
1/*
2 * Class: GeometricNormalInverseGaussianProcess
3 * Description:
4 * Environment: Java
5 * Software: SSJ
6 * Copyright (C) 2001 Pierre L'Ecuyer and Universite de Montreal
7 * Organization: DIRO, Universite de Montreal
8 * @author
9 * @since
10 *
11 *
12 * Licensed under the Apache License, Version 2.0 (the "License");
13 * you may not use this file except in compliance with the License.
14 * You may obtain a copy of the License at
15 *
16 * http://www.apache.org/licenses/LICENSE-2.0
17 *
18 * Unless required by applicable law or agreed to in writing, software
19 * distributed under the License is distributed on an "AS IS" BASIS,
20 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
21 * See the License for the specific language governing permissions and
22 * limitations under the License.
23 *
24 */
25package umontreal.ssj.stochprocess;
26
27import umontreal.ssj.rng.*;
28import umontreal.ssj.probdist.*;
29import umontreal.ssj.randvar.*;
30
47
54 public GeometricNormalInverseGaussianProcess(double s0, double muGeom, double alpha, double beta, double mu,
55 double delta, RandomStream streamBrownian, NormalInverseGaussianProcess nigP) {
56 levyProcess = nigP;
57 ((NormalInverseGaussianProcess) levyProcess).setParams(0.0, alpha, beta, mu, delta);
58 this.x0 = s0;
59 this.muGeom = muGeom;
60 omegaRiskNeutralCorrection = mu + delta * ((NormalInverseGaussianProcess) levyProcess).getGamma()
61 - delta * Math.sqrt(alpha * alpha - (1. + beta) * (1. + beta));
62 }
63
70 public GeometricNormalInverseGaussianProcess(double s0, double muGeom, double alpha, double beta, double mu,
71 double delta, RandomStream streamBrownian, InverseGaussianProcess igP) {
72
73 levyProcess = new NormalInverseGaussianProcess(0.0, alpha, beta, mu, delta, streamBrownian, igP);
74 this.x0 = s0;
75 this.muGeom = muGeom;
76 omegaRiskNeutralCorrection = mu + delta * ((NormalInverseGaussianProcess) levyProcess).getGamma()
77 - delta * Math.sqrt(alpha * alpha - (1. + beta) * (1. + beta));
78 }
79
88 public GeometricNormalInverseGaussianProcess(double s0, double muGeom, double alpha, double beta, double mu,
89 double delta, RandomStream streamBrownian, RandomStream streamNIG1, RandomStream streamNIG2, String igType) {
90 levyProcess = new NormalInverseGaussianProcess(0.0, alpha, beta, mu, delta, streamBrownian, streamNIG1,
91 streamNIG2, igType);
92 this.x0 = s0;
93 this.muGeom = muGeom;
94 omegaRiskNeutralCorrection = mu + delta * ((NormalInverseGaussianProcess) levyProcess).getGamma()
95 - delta * Math.sqrt(alpha * alpha - (1. + beta) * (1. + beta));
96 }
97
108 public GeometricNormalInverseGaussianProcess(double s0, double muGeom, double alpha, double beta, double mu,
109 double delta, RandomStream streamAll, String igType) {
110 this(s0, muGeom, alpha, beta, mu, delta, streamAll, streamAll, streamAll, igType);
111 }
112
113}
Abstract class used as a parent class for the exponentiation of a Lévy process :
GeometricNormalInverseGaussianProcess(double s0, double muGeom, double alpha, double beta, double mu, double delta, RandomStream streamBrownian, NormalInverseGaussianProcess nigP)
Constructs a new GeometricNormalInverseGaussianProcess.
GeometricNormalInverseGaussianProcess(double s0, double muGeom, double alpha, double beta, double mu, double delta, RandomStream streamBrownian, InverseGaussianProcess igP)
Constructs a new GeometricNormalInverseGaussianProcess.
GeometricNormalInverseGaussianProcess(double s0, double muGeom, double alpha, double beta, double mu, double delta, RandomStream streamAll, String igType)
Constructs a new GeometricNormalInverseGaussianProcess.
GeometricNormalInverseGaussianProcess(double s0, double muGeom, double alpha, double beta, double mu, double delta, RandomStream streamBrownian, RandomStream streamNIG1, RandomStream streamNIG2, String igType)
Constructs a new GeometricNormalInverseGaussianProcess.
The inverse Gaussian process is a non-decreasing process where the increments are additive and are gi...
This class represents a normal inverse gaussian process (NIG).
This interface defines the basic structures to handle multiple streams of uniform (pseudo)random numb...