/** * Creates a new instance of UnivariateRandomVariable * @param distribution * Scalar distribution that backs the random variable, from which samples * will be drawn to approximate the distribution during algebra. * @param random * Random number generator used to sample the distribution * @param numSamples */ public UnivariateRandomVariable( final UnivariateDistribution<? extends Number> distribution, final Random random, final int numSamples ) { this.setDistribution( distribution ); this.setRandom( random ); this.setNumSamples( numSamples ); }
/** * Creates a new instance of UnivariateRandomVariable * @param distribution * Scalar distribution that backs the random variable, from which samples * will be drawn to approximate the distribution during algebra. * @param random * Random number generator used to sample the distribution * @param numSamples */ public UnivariateRandomVariable( final UnivariateDistribution<? extends Number> distribution, final Random random, final int numSamples ) { this.setDistribution( distribution ); this.setRandom( random ); this.setNumSamples( numSamples ); }
@Override public void scaleEquals( final double scaleFactor ) { ArrayList<Number> X = this.sample( this.getRandom(), this.getNumSamples() ); ArrayList<Number> Z = new ArrayList<Number>( this.getNumSamples() ); for( int n = 0; n < this.getNumSamples(); n++ ) { Z.add( X.get(n).doubleValue() * scaleFactor ); } this.setDistribution( new ScalarDataDistribution.PMF( Z ) ); }
/** * Creates a new instance of UnivariateRandomVariable * @param distribution * Scalar distribution that backs the random variable, from which samples * will be drawn to approximate the distribution during algebra. * @param random * Random number generator used to sample the distribution * @param numSamples */ public UnivariateRandomVariable( final UnivariateDistribution<? extends Number> distribution, final Random random, final int numSamples ) { this.setDistribution( distribution ); this.setRandom( random ); this.setNumSamples( numSamples ); }
@Override public void scaleEquals( final double scaleFactor ) { ArrayList<Number> X = this.sample( this.getRandom(), this.getNumSamples() ); ArrayList<Number> Z = new ArrayList<Number>( this.getNumSamples() ); for( int n = 0; n < this.getNumSamples(); n++ ) { Z.add( X.get(n).doubleValue() * scaleFactor ); } this.setDistribution( new ScalarDataDistribution.PMF( Z ) ); }
@Override public void scaleEquals( final double scaleFactor ) { ArrayList<Number> X = this.sample( this.getRandom(), this.getNumSamples() ); ArrayList<Number> Z = new ArrayList<Number>( this.getNumSamples() ); for( int n = 0; n < this.getNumSamples(); n++ ) { Z.add( X.get(n).doubleValue() * scaleFactor ); } this.setDistribution( new ScalarDataDistribution.PMF( Z ) ); }
@Override public void plusEquals( final RandomVariable<Number> other ) { ArrayList<Number> X = this.sample( this.getRandom(), this.getNumSamples() ); ArrayList<? extends Number> Y = other.sample( this.getRandom(), this.getNumSamples() ); ArrayList<Number> Z = new ArrayList<Number>( this.getNumSamples() ); for( int n = 0; n < this.getNumSamples(); n++ ) { Z.add( X.get(n).doubleValue() + Y.get(n).doubleValue() ); } this.setDistribution( new ScalarDataDistribution.PMF( Z ) ); }
@Override public void minusEquals( final RandomVariable<Number> other ) { ArrayList<Number> X = this.sample( this.getRandom(), this.getNumSamples() ); ArrayList<? extends Number> Y = other.sample( this.getRandom(), this.getNumSamples() ); ArrayList<Number> Z = new ArrayList<Number>( this.getNumSamples() ); for( int n = 0; n < this.getNumSamples(); n++ ) { Z.add( X.get(n).doubleValue() - Y.get(n).doubleValue() ); } this.setDistribution( new ScalarDataDistribution.PMF( Z ) ); }
@Override public void dotTimesEquals( final RandomVariable<Number> other ) { ArrayList<Number> X = this.sample( this.getRandom(), this.getNumSamples() ); ArrayList<? extends Number> Y = other.sample( this.getRandom(), this.getNumSamples() ); ArrayList<Number> Z = new ArrayList<Number>( this.getNumSamples() ); for( int n = 0; n < this.getNumSamples(); n++ ) { Z.add( X.get(n).doubleValue() * Y.get(n).doubleValue() ); } this.setDistribution( new ScalarDataDistribution.PMF( Z ) ); }
@Override public void dotTimesEquals( final RandomVariable<Number> other ) { ArrayList<Number> X = this.sample( this.getRandom(), this.getNumSamples() ); ArrayList<? extends Number> Y = other.sample( this.getRandom(), this.getNumSamples() ); ArrayList<Number> Z = new ArrayList<Number>( this.getNumSamples() ); for( int n = 0; n < this.getNumSamples(); n++ ) { Z.add( X.get(n).doubleValue() * Y.get(n).doubleValue() ); } this.setDistribution( new ScalarDataDistribution.PMF( Z ) ); }
@Override public void plusEquals( final RandomVariable<Number> other ) { ArrayList<Number> X = this.sample( this.getRandom(), this.getNumSamples() ); ArrayList<? extends Number> Y = other.sample( this.getRandom(), this.getNumSamples() ); ArrayList<Number> Z = new ArrayList<Number>( this.getNumSamples() ); for( int n = 0; n < this.getNumSamples(); n++ ) { Z.add( X.get(n).doubleValue() + Y.get(n).doubleValue() ); } this.setDistribution( new ScalarDataDistribution.PMF( Z ) ); }
@Override public void minusEquals( final RandomVariable<Number> other ) { ArrayList<Number> X = this.sample( this.getRandom(), this.getNumSamples() ); ArrayList<? extends Number> Y = other.sample( this.getRandom(), this.getNumSamples() ); ArrayList<Number> Z = new ArrayList<Number>( this.getNumSamples() ); for( int n = 0; n < this.getNumSamples(); n++ ) { Z.add( X.get(n).doubleValue() - Y.get(n).doubleValue() ); } this.setDistribution( new ScalarDataDistribution.PMF( Z ) ); }
@Override public void dotTimesEquals( final RandomVariable<Number> other ) { ArrayList<Number> X = this.sample( this.getRandom(), this.getNumSamples() ); ArrayList<? extends Number> Y = other.sample( this.getRandom(), this.getNumSamples() ); ArrayList<Number> Z = new ArrayList<Number>( this.getNumSamples() ); for( int n = 0; n < this.getNumSamples(); n++ ) { Z.add( X.get(n).doubleValue() * Y.get(n).doubleValue() ); } this.setDistribution( new ScalarDataDistribution.PMF( Z ) ); }
@Override public void minusEquals( final RandomVariable<Number> other ) { ArrayList<Number> X = this.sample( this.getRandom(), this.getNumSamples() ); ArrayList<? extends Number> Y = other.sample( this.getRandom(), this.getNumSamples() ); ArrayList<Number> Z = new ArrayList<Number>( this.getNumSamples() ); for( int n = 0; n < this.getNumSamples(); n++ ) { Z.add( X.get(n).doubleValue() - Y.get(n).doubleValue() ); } this.setDistribution( new ScalarDataDistribution.PMF( Z ) ); }
@Override public void plusEquals( final RandomVariable<Number> other ) { ArrayList<Number> X = this.sample( this.getRandom(), this.getNumSamples() ); ArrayList<? extends Number> Y = other.sample( this.getRandom(), this.getNumSamples() ); ArrayList<Number> Z = new ArrayList<Number>( this.getNumSamples() ); for( int n = 0; n < this.getNumSamples(); n++ ) { Z.add( X.get(n).doubleValue() + Y.get(n).doubleValue() ); } this.setDistribution( new ScalarDataDistribution.PMF( Z ) ); }