# \[ANN\] ArbNumerics

**URL:** https://discourse.julialang.org/t/ann-arbnumerics/26036
**Category:** Package Announcements
**Tags:** package, announcement, numerics
**Created:** [July 5, 2019, 8:06am UTC](https://discourse.julialang.org/t/ann-arbnumerics/26036 "2019-07-05T08:06:11Z")
**Posts on this page:** 7
**Page:** 1

<div class="post-metadata">

### Author: ![JeffreySarnoff](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/jeffreysarnoff/32/1980_2.png) [@JeffreySarnoff](https://discourse.julialang.org/u/JeffreySarnoff)
#### Post date: [July 5, 2019, 8:06am UTC](https://discourse.julialang.org/t/ann-arbnumerics/26036/1 "2019-07-05T08:06:11Z")

</div>

[ArbNumerics.jl](https://github.com/JeffreySarnoff/ArbNumerics.jl) is ready for use. This package offers _performant_ arbitrary precision floats (`ArbFloat`), and real or complex extents `ArbReal`, `ArbComplex`. These two enclosure types always include the mathematically correct result.

All common arithmetic and elementary functions are supported. Special functions are available. Some matrix operations are supported. Math functions work with each type.

The [docs](https://jeffreysarnoff.github.io/ArbNumerics.jl/stable/) cover this and more.

---

<div class="post-metadata">

### Author: ![pkofod](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/pkofod/32/2179_2.png) [@pkofod](https://discourse.julialang.org/u/pkofod)
#### Post date: [July 5, 2019, 9:23am UTC](https://discourse.julialang.org/t/ann-arbnumerics/26036/2 "2019-07-05T09:23:31Z")

</div>

Cool!

Here’s a field experiment

```julia
julia> minimize!(himmelblau!, [ArbFloat(1.5), ArbFloat(1.5)], (BFGS(Direct()), BackTracking()), B0, options)
(ArbFloat{128}[3.0, 2.0], 0, ArbFloat{128}[0, 0], 18)

```

(that second to last vector is the gradient, yay, it’s 0)

---

<div class="post-metadata">

### Author: ![mohamed82008](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/mohamed82008/32/18171_2.png) [@mohamed82008](https://discourse.julialang.org/u/mohamed82008)
#### Post date: [July 5, 2019, 10:19am UTC](https://discourse.julialang.org/t/ann-arbnumerics/26036/3 "2019-07-05T10:19:16Z")

</div>

Classic Julia synergy, never grows old!

---

<div class="post-metadata">

### Author: ![pkofod](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/pkofod/32/2179_2.png) [@pkofod](https://discourse.julialang.org/u/pkofod)
#### Post date: [July 5, 2019, 10:24am UTC](https://discourse.julialang.org/t/ann-arbnumerics/26036/4 "2019-07-05T10:24:44Z")

</div>

Yeah. It doesn’t show from the example above, but as always I really did just wrap the first two arguments in `ArbFloat`. I chose the direct approximation there, because this means that there’s a cholesky factorization in there and some other linear algebra, and I didn’t have to change a line. Much appreciation towards Julia!

---

<div class="post-metadata">

### Author: ![bramtayl](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/bramtayl/32/3614_2.png) [@bramtayl](https://discourse.julialang.org/u/bramtayl)
#### Post date: [July 5, 2019, 6:34pm UTC](https://discourse.julialang.org/t/ann-arbnumerics/26036/5 "2019-07-05T18:34:46Z")

</div>

Does this mean that things like Float{64} could live in Base? That could be a huge improvement in terms of factorizing.

---

<div class="post-metadata">

### Author: ![chakravala](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/chakravala/32/6832_2.png) [@chakravala](https://discourse.julialang.org/u/chakravala)
#### Post date: [July 5, 2019, 7:33pm UTC](https://discourse.julialang.org/t/ann-arbnumerics/26036/6 "2019-07-05T19:33:04Z")

</div>

How does this compare with Nemo’s arb types?

---

<div class="post-metadata">

### Author: ![JeffreySarnoff](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/jeffreysarnoff/32/1980_2.png) [@JeffreySarnoff](https://discourse.julialang.org/u/JeffreySarnoff)
#### Post date: [July 5, 2019, 8:33pm UTC](https://discourse.julialang.org/t/ann-arbnumerics/26036/7 "2019-07-05T20:33:01Z")

</div>

Both packages use [Fredrik Johansson’s](http://fredrikj.net/) Arb C Library. `Nemo` is a wonderful work, and I have benefited greatly from their experience and expertise. So, please, use and enjoy. The two packages run the same library code for arithmetic and for calculating elementary and other functions.

These packages have different orientations and purposes. `Nemo` is built for advanced algebraic processing, and supports using integration and polynomials with Arb types directly. I do not (although PRs are welcome). Both support matrix ops, Nemo’s is deeper – that is a very one-way street (thank you Bill, Fredrik, Tommy).

`ArbNumerics` emphasizes coherence with Julia, provides many special functions, has deeply integrated precision-based processing, and is not trying to be `Nemo`.
