1 package baseCode.math.distribution;
2
3 /***
4 * Generate probabilities from the uniform distribution.
5 * <hr>
6 * <p>
7 * Copyright (c) 2004 Columbia University
8 *
9 * @author pavlidis
10 * @version $Id: UniformProbabilityComputer.java,v 1.1 2004/12/31 01:14:48 pavlidis Exp $
11 */
12 public class UniformProbabilityComputer implements ProbabilityComputer {
13
14 double min = 0;
15 double max = 1;
16
17 /***
18 * Create a UniformProbabilityComputer where the density is defined over the unit inteval [0,1].
19 */
20 public UniformProbabilityComputer() {
21 this( 0, 1 );
22 }
23
24 /***
25 * Create a UniformProbabilityComputer where the density is defined over the interval given
26 *
27 * @param min
28 * @param max
29 */
30 public UniformProbabilityComputer( double min, double max ) {
31 if ( max <= min ) {
32 throw new IllegalArgumentException( "Max must be higher than min" );
33 }
34 this.min = min;
35 this.max = max;
36 }
37
38
39
40
41
42
43 public double probability( double x ) {
44 if ( x < min ) return 0;
45 if ( x > max ) return 1;
46 return ( x - min ) / ( max - min );
47 }
48
49
50
51
52
53
54 public double probability( double x, boolean upperTail ) {
55
56 if ( !upperTail ) {
57 return probability( x );
58 }
59
60 if ( x < min ) return 0;
61
62 if ( x > max ) return 1.0;
63
64 return ( max - x ) / ( max - min );
65 }
66
67 }