13 个版本
使用旧的 Rust 2015
0.0.13 | 2017 年 6 月 3 日 |
---|---|
0.0.12 | 2016 年 12 月 28 日 |
0.0.11 | 2015 年 11 月 21 日 |
0.0.8 | 2015 年 4 月 17 日 |
0.0.0 | 2014 年 12 月 16 日 |
#1356 in Rust 模式
34 个月下载量
在 algebloat 中使用
2KB
RustAlgebloat
你喜欢模板膨胀吗?你认为等待程序编译很酷吗?你认为复杂的错误信息是最好吃的面包吗?如果是这样,这个线性代数库就是为你准备的!
包
- algebloat - 主要库。
- algebloat_macros - 有用的宏。
文档
请参阅 此处。
示例
一些基本操作和行访问(除初始矩阵创建外不进行分配!)
let m = &mat![1.0, 2.0, 3.0;
4.0, 5.0, 6.0;
7.0, 8.0, 9.0];
println!("m =\n{}", m);
let t1 = m.t();
println!("t1 =\n{}", t1);
let r = m.row(0) + t1.row(0);
println!("r =\n{}", r);
let m2 = stack![m.view( ..2, ..2), m.view( ..2, 1..);
m.view(1.., ..2), m.view(1.., 1..)];
println!("m2 =\n{}", m2);
输出
m =
⎡1 2 3⎤
⎢4 5 6⎥
⎣7 8 9⎦
t1 =
⎡1 4 7⎤
⎢2 5 8⎥
⎣3 6 9⎦
r =
[2 6 10]
m2 =
⎡1 2 2 3⎤
⎢4 5 5 6⎥
⎢4 5 5 6⎥
⎣7 8 8 9⎦
功能
- 进行中! 这还很不完整...请稍等!
- 表达式模板(好吧,更像是表达式特质,因为这是 Rust)在原则上提供了无分配速度(仅在有优化时可用)!
- 矩阵
- 逐元素操作(右侧可以是标量)
- 二元运算符(
*/-+
) - 一元否定
- 二元函数
幂
atan2
hypot
- 一元函数
- 三角/指数函数
ceil
floor
ln
log10
sqrt
- 缩减
min
max
- 二元运算符(
- 行和列访问
- 视图
- 乘法
- 重塑
- 堆叠
- 扁平视图(将矩阵视为向量)
- 元素访问
- 切片
- 逐元素操作(右侧可以是标量)
构建
通过 Cargo
./cargo_util.py --build