TinyHugeNumbers

The TinyHugeNumbers package exports tiny and huge objects to represent tiny and huge numbers. These objects aren't really numbers and behave differently depending on the context. They do support any operation that is defined for Real numbers. For more info see Julia's documentation about promotion.

TinyHugeNumbers.tinyConstant
tiny

tiny represents a (wow!) tiny number that can be used in a various computations without unnecessary type promotions.

tiny is defined as:

  • 1.0f-6 for Float32
  • 1e-12 for Float64
  • big"1e-24" for BigFloat
  • 10 * eps(F) for an arbitrary type F <: AbstractFloat

Example

julia> tiny
tiny

julia> 1 + tiny
1.000000000001

julia> tiny + 1
1.000000000001

julia> 1f0 + tiny
1.000001f0

julia> big"1.0" + tiny
1.000000000000000000000001

julia> big"1" + tiny
1.000000000000000000000001

See also: huge

TinyHugeNumbers.hugeConstant
huge

huge represents a (wow!) huge number that can be used in a various computations without unnecessary type promotions.

huge is defined as:

  • 1.0f+6 for Float32
  • 1e+12 for Float64
  • big"1e+24" for BigFloat
  • inv(tiny(F)) for an arbitrary type F <: AbstractFloat

Example

julia> huge
huge

julia> 1 + huge
1.000000000001e12

julia> huge + 1
1.000000000001e12

julia> 1f0 + huge
1.000001f6

julia> big"1.0" + huge
1.000000000000000000000001e+24

julia> big"1" + huge
1.000000000000000000000001e+24

See also: tiny