SSJ API Documentation
Stochastic Simulation in Java
Loading...
Searching...
No Matches
InverseGaussianGen.java
1/*
2 * Class: InverseGaussianGen
3 * Description: random variate generators for the inverse Gaussian distribution
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.randvar;
26
27import umontreal.ssj.rng.*;
28import umontreal.ssj.probdist.*;
29
43public class InverseGaussianGen extends RandomVariateGen {
44 protected double mu = -1.0;
45 protected double lambda = -1.0;
46
51 public InverseGaussianGen(RandomStream s, double mu, double lambda) {
52 super(s, new InverseGaussianDist(mu, lambda));
53 setParams(mu, lambda);
54 }
55
60 super(s, dist);
61 if (dist != null)
62 setParams(dist.getMu(), dist.getLambda());
63 }
64
69 public static double nextDouble(RandomStream s, double mu, double lambda) {
70 return InverseGaussianDist.inverseF(mu, lambda, s.nextDouble());
71 }
72
76 public double getMu() {
77 return mu;
78 }
79
83 public double getLambda() {
84 return lambda;
85 }
86
90 protected void setParams(double mu, double lambda) {
91 if (lambda <= 0.0)
92 throw new IllegalArgumentException("lambda <= 0");
93 if (mu <= 0.0)
94 throw new IllegalArgumentException("mu <= 0");
95 this.mu = mu;
96 this.lambda = lambda;
97 }
98}
Extends the class ContinuousDistribution for the inverse Gaussian distribution with location paramete...
double inverseF(double u)
Returns the inverse distribution function .
double getLambda()
Returns the parameter of this object.
void setParams(double mu, double lambda)
Sets the parameters and of this object.
InverseGaussianGen(RandomStream s, double mu, double lambda)
Creates an inverse Gaussian random variate generator with parameters mu and lambda,...
InverseGaussianGen(RandomStream s, InverseGaussianDist dist)
Creates a new generator for the distribution dist, using stream s.
static double nextDouble(RandomStream s, double mu, double lambda)
Generates a variate from the inverse gaussian distribution with location parameter and scale paramet...
double getMu()
Returns the parameter of this object.
This interface defines the basic structures to handle multiple streams of uniform (pseudo)random numb...
double nextDouble()
Returns a (pseudo)random number from the uniform distribution over the interval , using this stream,...