Functions
RoundingEmulator.add_up
— Functionadd_up(a, b)
Computes a + b
with the rounding mode Base.Rounding.RoundUp
.
julia> add_up(0.1, 0.2)
0.30000000000000004
julia> add_up(10.0^308, 10.0^308)
Inf
julia> add_up(-10.0^308, -10.0^308)
-1.7976931348623157e308
julia> add_up(-0.1, 0.1)
0.0
julia> add_up(0.0, 0.0)
0.0
julia> add_up(0.0, -0.0)
0.0
julia> add_up(-0.0, -0.0)
-0.0
RoundingEmulator.add_down
— Functionadd_down(a, b)
Computes a + b
with the rounding mode Base.Rounding.RoundDown
.
julia> add_down(0.1, 0.2)
0.3
julia> add_down(10.0^308, 10.0^308)
1.7976931348623157e308
julia> add_down(-10.0^308, -10.0^308)
-Inf
julia> add_down(-0.1, 0.1)
-0.0
julia> add_down(0.0, 0.0)
0.0
julia> add_down(0.0, -0.0)
-0.0
julia> add_down(-0.0, -0.0)
-0.0
RoundingEmulator.sub_up
— Functionsub_up(a, b)
Computes a - b
with the rounding mode Base.Rounding.RoundUp
.
julia> sub_up(-0.1, 0.2)
-0.3
julia> sub_up(-10.0^308, 10.0^308)
-1.7976931348623157e308
julia> sub_up(10.0^308, -10.0^308)
Inf
julia> sub_up(0.1, 0.1)
0.0
julia> sub_up(0.0, 0.0)
0.0
julia> sub_up(0.0, -0.0)
0.0
julia> sub_up(-0.0, 0.0)
-0.0
julia> sub_up(-0.0, -0.0)
0.0
RoundingEmulator.sub_down
— Functionsub_down(a, b)
Computes a - b
with the rounding mode Base.Rounding.RoundDown
.
julia> sub_down(-0.1, 0.2)
-0.30000000000000004
julia> sub_down(-10.0^308, 10.0^308)
-Inf
julia> sub_down(10.0^308, -10.0^308)
1.7976931348623157e308
julia> sub_down(0.1, 0.1)
-0.0
julia> sub_down(0.0, 0.0)
-0.0
julia> sub_down(0.0, -0.0)
0.0
julia> sub_down(-0.0, 0.0)
-0.0
julia> sub_down(-0.0, -0.0)
-0.0
RoundingEmulator.mul_up
— Functionmul_up(a, b)
Computes a * b
with the rounding mode Base.Rounding.RoundUp
.
julia> mul_up(0.1, 0.2)
0.020000000000000004
julia> mul_up(10.0^308, 10.0^308)
Inf
julia> mul_up(10.0^308, -10.0^308)
-1.7976931348623157e308
julia> mul_up(5.0e-324, 5.0e-324)
5.0e-324
julia> mul_up(-0.1, 0.1)
-0.01
julia> mul_up(0.0, 0.0)
0.0
julia> mul_up(0.0, -0.0)
-0.0
julia> mul_up(-0.0, -0.0)
0.0
RoundingEmulator.mul_down
— Functionmul_down(a, b)
Computes a * b
with the rounding mode Base.Rounding.RoundDown
.
julia> mul_down(0.1, 0.2)
0.02
julia> mul_down(10.0^308, 10.0^308)
1.7976931348623157e308
julia> mul_down(10.0^308, -10.0^308)
-Inf
julia> mul_down(5.0e-324, 5.0e-324)
0.0
julia> mul_down(-0.1, 0.1)
-0.010000000000000002
julia> mul_down(0.0, 0.0)
0.0
julia> mul_down(0.0, -0.0)
-0.0
julia> mul_down(-0.0, -0.0)
0.0
RoundingEmulator.div_up
— Functiondiv_up(a, b)
Computes a / b
with the rounding mode Base.Rounding.RoundUp
.
julia> div_up(0.1, 0.3)
0.33333333333333337
julia> div_up(2.0^-100, 2.0^1000)
5.0e-324
julia> div_up(-0.0, 1.0)
-0.0
RoundingEmulator.div_down
— Functiondiv_down(a, b)
Computes a / b
with the rounding mode Base.Rounding.RoundDown
.
julia> div_down(0.1, 0.3)
0.3333333333333333
julia> div_down(2.0^-100, 2.0^1000)
0.0
julia> div_down(-0.0, 1.0)
-0.0
RoundingEmulator.sqrt_up
— Functionsqrt_up(a)
Computes sqrt(a)
with the rounding mode Base.Rounding.RoundUp
.
julia> sqrt_up(2.0)
1.4142135623730951
julia> sqrt_up(0.0)
0.0
julia> sqrt_up(-0.0)
-0.0
RoundingEmulator.sqrt_down
— Functionsqrt_down(a)
Computes sqrt(a)
with the rounding mode Base.Rounding.RoundDown
.
julia> sqrt_down(2.0)
1.414213562373095
julia> sqrt_down(0.0)
0.0
julia> sqrt_down(-0.0)
-0.0