5个版本
0.0.5 | 2022年12月19日 |
---|---|
0.0.4 | 2022年12月13日 |
0.0.3 | 2022年11月20日 |
0.0.2 | 2022年11月3日 |
0.0.1 | 2022年9月22日 |
#1195 in 数学
1.5MB
2.5K SLoC
包含 (WOFF字体, 99KB) fontawesome-webfont.woff, (WOFF字体, 78KB) fontawesome-webfont.woff2, (WOFF字体, 45KB) open-sans-v17-all-charsets-300.woff2, (WOFF字体, 41KB) open-sans-v17-all-charsets-300italic.woff2, (WOFF字体, 45KB) open-sans-v17-all-charsets-600.woff2, (WOFF字体, 43KB) open-sans-v17-all-charsets-600italic.woff2 等7个文件.
f64ad
介绍
此crate将简单易用、高效且高度灵活的自动微分引入Rust编程语言。利用Rust广泛的运算符重载和表达式的枚举功能,f64ad可以被视为f64的替代品,允许在Rust的任何下游计算中进行正向或反向模式的自动微分。
主要特性
- f64ad支持反向模式或正向模式自动微分
- f64ad不仅支持一阶导数,还支持任何函数的任何高阶导数。
- f64ad使用多态性,使得任何
f64ad
对象都可以被视为跟踪导数的变量或带有非常小的开销的标准f64,具体取决于您的当前用例。因此,您可以用f64ad几乎替换所有f64的使用,并且您将能够
随时根据需要“打开”这些值的导数。 - f64ad枚举类型实现了几个有用的特性,使其几乎可以像标准f64一样操作。例如,它甚至实现了
RealField
和ComplexField
特性,这意味着它可以在任何nalgebra
或ndarray
计算中使用。 - 某些函数可以预先计算并锁定,以在运行时提高性能。
crate结构
此crate是一个cargo工作空间,包含两个成员crate:(1) f64ad_core
;和(2) f64ad_core_derive
。f64ad的所有核心实现都可以在f64ad_core
中找到。f64ad_core_derive
目前是一个占位符,将用于过程宏实现。
引用f64ad
如果您在您的研究中使用了f64ad库的任何部分,请按照以下方式引用软件
@misc{rakita_2022, url={https://djrakita.github.io/f64ad/},
author={Rakita, Daniel},
title={f64ad: Efficient and Flexible Automatic Differentiation in Rust}
year={2022}}
依赖关系
~11MB
~239K SLoC