Download or view toArbitrary.frink in plain text format
/** This contains a function to convert ordinary function calls to their
arbitrary-precision equivalents. */
/** Transforms an expression to use arbitrary-precision functions */
toArbitrary[x] :=
{
x = substituteExpression[x, noEval[ln[_z]], noEval[arbitraryLn[_z]]]
x = substituteExpression[x, noEval[exp[_z]], noEval[arbitraryExp[_z]]]
x = substituteExpression[x, noEval[sqrt[_z]], noEval[arbitrarySqrt[_z]]]
x = substituteExpression[x, noEval[_y^_z], noEval[arbitraryPow[_y, _z]]]
x = substituteExpression[x, noEval[log[_z]], noEval[arbitraryLog[_z]]]
x = substituteExpression[x, noEval[log[_z, _b]],noEval[arbitraryLog[_z, _b]]]
x = substituteExpression[x, noEval[sin[_z]], noEval[arbitrarySin[_z]]]
x = substituteExpression[x, noEval[cos[_z]], noEval[arbitraryCos[_z]]]
x = substituteExpression[x, noEval[tan[_z]], noEval[arbitraryTan[_z]]]
x = substituteExpression[x, noEval[erf[_z]], noEval[arbitraryErf[_z]]]
x = substituteExpression[x, noEval[erfc[_z]], noEval[arbitraryErfc[_z]]]
x = substituteExpression[x, noEval[phi[_z]], noEval[arbitraryPhi[_z]]]
return x
}
// Testing code
/**
f = {|x| exp[x] ln[x] sqrt[x] x^y}
println[inputForm[f]]
fa = toArbitrary[f]
println[inputForm[fa]]
*/
Download or view toArbitrary.frink in plain text format
This is a program written in the programming language Frink.
For more information, view the Frink
Documentation or see More Sample Frink Programs.
Alan Eliasen, eliasen@mindspring.com