Skip to content

blueglyph/schubfach_rs

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

60 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

schubfach

crate documentation crate


Schubfach algorithm

This is a Rust implementation of the Schufbach algorithm that converts IEEE-754 double-precision floating-point values to their string decimal representation.

It is performant and has a relatively small footprint. For performance comparisons, check the Drachennest project or the Dragonbox project.

Status

WARNING! This is very much work-in-progress.

The code is functional but must still be more thoroughly tested and optimized. The API is not considered as definitive yet, nor is the code architecture.

Current features:

  • double-precision values (f64) are supported
  • a simple function converts values to a simple string format, either fixed or scientific depending on the value
  • a more complex function offers more choices, like
    • fixed / scientific format selection
    • precision
    • correct rounding to even
    • interface through method or Display trait

Planned features:

  • engineering format
  • support for f32 values

References

The algorithm is described by its author in the following article:

The author made a Java implementation:

The Rust code is mainly a translation from Alexander Bolz's C++ implementation:

  • https://github.com/abolz/Drachennest

    with the following licence:

    Copyright 2020 Alexander Bolz
    
    Distributed under the Boost Software License, Version 1.0.
     (See accompanying file LICENSE_1_0.txt or copy at 
      https://www.boost.org/LICENSE_1_0.txt)
    

Compatibility

The schubfach crate is tested for rustc 1.68 and greater, on Windows 64-bit and Linux 64/32-bit platforms. There shouldn't be any problem with older versions.

License

Licensed under MIT license.

About

No description or website provided.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages