Quintiq file version 2.0 
 | 
#parent: #root 
 | 
Method TestScriptComputeMeanVarianceUsingQuantileBySampling ( 
 | 
  ProbabilityDistribution distr, 
 | 
  String node_r, 
 | 
  String period_r, 
 | 
  String functionname 
 | 
) 
 | 
{ 
 | 
  TextBody: 
 | 
  [* 
 | 
    timestart := OS::PrecisionCounter() 
 | 
     
 | 
    nrsamples := 100;  
 | 
     
 | 
    xsum_Q := 0.0;  
 | 
    xsqrsum_Q := 0.0;  
 | 
    for ( i := 1; i <= nrsamples; i++ )  
 | 
    { 
 | 
      u := Real::Random( 0.0, 1.0);  
 | 
     
 | 
      fromquant := distr.Quantile( u );  
 | 
      xsum_Q := xsum_Q + fromquant;  
 | 
      xsqrsum_Q := xsqrsum_Q + (fromquant * fromquant );  
 | 
    } 
 | 
     
 | 
    timeend := OS::PrecisionCounter();  
 | 
    timeusedsec := (timeend - timestart) / OS::PrecisionCounterFrequency()  
 | 
    info( 'time used to compute from samples = ', timeusedsec, 's' );  
 | 
    sample_mean_Q := xsum_Q / nrsamples 
 | 
    sample_sqr_mean_Q := xsqrsum_Q / nrsamples;  
 | 
    info( 'Q sample mean', sample_mean_Q );  
 | 
    info( 'Q sample ^2 mean',  sample_sqr_mean_Q);  
 | 
    info( 'Q sample variance ', sample_sqr_mean_Q - (sample_mean_Q*sample_mean_Q) ); 
 | 
  *] 
 | 
} 
 |