*/
protected static Ptg calcQuartile(Ptg[] operands){
Ptg[] aveoperands = new Ptg[1];
aveoperands[0] = operands[0];
Ptg[] allVals =PtgCalculator.getAllComponents(aveoperands);
CompatibleVector t = new CompatibleVector();
double retval = 0;
for (int i=0;i<allVals.length;i++){
Ptg p = allVals[i];
try{
Double d = new Double(String.valueOf(p.getValue()));
t.addOrderedDouble(d);
}catch(NumberFormatException e){
Logger.logErr(e);
};
}
Double[] dub = new Double[t.size()];
t.toArray(dub);
Integer quart;
Object o= operands[1].getValue();
if (o instanceof Integer)
quart = (Integer)operands[1].getValue();
else
quart = Integer.valueOf(((Double)operands[1].getValue()).intValue());
float quartile = quart.floatValue();
if (quart.intValue() == 0){ // return minimum value
return new PtgNumber(dub[0].doubleValue());
}else if (quart.intValue() == 4){ // return maximum value
return new PtgNumber(dub[t.size()-1].doubleValue());
}else if (quart.intValue() > 4 || quart.intValue()<0){
return new PtgErr(PtgErr.ERROR_NUM);
}
// find the kth smallest
float kk = (float)(quartile/4);