# ANN: FastRounding, ErrorfreeArithmetic, AdjacentFloats

**URL:** <https://discourse.julialang.org/t/ann-fastrounding-errorfreearithmetic-adjacentfloats/3258>\
**Category:** Community\
**Tags:** package, announcement\
**Created:** [April 18, 2017, 1:03am UTC](https://discourse.julialang.org/t/ann-fastrounding-errorfreearithmetic-adjacentfloats/3258 "2017-04-18T01:03:49Z")\
**Posts on this page:** 1\
**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:** [April 18, 2017, 1:03am UTC](https://discourse.julialang.org/t/ann-fastrounding-errorfreearithmetic-adjacentfloats/3258/1 "2017-04-18T01:03:49Z")

</div>

(`Pkg.update()` and add each)

[AdjacentFloats.jl](http://github.com/JeffreySarnoff/AdjacentFloats.jl) exports prev\_float, next\_float which are faster versions of prevfloat, nextfloat. For tiny values (1.0e-305), they may step twice.

[ErrorfreeArithmetic.jl](http://github.com/JeffreySarnoff/ErrorfreeArithmetic.jl) exports add\_errorfree, sub\_errorfree, mul\_errorfree, divide\_accurately, and others. These provide the usual result with an accurate value for the residual. These functions are used to develop extended precision functions and to support FastRounding. fma() is used throughout.

[FastRounding.jl](http://github.com/JeffreySarnoff/FastRounding.jl) exports add\_round, sub\_round, sqr\_round, mul\_round, div\_round, inv\_round, sqrt\_round. `add_round(a, b, RoundDown)`. These rounding modes are supported: `RoundNearest`,`RoundUp`, `RoundDown`, `RoundToZero`, `RoundFromZero`. These types are supported: `Float64`, `Float32`, `Float16`. The rounding occurs much faster than using the built-in rounding mechanism. For applications that switch rounding modes frequently, the speed-up is helpful.
