1 个不稳定版本
使用旧的Rust 2015
0.2.0 | 2018年5月4日 |
---|
#16 in #precise
11KB
258 行
efloat
文档可在https://docs.rs/efloag找到
efloat是Siege Engine多人在线游戏引擎的一个组件,但在其他环境中也应具有一般用途。
Siege Engine是一个基于Vulkan API、用Rust语言编写的多人在线游戏引擎。
efloat提供了一种浮点数类型,它根据其历史记录记住其与实际精确值可能存在的偏差。它内部保持上下误差界限,并且你可以通过函数调用检查这些界限。
lib.rs
:
efloat
基于MIT许可证(MIT)版权(c)2018 Michael Dilger
这是一种根据其历史记录记住其与实际精确值可能存在的偏差的浮点数类型。它内部保持上下误差界限,并且你可以通过函数调用检查这些界限。
以下是一些提示
- 乘法和除法不会引起太大的误差。
- 加法是可以的,但减法(或不同符号的加法)有很差的误差界限。
- 先操作小数,然后逐渐增加,这样较大的误差就不会传播并增长太多。
逻辑来自pbrt-v3: https://github.com/mmp/pbrt-v3(efloat.h类)由Matt Pharr,Greg Humphreys和Wenzel Jakob提供。