toArbitrary.frink

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