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