GY-63_MS5611/libraries/IEEE754tools/readme.md

96 lines
2.8 KiB
Markdown
Raw Normal View History

2013-09-30 11:22:41 -04:00
2021-01-29 06:31:58 -05:00
[![Arduino CI](https://github.com/RobTillaart/IEEE754tools/workflows/Arduino%20CI/badge.svg)](https://github.com/marketplace/actions/arduino_ci)
2021-11-05 12:24:10 -04:00
[![Arduino-lint](https://github.com/RobTillaart/IEEE754tools/actions/workflows/arduino-lint.yml/badge.svg)](https://github.com/RobTillaart/IEEE754tools/actions/workflows/arduino-lint.yml)
[![JSON check](https://github.com/RobTillaart/IEEE754tools/actions/workflows/jsoncheck.yml/badge.svg)](https://github.com/RobTillaart/IEEE754tools/actions/workflows/jsoncheck.yml)
2023-11-06 09:19:19 -05:00
[![GitHub issues](https://img.shields.io/github/issues/RobTillaart/IEEE754tools.svg)](https://github.com/RobTillaart/IEEE754tools/issues)
2021-01-29 06:31:58 -05:00
[![License: MIT](https://img.shields.io/badge/license-MIT-green.svg)](https://github.com/RobTillaart/IEEE754tools/blob/master/LICENSE)
[![GitHub release](https://img.shields.io/github/release/RobTillaart/IEEE754tools.svg?maxAge=3600)](https://github.com/RobTillaart/IEEE754tools/releases)
2023-11-06 09:19:19 -05:00
[![PlatformIO Registry](https://badges.registry.platformio.org/packages/robtillaart/library/IEEE754tools.svg)](https://registry.platformio.org/libraries/robtillaart/IEEE754tools)
2021-01-29 06:31:58 -05:00
# IEEE754tools
2020-11-27 05:16:22 -05:00
Arduino library to manipulate IEEE754 float numbers fast.
2021-11-05 12:24:10 -04:00
2020-11-27 05:16:22 -05:00
## Description
2021-11-05 12:24:10 -04:00
IEEE754tools.h contains a collection of experimental bit-hacks to speed up
a number of operations on floating point numbers on the **Arduino UNO**.
These bit-hacks started in 2010 (oldest code found), maybe even earlier.
2020-11-27 05:16:22 -05:00
2023-11-06 09:19:19 -05:00
#### Related
- http://en.wikipedia.org/wiki/Double_precision
- http://en.wikipedia.org/wiki/Single-precision_floating-point_format
- https://github.com/RobTillaart/float16
2020-11-27 05:16:22 -05:00
## WARNING
2021-01-29 06:31:58 -05:00
2021-11-05 12:24:10 -04:00
- **do not use** this lib for production code unless you verified the correctness.
Code is experimental, so use with care at your own risk.
- If you don't need micro-second speed ups **do not use** these code snippets.
- **do not use for ESP32** ESP32 does things differently ==> not all code works.
## Test results examples
updated for 0.2.2
| example | UNO | ESP32 |
|:--------------|:------:|:-------:|
| fastNegate | Y | Y |
| float2Double | Y | N |
| IEEE754_equal | Y | N |
ESP32 - needs investigation as UNO verified code fails.
(something for a long winter)
2020-11-27 05:16:22 -05:00
2023-11-06 09:19:19 -05:00
## Interface
```cpp
#include "IEEE754tools.h"
```
2022-11-13 03:47:33 -05:00
## Operations
See examples
2020-11-27 05:16:22 -05:00
## Future
2023-11-06 09:19:19 -05:00
#### Must
- improve documentation
2021-01-29 06:31:58 -05:00
- test with double
2021-11-05 12:24:10 -04:00
- test on ESP23
2022-11-13 03:47:33 -05:00
2023-11-06 09:19:19 -05:00
#### Should
2021-11-05 12:24:10 -04:00
- investigate other speed ups
2023-11-06 09:19:19 -05:00
- bring more structure in this library
#### Could
2022-11-13 03:47:33 -05:00
2021-11-05 12:24:10 -04:00
- write more examples
2021-12-20 02:09:14 -05:00
- example binary transfer over Serial
- example binary transfer over Ethernet
2021-11-05 12:24:10 -04:00
2023-11-06 09:19:19 -05:00
#### Wont
## Support
If you appreciate my libraries, you can support the development and maintenance.
Improve the quality of the libraries by providing issues and Pull Requests, or
donate through PayPal or GitHub sponsors.
2020-11-27 05:16:22 -05:00
2023-11-06 09:19:19 -05:00
Thank you,
2020-11-27 05:16:22 -05:00