#blas-lapack #lapack #blas #complex #algebra #wrapper

lapack-traits

BLAS和LAPACK的泛型实/复标量特性包装器

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模拟

MIT许可证

20KB
555 代码行

Rust的BLAS/LAPACK特性

将BLAS/LAPACK的实数和复数标量例程作为特性包装,用于在标量泛型数学/科学Rust仓库中使用。

目前实现了BLAS和LAPACK的一小部分例程,但随着时间的推移,还将添加更多。欢迎为任何缺失的例程提供贡献。

特性

通过BlasScalar和LapackScalar特性分别访问BLAS和LAPACK方法。启用simba提供对LComplexField特性的访问,这是一个方便的统一特性,它也派生自simba::scalar::ComplexField。

命名和行为约定

几乎所有在所有类型上具有统一模式的简单例程的行为都与BLAS/LAPACK中定义的行为相同。对于例程xgemm,其中x是类型之一sdcz,特性名称写作Tgemm,方法为gemm。对于一些混合实数和复数标量的例程,例如yasum,其中y = s, d, sc, dz,特性名称为RTasum,而方法简单为asum。具有整数类型的例程,例如ixamax,对应于ITamaxamax

当实数矩阵和复数矩阵混合在一起时,会出现额外的命名和行为复杂性。这些在文档中明确说明,并在所有数据类型上尽可能地统一包装。一般来说,he对于复数类型表示“Hermitian”,对于实数类型表示“Symmetric”,而sy对于所有类型都表示“Symmetric”。同样,un对于复数类型表示“Unitary”,对于实数类型表示“Orthogonal”。

相关的例程可以组合在一个特性下。

依赖关系

~2.5MB
~106K SLoC