# Changes between Initial Version and Version 5 of Ticket #13050

Ignore:
Timestamp:
06/19/13 06:19:14 (7 years ago)
Comment:

I think that we can repurpose this ticket to adding the algorithm keyword here. Some good examples from #1173 (most were added in #13001):

```Verify we're returning the appropriate zero::

sage: erf(0)
0
sage: erf(0.0)
0.000000000000000
sage: erf(RealField(100)(0))
0.00000000000000000000000000000
```
```set(erf(45*10**i).n() for i in range(10))
```
```sage: CC(erf(ComplexField(1000)(2+3j)))
```

Unmodified
Added
Removed
Modified
• ## Ticket #13050

• Property Dependencies changed from `12289` to `#12289`
• Property Summary changed from `change default numerical evaluation of `erf` to use mpmath` to `allow different algorithms for evaluating erf`
• ## Ticket #13050 – Description

 initial In #1173 an mpmath numerical evaluator for `erf` was written by Douglas !McNeil. This ticket proposes to save that code, incorporate it with the ability to pass an `algorithm` parameter to `numerical_approx` from #12289 and solve #13003 all in one go. In #1173 an mpmath numerical evaluator for `erf` was written by Douglas !McNeil. This ticket proposes to save that code, incorporate it with the ability to pass an `algorithm` parameter to `numerical_approx` from #12289.  We could support Pari, mpmath, and Maxima. The mpmath evaluator is more robust than PARI, e.g. at large inputs. This is a good reason to switch the default numerical evaluation of `erf` to use mpmath like most of the rest of the new symbolic functions in Sage. In PARIs favor, it is faster for some inputs: {{{ sage: timeit('erf(2).n()') 625 loops, best of 3: 153 µs per loop sage: timeit("erf(2).n(algorithm='pari')") 625 loops, best of 3: 135 µs per loop }}} but not always: {{{ sage: timeit('erf(10^7).n()') 625 loops, best of 3: 118 µs per loop sage: timeit('erf(10^7).n(algorithm="pari")') 625 loops, best of 3: 132 µs per loop }}} It would even be useful to see where Pari is faster.