Numbers

Standard Numeric Types

Abstract number types

```@docs Core.Number Core.Real Core.AbstractFloat Core.Integer Core.Signed Core.Unsigned


### Concrete number types

```@docs
Core.Float16
Core.Float32
Core.Float64
Base.BigFloat
Core.Bool
Core.Int8
Core.UInt8
Core.Int16
Core.UInt16
Core.Int32
Core.UInt32
Core.Int64
Core.UInt64
Core.Int128
Core.UInt128
Base.BigInt
Base.Complex
Base.Rational
Base.Irrational

Data Formats

```@docs Base.bin Base.hex Base.dec Base.oct Base.base Base.digits Base.digits! Base.bits Base.parse(::Type, ::Any, ::Any) Base.tryparse Base.big Base.signed Base.unsigned Base.float(::Any) Base.Math.significand Base.Math.exponent Base.complex(::Complex) Base.bswap Base.num2hex Base.hex2num Base.hex2bytes Base.bytes2hex


## General Number Functions and Constants

```@docs
Base.one
Base.oneunit
Base.zero
Base.pi
Base.im
Base.eu
Base.catalan
Base.eulergamma
Base.golden
Base.Inf
Base.Inf32
Base.Inf16
Base.NaN
Base.NaN32
Base.NaN16
Base.issubnormal
Base.isfinite
Base.isinf
Base.isnan
Base.iszero
Base.isone
Base.nextfloat
Base.prevfloat
Base.isinteger
Base.isreal
Core.Float32(::Any)
Core.Float64(::Any)
Base.GMP.BigInt(::Any)
Base.MPFR.BigFloat(::Any)
Base.Rounding.rounding
Base.Rounding.setrounding(::Type, ::Any)
Base.Rounding.setrounding(::Function, ::Type, ::RoundingMode)
Base.Rounding.get_zero_subnormals
Base.Rounding.set_zero_subnormals

Integers

```@docs Base.count_ones Base.count_zeros Base.leading_zeros Base.leading_ones Base.trailing_zeros Base.trailing_ones Base.isodd Base.iseven


## BigFloats

The [`BigFloat`](@ref) type implements arbitrary-precision floating-point arithmetic using
the [GNU MPFR library](http://www.mpfr.org/).

```@docs
Base.precision
Base.MPFR.precision(::Type{BigFloat})
Base.MPFR.setprecision
Base.MPFR.BigFloat(x, prec::Int)
BigFloat(x::Union{Integer, AbstractFloat, String}, rounding::RoundingMode)
Base.MPFR.BigFloat(x, prec::Int, rounding::RoundingMode)
Base.MPFR.BigFloat(x::String)

Random Numbers

Random number generation in Julia uses the Mersenne Twister library via MersenneTwister objects. Julia has a global RNG, which is used by default. Other RNG types can be plugged in by inheriting the AbstractRNG type; they can then be used to have multiple streams of random numbers. Besides MersenneTwister, Julia also provides the RandomDevice RNG type, which is a wrapper over the OS provided entropy.

Most functions related to random generation accept an optional AbstractRNG as the first argument, rng , which defaults to the global one if not provided. Morever, some of them accept optionally dimension specifications dims... (which can be given as a tuple) to generate arrays of random values.

A MersenneTwister or RandomDevice RNG can generate random numbers of the following types: Float16, Float32, Float64, Bool, Int8, UInt8, Int16, UInt16, Int32, UInt32, Int64, UInt64, Int128, UInt128, BigInt (or complex numbers of those types). Random floating point numbers are generated uniformly in [0, 1). As BigInt represents unbounded integers, the interval must be specified (e.g. rand(big(1:6))).

@docs Base.Random.srand Base.Random.MersenneTwister Base.Random.RandomDevice Base.Random.rand Base.Random.rand! Base.Random.bitrand Base.Random.randn Base.Random.randn! Base.Random.randexp Base.Random.randexp! Base.Random.randjump