#自动微分 #自动微分 #AD

f64ad

简单易用、高效且高度灵活的Rust自动微分

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 数学

MIT/Apache

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

Crates.io

| 文档 | API |

介绍

此crate将简单易用、高效且高度灵活的自动微分引入Rust编程语言。利用Rust广泛的运算符重载和表达式的枚举功能,f64ad可以被视为f64的替代品,允许在Rust的任何下游计算中进行正向或反向模式的自动微分。

主要特性

  • f64ad支持反向模式或正向模式自动微分
  • f64ad不仅支持一阶导数,还支持任何函数的任何高阶导数。
  • f64ad使用多态性,使得任何f64ad对象都可以被视为跟踪导数的变量或带有非常小的开销的标准f64,具体取决于您的当前用例。因此,您可以用f64ad几乎替换所有f64的使用,并且您将能够
    随时根据需要“打开”这些值的导数。
  • f64ad枚举类型实现了几个有用的特性,使其几乎可以像标准f64一样操作。例如,它甚至实现了RealFieldComplexField特性,这意味着它可以在任何nalgebrandarray计算中使用。
  • 某些函数可以预先计算并锁定,以在运行时提高性能。

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