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;