2个版本

0.1.1 2024年6月7日
0.1.0 2024年6月7日

#226 in 机器学习

MIT许可协议

13KB
264

Algebrust

Algebrust是一个针对Rust的高性能线性代数库,适用于矩阵和向量的高效数学运算。利用Rust的安全性和表达性,Algebrust为机器学习、科学计算和计算机图形学等领域的数值计算任务提供了一个可靠的工具集。

特性

  • 向量加法、减法、点积、标量乘法、模长、归一化和叉积。
  • 矩阵加法、减法、乘法、标量乘法、转置、LU分解、行列式计算和求逆。

使用方法

要在项目中使用Algebrust,请将其添加到您的Cargo.toml文件中的依赖项。您可以手动操作或使用cargo add命令。

使用cargo add

cargo add algebrust

手动编辑Cargo.toml

[dependencies]下添加以下行到您的Cargo.toml

[dependencies]
algebrust = "0.1.0"

使用方法

以下是一些示例以帮助您入门

向量

use algebrust::AlgebrustVector;

// Creating vectors
let v1 = AlgebrustVector::new(&[1.0, 2.0, 3.0]);
let v2 = AlgebrustVector::new_rand(3, 0.0, 10.0);
let v3 = AlgebrustVector::new_zeros(3);

// Vector operations
let v4 = v1.addition(&v2);
let v5 = v1.subtraction(&v2);
let dot = v1.dot_product(&v2);
let cross = v1.cross_product(&v2);
let scalar_mult = v1.scalar_multiplication(2.0);
let magnitude = v1.magnitude();
let normalized = v1.normalization();

矩阵

use algebrust::AlgebrustMatrix;

// Creating matrices
let m1 = AlgebrustMatrix::new(&[
    &[1.0, 2.0],
    &[3.0, 4.0]
]);
let m2 = AlgebrustMatrix::new_rand((2, 2), 0.0, 10.0);
let m3 = AlgebrustMatrix::new_zeros((2, 2));
let m4 = AlgebrustMatrix::new_identitiy(2);

// Matrix operations
let m5 = m1.addition(&m2);
let m6 = m1.subtraction(&m2);
let m7 = m1.multiplication(&m2);
let scalar_mult = m1.scalar_multiplication(2.0);
let transpose = m1.transpose();

// LU decomposition and matrix inversion
let (l, u) = m1.lu_decomposition();
let inverse = m1.inverse();
let determinant = m1.determinant();

测试

要运行测试,请使用以下命令

cargo test

贡献

欢迎贡献!请fork仓库并提交pull请求。

许可协议

本项目采用MIT许可协议 - 有关详细信息,请参阅LICENSE.md文件。

依赖项

~315KB