Skip to content
forked from JuliaMath/DecFP.jl

Julia IEEE decimal floating-point via the Intel decimal-float library

License

Notifications You must be signed in to change notification settings

jmkuhn/DecFP.jl

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

DecFP: IEEE Decimal Floating-point in Julia

Travis Status Appveyor status Coverage Status

The DecFP package is a Julia wrapper around the Intel Decimal Floating-Point Math Library, providing a software implementation of the IEEE 754-2008 Decimal Floating-Point Arithmetic specification.

32-bit, 64-bit, and 128-bit decimal floating-point types Dec32, Dec64, and Dec128, respectively, are provided. This is very different from packages such as Decimals.jl, which provide arbitrary-precision decimal types analogous to BigFloat: arbitrary precision types are very flexible, but fixed-precision types such as those in DecFP are much faster (though still about 100x slower than the hardware binary floating-point types Float32 and Float64).

The DecFP package currently requires the Julia 0.6 release or later.

Usage

Dec64 and the other types mentioned above can be constructed from other Julia numeric types (binary floating-point or integers) via Dec64(3.5) or Dec(3), from strings by parse(Dec64, "3.2") or d64"3.2" (a Julia string macro); similarly for Dec32 and Dec128. The string macro d"3.2" constructs Dec64.

Once a decimal float is constructed, most Julia arithmetic and special functions should work without modification. For example, d"3.2" * d"4.5" produces the Dec64 result +1440E-2 (14.4). Most basic arithmetic functions are supported, and many special functions (sqrt, log, trigonometric functions, etc.). Mixed operations involving decimal and binary floating-point or integer types are supported (the result is promoted to decimal floating-point).

In general, you should be able to use the DecFP types in any context where you would have used binary floating-point types: arrays, complex arithmetic, and linear algebra should all work, for the most part.

About

Julia IEEE decimal floating-point via the Intel decimal-float library

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Languages

  • Julia 100.0%