#矩阵 # #数组

已删除 rowcol

简单的固定大小向量/矩阵,在栈上分配

使用旧的 Rust 2015

0.3.3 2016年11月12日
0.3.2 2016年11月9日
0.2.1 2016年11月5日
0.1.1 2016年11月3日

#379 in #栈

MIT/Apache

99KB
2.5K SLoC

rowcol

Build Status crates.io docs.rs

rowcol 包提供固定大小的 VectorMatrix。它们的长度或行/列数作为类型参数指定,使用 typenum 包提供的类型级别数字。


lib.rs:

rowcol 包提供固定大小的 VectorMatrix。它们的长度或行/列数作为类型参数指定,使用 typenum 包提供的类型级别数字。这使得向量矩阵可以内部表示为固定长度的数组,因此它们在栈上分配,如果内容是可复制的,则成为 Copy。此外,像计算非方阵的行列式这样的错误可以在编译时检测到,而不是在运行时引发恐慌。

#[macro_use] extern crate rowcol;
use rowcol::prelude::*;

fn fib(n: usize) -> u64 {
    // inferred as `f: Vector<u64, U2>`
    let f = vector![1, 0];

    // inferred as `a: Matrix<u64, U2, U2>`
    let a = matrix![[1, 1], [1, 0]];

    (a.pow(n) * f)[1]
}

assert_eq!(fib(0), 0);
assert_eq!(fib(10), 55);
assert_eq!(fib(50), 12586269025);

依赖关系

~340–530KB