https://github.com/juliamath/decfp.jl

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

https://github.com/juliamath/decfp.jl

Science Score: 36.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
    Found .zenodo.json file
  • DOI references
  • Academic publication links
  • Committers with academic emails
    6 of 25 committers (24.0%) from academic institutions
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (11.5%) to scientific vocabulary

Keywords

decimal decimal-floating-point floating-point julia math

Keywords from Contributors

julialang mkl fftw fft bindings programming-language numerical partial-differential-equations differential-equations integration
Last synced: 6 months ago · JSON representation

Repository

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

Basic Info
  • Host: GitHub
  • Owner: JuliaMath
  • License: other
  • Language: Julia
  • Default Branch: master
  • Homepage:
  • Size: 188 KB
Statistics
  • Stars: 63
  • Watchers: 8
  • Forks: 21
  • Open Issues: 5
  • Releases: 19
Topics
decimal decimal-floating-point floating-point julia math
Created almost 11 years ago · Last pushed 6 months ago
Metadata Files
Readme License

README.md

DecFP: IEEE Decimal Floating-point in Julia

CI Coverage Status codecov

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 (corresponding to 7, 16, and 34 decimal digits of precision, respectively). 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 50x slower than the hardware binary floating-point types Float32 and Float64) and more memory-efficient (an array of Dec64 values has exactly the same memory footprint as an array of Float64 values).

The latest version of the DecFP package requires Julia 1.7 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.

  • Note: A decimal floating-point constant like 1.1 in Julia refers to a Float64 (binary floating-point) value. So, for example, Dec128(1.999999999999999999) == 2.0 ≠ d128"1.999999999999999999", since Julia first rounds 1.999999999999999999 to the closest Float64 value (2.0) before converting to Dec128. If you need to specify an exact decimal constant, therefore, use one of the string-based constructors. If you use a string macro like d128"1.999999999999999999", then the string parsing occurs before compilation and incurs no runtime cost.

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 (exact) Dec64 result 14.4 All 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.

Owner

  • Name: Julia Math
  • Login: JuliaMath
  • Kind: organization

Mathematics made easy in Julia

GitHub Events

Total
  • Create event: 7
  • Commit comment event: 4
  • Issues event: 5
  • Watch event: 5
  • Delete event: 9
  • Member event: 1
  • Issue comment event: 32
  • Push event: 14
  • Pull request review comment event: 6
  • Pull request event: 22
  • Pull request review event: 10
  • Fork event: 1
Last Year
  • Create event: 7
  • Commit comment event: 4
  • Issues event: 5
  • Watch event: 5
  • Delete event: 9
  • Member event: 1
  • Issue comment event: 32
  • Push event: 14
  • Pull request review comment event: 6
  • Pull request event: 22
  • Pull request review event: 10
  • Fork event: 1

Committers

Last synced: almost 3 years ago

All Time
  • Total Commits: 161
  • Total Committers: 25
  • Avg Commits per committer: 6.44
  • Development Distribution Score (DDS): 0.665
Top Committers
Name Email Commits
Steven G. Johnson s****j@m****u 54
John M. Kuhn j****n@u****m 29
quinnj q****d@g****m 19
Steven G. Johnson s****j@a****u 15
Simon Byrne s****e@g****m 10
John M Kuhn J****n@n****v 9
Fredrik Ekre e****k@g****m 2
Andreas Noack a****n@g****m 2
Abhijith a****c@g****m 2
ranjanan b****n@g****m 2
John M Kuhn j****n@s****t 2
Mosè Giordano g****o@u****m 2
Christian Rorvik c****k@g****m 1
Kristoffer Carlsson k****l@s****e 1
Julia TagBot 5****t@u****m 1
Elliot Saba s****t@g****m 1
Nicolas Payette n****e@g****m 1
Kristoffer Carlsson k****n@c****e 1
Tim Holy t****y@g****m 1
dantaras 4****s@u****m 1
ScottPJones s****s@a****u 1
Hörmet Yiltiz h****z@u****m 1
Páll Haraldsson P****n@g****m 1
nkottary k****4@g****m 1
femtocleaner[bot] f****]@u****m 1
Committer Domains (Top 20 + Academic)

Issues and Pull Requests

Last synced: 6 months ago

All Time
  • Total issues: 55
  • Total pull requests: 78
  • Average time to close issues: about 1 year
  • Average time to close pull requests: 2 months
  • Total issue authors: 28
  • Total pull request authors: 19
  • Average comments per issue: 4.09
  • Average comments per pull request: 1.85
  • Merged pull requests: 68
  • Bot issues: 0
  • Bot pull requests: 10
Past Year
  • Issues: 2
  • Pull requests: 11
  • Average time to close issues: less than a minute
  • Average time to close pull requests: 2 days
  • Issue authors: 2
  • Pull request authors: 4
  • Average comments per issue: 0.0
  • Average comments per pull request: 0.82
  • Merged pull requests: 10
  • Bot issues: 0
  • Bot pull requests: 2
Top Authors
Issue Authors
  • stevengj (15)
  • jmkuhn (11)
  • fingolfin (2)
  • JeffreySarnoff (2)
  • wookay (1)
  • mohamed-180 (1)
  • mohamed82008 (1)
  • jaakkor2 (1)
  • JuliaTagBot (1)
  • chbian (1)
  • omus (1)
  • quinnj (1)
  • hrhill (1)
  • simonbyrne (1)
  • Jasha10 (1)
Pull Request Authors
  • jmkuhn (29)
  • stevengj (17)
  • dependabot[bot] (11)
  • simonbyrne (4)
  • fingolfin (3)
  • giordano (2)
  • inkydragon (2)
  • fredrikekre (2)
  • JuliaTagBot (1)
  • quinnj (1)
  • dantaras (1)
  • lgoettgens (1)
  • ancapdev (1)
  • ranocha (1)
  • KristofferC (1)
Top Labels
Issue Labels
enhancement (6) bug (4) breaking (1)
Pull Request Labels
dependencies (11) enhancement (1)

Packages

  • Total packages: 1
  • Total downloads:
    • julia 1,684 total
  • Total dependent packages: 13
  • Total dependent repositories: 12
  • Total versions: 15
juliahub.com: DecFP

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

  • Versions: 15
  • Dependent Packages: 13
  • Dependent Repositories: 12
  • Downloads: 1,684 Total
Rankings
Dependent repos count: 2.6%
Dependent packages count: 5.0%
Average: 6.6%
Forks count: 6.9%
Stargazers count: 11.7%
Last synced: 6 months ago