#多项式 #无标准库

无标准库 rustnomial

用于处理多项式的crate

12个不稳定版本 (3个破坏性更新)

0.3.2 2021年6月27日
0.3.1 2021年6月27日
0.2.0 2021年1月16日
0.1.0 2021年1月16日
0.0.7 2020年8月11日

数学类别中排名1049

MIT许可证

205KB
5K SLoC

rustnomial

此crate提供操作多项式的实用工具,包括

  • 从字符串解析多项式,以及从多项式创建字符串
  • 多项式的数学运算
  • 多项式的积分和导数
  • 寻找多项式的根

示例

  • 从/到字符串解析多项式
use std::str::FromStr;

use rustnomial::{GenericPolynomial, Polynomial};

fn main() {
    let poly = Polynomial::<i32>::from_str("1+x^2-3+11x").unwrap();
    // x^2 + 11x - 2
    println!("{}", poly);
}
  • 积分
use rustnomial::integral;

fn main() {
    let poly = integral!(5., 2., 0.);
    // 1.6666666666666667x^3 + x^2 + C
    println!("{}", poly);
    // 2.666666666666667
    println!("{}", poly.eval(0., 1.));
}
  • 导数
use rustnomial::derivative;

fn main() {
    let poly = derivative!(5., 2., 0.);
    // 10x + 2
    println!("{}", poly);
}
  • 求根
use rustnomial::{GenericPolynomial, Polynomial};

fn main() {
    let poly = Polynomial::<f64>::new(vec![1., 2.]).pow(9) * Polynomial::new(vec![1., 3.]);
    // ManyRealRoots([-3.0, -2.0, -2.0, -2.0, -2.0, -2.0, -2.0, -2.0, -2.0, -2.0])
    println!("{:?}", poly.roots());
}

依赖关系

~620KB
~12K SLoC