/** 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]] */