10.9 Functions Producing Functions¶
In ugUserMake , you learned how to use the operation function to create a function from symbolic formulas. Here we introduce a similar operation which not only creates functions, but functions from functions.
The facility we need is provided by the package MakeUnaryCompiledFunction(E,S,T). MakeUnaryCompiledFunction This package produces a unary (one-argument) compiled function from some symbolic data generated by a previous computation. MakeBinaryCompiledFunction is available for binary functions. MakeBinaryCompiledFunction The E tells where the symbolic data comes from; the S and T give FriCAS the source and target type of the function, respectively. The compiled function produced has type S-> T. To produce a compiled function with definition p(x)==expr, call compiledFunction(expr,x) from this package. The function you get has no name. You must to assign the function to the variable p to give it that name.
Do some computation.
Convert this to an anonymous function of x. Assign it to the variable p to give the function a name.
p := compiledFunction(%,x)$MakeUnaryCompiledFunction(POLY FRAC
Apply the function.
For a more sophisticated application, read on.