#多项式 #算术 #向量 #系数 #执行 #评估

多项式

执行多项式算术和评估的工具

7 个版本

0.2.4 2020年10月7日
0.2.3 2020年7月30日
0.1.1 2020年7月19日

#1240 in 数学

Download history 25/week @ 2024-03-11 34/week @ 2024-03-18 32/week @ 2024-03-25 56/week @ 2024-04-01 23/week @ 2024-04-08 46/week @ 2024-04-15 37/week @ 2024-04-22 31/week @ 2024-04-29 24/week @ 2024-05-06 32/week @ 2024-05-13 37/week @ 2024-05-20 41/week @ 2024-05-27 22/week @ 2024-06-03 28/week @ 2024-06-10 18/week @ 2024-06-17 30/week @ 2024-06-24

105 每月下载量
用于 8 个包 (4 直接)

自定义许可

17KB
384

多项式

多项式算术的最小实现,不依赖于标准库。(即可以与 no_std 一起构建)

文档

详细文档可在此处找到:此处

用法

Polynomial 是一个系数向量。要创建一个新的多项式

let mut p = Polynomial::new();

您可以向这个多项式添加系数,就像向向量中添加元素一样

// 3x^2 + 2x + 1
p.push(1);
p.push(2);
p.push(3);

或者,您可以使用 poly! 宏创建一个向量,类似于向量

let p = poly![1, 2, 3];

您可以将多项式乘以或除以一个常数

let new = p * 2;
assert_eq!(new, poly![2, 4, 6]);
assert_eq!(new / 2, poly![1, 2, 3]);

您可以乘以另一个多项式

// (x + 1)(x - 1) = x^2 - 1
let a = poly![1, 1]; // x + 1
let b = poly![1, -1]; // x - 1
assert_eq!(a * b, poly![-1, 0, 1]);

当然,您可以在某个值上评估多项式

let p = poly![1, 1]; // x + 1
assert_eq!(p.eval(7).unwrap(), 8); // 1*7 + 1

依赖项

~0.4–1MB
~22K SLoC