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 中使用

LGPL-3.0

2KB

RustAlgebloat

Build Status

你喜欢模板膨胀吗?你认为等待程序编译很酷吗?你认为复杂的错误信息是最好吃的面包吗?如果是这样,这个线性代数库就是为你准备的!

文档

请参阅 此处

示例

一些基本操作和行访问(除初始矩阵创建外不进行分配!)

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

无运行时依赖