49 lines
1.8 KiB
Markdown
49 lines
1.8 KiB
Markdown
# Just.PreciseMath
|
|
|
|
Extended-precision floating-point arithmetic for .NET using double-double
|
|
representations: a high/low pair of `double` values. The goal is to retain more
|
|
precision than a single `double` while using a fixed-size representation,
|
|
rather than arbitrary-precision arithmetic.
|
|
|
|
> **Work in progress.** The public API is incomplete and may change. Numerical
|
|
> accuracy has not been validated, and the library is not ready for production use.
|
|
|
|
## Planned scope
|
|
|
|
- Double-double arithmetic, constants, comparisons, conversions, and formatting.
|
|
- Common functions including `Abs`, `Sqrt`, `Pow`, `Exp`, and `Log`.
|
|
- Correctness tests against higher-precision references and performance benchmarks.
|
|
|
|
These are development goals, not a list of currently supported features.
|
|
|
|
## Build and test
|
|
|
|
Requires the .NET 10 SDK in the `10.0.1xx` feature band, as selected by `global.json`.
|
|
Run from the repository root:
|
|
|
|
```sh
|
|
dotnet restore Just.PreciseMath.slnx --locked-mode
|
|
dotnet build Just.PreciseMath.slnx -c Release --no-restore
|
|
dotnet test --solution Just.PreciseMath.slnx -c Release --no-build --minimum-expected-tests 1
|
|
dotnet format Just.PreciseMath.slnx --verify-no-changes --no-restore
|
|
```
|
|
|
|
Test results and coverage reports are available in the `test-results` artifact
|
|
on CI workflow runs.
|
|
|
|
## Project structure
|
|
|
|
- `0-source/Just.PreciseMath/`: library implementation.
|
|
- `1-tests/Just.PreciseMath.Tests/`: unit tests.
|
|
- `2-benchmarks/Just.PreciseMath.Benchmarks/`: reserved for performance benchmarks.
|
|
|
|
## Contributing
|
|
|
|
Follow `.editorconfig` and include regression tests with numerical changes.
|
|
Explain the algorithm's assumptions, the source of reference values, and any
|
|
error tolerances. Include updated `packages.lock.json` files with dependency changes.
|
|
|
|
## License
|
|
|
|
Licensed under the [MIT License](LICENSE).
|