406 THE HANDBOOK OF PORTFOLIO MATHEMATICS
}catch(NumberFormatException e){
d[i]=0.0;
probs[lineno][i]=0.0;
}
}
return d;
}
protected int B(double [] hprset,boolean drawdown){
double interimHPR=1.0;
double previnterimHPR=1.0;
double numerator=0.0;
double denominator=0.0;
probThisB=1.0;
for(int i=0;i<hprset.length;i++){
double useinvalue = previnterimHPR;
if(drawdown && previnterimHPR>1.0)
useinvalue = 1.0;
interimHPR = useinvalue × hprset[i];
//interimHPR = previnterimHPR × hprset[i];
double value = interimHPR - b;
numerator += value;
denominator += Math.abs(value);
previnterimHPR = interimHPR;
probThisB *= probsarray[i];
}
if(denominator==0.0){
return 0;
}else{
double x = (numerator/denominator);
if(x>=0){
return (int)x;
}else{
return 0;
}
}
}
//n things taken q at a time where q>=n to return the
i’th item
protected double[] nPqi(int q, long pn){
double hprpermutation[]=new double[q];
probsarray=new double[q];
intx=0;
for(int column=0;column<q;column++){ // go through
column x column