uses MtxParseExpr, MtxParseClass;
function TMtxExpression.EvaluateDouble(Index :integer): Double;
var vr :
TValueRec;
begin
vr:= Evaluate(Index);
case vr.ValueType of
vtDoubleValue:
begin
result:= vr.DoubleValue;
Exit;
end;
vtComplexValue:
if vr.ComplexValue.Im = 0 then begin
result:= vr.ComplexValue.Re;
Exit;
end;
end;
raise EMtxParseError.Create ('TMtxExpression.EvaluateDouble: double value expected');
end;