Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

148 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

rustnomial

This crate provides utilities for operating on polynomials, including:

  • Parsing polynomials from strings, and creating strings from polynomials
  • Math operations with polynomials
  • Integration and derivation of polynomials
  • Finding polynomial roots

Examples

  • Parsing polynomials from / to strings:
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);
}
  • Integration
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.));
}
  • Derivation
use rustnomial::derivative;

fn main() {
    let poly = derivative!(5., 2., 0.);
    // 10x + 2
    println!("{}", poly);
}
  • Rootfinding
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());
}

About

Rust library for high-performance polynomial operations

Resources

Stars

Watchers

Forks

Releases

Packages

Used by

Contributors

Languages