4 ms·
The effects are how I tested this out; I used FunctionCompile on a function that uses first uses KernelFunction to call a user-defined function that increments
by carry_bit 5y ago
The effects are how I tested this out; I used FunctionCompile on a function that uses first uses KernelFunction to call a user-defined function that increments a counter, and then calls Sqrt on the function's argument.
When you give it a non-negative argument, the counter increases by one; when you give it a negative argument you get the message of it reverting to the uncompiled evaluation and the counter increases by two.
- daneelsan 5y agoInteresting...
- dwohnitmok 5y agoIsn't this a potential for a lot of crazy bugs then? I've never used Wolfram in earnest (touched it once in undergrad ever so briefly) so I may be misunderstanding. EDIT: I see that the documentation for FunctionCompile indicates it's for pure functions only.https://reference.wolfram.com/language/ref/FunctionCompile.html https://reference.wolfram.com/language/ref/FunctionCompile.h...
- carry_bit 5y agoIn Wolfram Language, a "pure function" is what others would call an "anonymous function" or a "lambda". It doesn't actually imply the lack of side-effects. The older Compile function also does the same thing when there's an error. Given the difficulties of doing something fancier, I think it's a reasonable strategy. Mutating state that doesn't originate in a function isn't too common, and less so with the kinds of functions you'd compile. If the compiled function fails, you probably have some other bug in your code anyways.