1 个不稳定版本
0.1.0 | 2021年12月27日 |
---|
#5 in #fitting
用于 splinify
255KB
3.5K SLoC
Dierckx: B-Splines 曲线和曲面拟合
Dierckx 是一个 Fortran 库,用于将 B-Splines 曲线和曲面拟合到数据点集。它由 Paul Dierckx 在 1980 年代中期编写,至今仍然是功能最强大的通用 B-spline 拟合库。它基于坚实的数学基础,实现了许多高级算法,并在 Paul Dierckx 的书中进行了详细描述: Curve and Surface Fitting with Splines.
用法
要使用此库,您需要在您的系统上安装 Fortran 编译器:具体来说,目前需要安装 Gnu Fortran GFortran 编译器。有关如何在您的机器上完成此操作,请参阅 安装 GFortran。
需要安装 Fortran 编译器是一个很大的限制,因此我建议不要将此 crate 作为大型项目中的依赖项使用。
Fortran 文件位于 src/netlib-dierckx
目录中,并于 2021 年 10 月 12 日从 netlib.org 服务器下载。代码进行了修改以消除一些警告,特别是将浮点数相等比较替换为 abs(f)<epsilon(f)
模式,当检查 0.0
值时,以及 abs(fa-fb)<epsilon(fa)
-模式,以检查两个 REAL
数字的相等性。文件使用 REAL
精度的浮点值,但使用 -fdefault-real-8
gfortran 编译器标志转换为 Rust f64
值。原始 Fortran 文件未定义任何双精度值。
使用 build.rs 脚本执行 Fortran 编译,该脚本使用 cc
crate 和 gfortran
编译器,并设置以下编译器标志
-std=legacy
-fdefault-real-8
将所有单精度浮点数转换为f64
-Wno-maybe-uninitialized
-O3
gfortran的最高优化
要使用此库,请将其添加到您的Cargo.toml
文件中
[dependencies]
dierckx-sys = "0.1.0"
有关进一步说明和示例,请参阅单独的dierckx
crate。
许可证
包含在本存储库中的Dierckx Fortran代码是从netlib.org
下载的,没有许可证限制,但请在您的项目中承认Paul Dierckx的工作和库。
本存储库中的所有其他内容均为©2021 Harbers Bik LLC版权所有,并受以下任一许可证的许可:
- Apache License,版本2.0(LICENSE-APACHE或http://www.apache.org/licenses/LICENSE-2.0)
- MIT许可证(LICENSE-MIT或http://opensource.org/licenses/MIT?)
任选其一。
贡献
除非您明确表示,否则根据Apache-2.0许可证定义的您有意提交的任何贡献,均将按上述方式双许可,不附加任何其他条款或条件。
依赖项
~225KB