8个不稳定版本 (3个破坏性更新)
| 0.4.0 | 2021年12月13日 |
|---|---|
| 0.3.1 | 2021年6月23日 |
| 0.2.3 | 2020年4月28日 |
| 0.1.0 | 2020年3月29日 |
#356 在 模拟
20KB
555 代码行
Rust的BLAS/LAPACK特性
将BLAS/LAPACK的实数和复数标量例程作为特性包装,用于在标量泛型数学/科学Rust仓库中使用。
目前实现了BLAS和LAPACK的一小部分例程,但随着时间的推移,还将添加更多。欢迎为任何缺失的例程提供贡献。
特性
通过BlasScalar和LapackScalar特性分别访问BLAS和LAPACK方法。启用simba提供对LComplexField特性的访问,这是一个方便的统一特性,它也派生自simba::scalar::ComplexField。
命名和行为约定
几乎所有在所有类型上具有统一模式的简单例程的行为都与BLAS/LAPACK中定义的行为相同。对于例程xgemm,其中x是类型之一s、d、c或z,特性名称写作Tgemm,方法为gemm。对于一些混合实数和复数标量的例程,例如yasum,其中y = s, d, sc, dz,特性名称为RTasum,而方法简单为asum。具有整数类型的例程,例如ixamax,对应于ITamax和amax。
当实数矩阵和复数矩阵混合在一起时,会出现额外的命名和行为复杂性。这些在文档中明确说明,并在所有数据类型上尽可能地统一包装。一般来说,he对于复数类型表示“Hermitian”,对于实数类型表示“Symmetric”,而sy对于所有类型都表示“Symmetric”。同样,un对于复数类型表示“Unitary”,对于实数类型表示“Orthogonal”。
相关的例程可以组合在一个特性下。
依赖关系
~2.5MB
~106K SLoC