https://github.com/jenska/float
80-bit IEEE 754 extended double precision floating-point library for Go
https://github.com/jenska/float
80bit float float80 floatx80 golang ieee754 softfloat
Last synced: 11 days ago
JSON representation
80-bit IEEE 754 extended double precision floating-point library for Go
- Host: GitHub
- URL: https://github.com/jenska/float
- Owner: jenska
- License: mit
- Created: 2021-07-29T13:09:19.000Z (over 4 years ago)
- Default Branch: main
- Last Pushed: 2021-08-02T08:42:26.000Z (over 4 years ago)
- Last Synced: 2024-06-20T00:36:48.551Z (over 1 year ago)
- Topics: 80bit, float, float80, floatx80, golang, ieee754, softfloat
- Language: Go
- Homepage:
- Size: 42 KB
- Stars: 4
- Watchers: 2
- Forks: 1
- Open Issues: 0
-
Metadata Files:
- Readme: readme.md
- License: LICENSE
Awesome Lists containing this project
README
# 80-bit IEEE 754 extended double precision floating-point library for Go
The float package is a software implementation of floating-point arithmetics that conforms to
the 80-bit IEEE 754 extended double precision floating-point format
This package is derived from the original SoftFloat package and was implemented as a basis for a Motorola M68881/M68882 FPU emulation in pure Go
## Example
```go
package float_test
import (
"fmt"
"github.com/jenska/float"
)
func ExampleX80() {
pi := float.X80Pi
pi2 := pi.Add(pi)
sqrtpi2 := pi2.Sqrt()
epsilon := sqrtpi2.Mul(sqrtpi2).Sub(pi2)
fmt.Println(epsilon)
// Output: -0.000000000000000000433680868994
}
```
## Error Handling
### TODOs
- improve test coverage
- add examples
- improve error handling
- log/ln operations
- atan
- benchmarks