1 | initial version |

You can try using the `fast_callable`

function which converts a symbolic function to a python (or Cython? or C?) function that takes advantage of the fast routines for compute (for example) `sin(x)`

where the input `x`

is a float.

Try:

```
sage: x,y,z = var('x,y,z')
sage: import numpy as np
sage: X=np.linspace(-1,1,10)
sage: Y,Z=X,X
sage: f(x,y,z)=x^2*sin(y)*z
sage: ff = fast_callable(f, vars=[x,y,z])
sage: ff(1,2,3)
3*sin(2)
sage: ff(X,Y,Z)
array([ 8.41470985e-01, 3.30154145e-01, 9.04347369e-02,
1.21183221e-02, 1.52102371e-04, 1.52102371e-04,
1.21183221e-02, 9.04347369e-02, 3.30154145e-01,
8.41470985e-01])
```

My first thought was to use `fast_float`

instead, but that doesn't seem to work. Maybe someone more knowledgable can point out why.

2 | No.2 Revision |

You can try using the `fast_callable`

function which converts a symbolic function to a python (or Cython? or C?) function that takes advantage of the fast routines for compute (for example) `sin(x)`

where the input `x`

is a float.

Try:

```
sage: x,y,z = var('x,y,z')
sage: import numpy as np
sage: X=np.linspace(-1,1,10)
sage: Y,Z=X,X
sage: f(x,y,z)=x^2*sin(y)*z
sage: ff = fast_callable(f, vars=[x,y,z])
sage: ff(1,2,3)
3*sin(2)
sage: ff(X,Y,Z)
array([ 8.41470985e-01, 3.30154145e-01, 9.04347369e-02,
1.21183221e-02, 1.52102371e-04, 1.52102371e-04,
1.21183221e-02, 9.04347369e-02, 3.30154145e-01,
8.41470985e-01])
```

My first thought was to use `fast_float`

instead, but that doesn't seem to work. Maybe someone more ~~knowledgable ~~knowledgeable can point out why.

Copyright Sage, 2010. Some rights reserved under creative commons license. Content on this site is licensed under a Creative Commons Attribution Share Alike 3.0 license.