Macro poly

Source
macro_rules! poly {
    () => { ... };
    (($re:expr, $im:expr); $n:expr) => { ... };
    ($elem:expr; $n:expr) => { ... };
    ($(($re:expr, $im:expr)),+ $(,)?) => { ... };
    ($($elems:expr),+ $(,)?) => { ... };
}
Expand description

A more convenient way of writing Poly::new(&[Complex::new(...)...])

It takes ownership of its arguments.

It can take a list of Scalar or Complex<Scalar>. If left empty, it is equivalent to Poly::zero().

ยงExamples

Basic syntax

use rust_poly::{poly, Poly};
use num::Zero;
use num::Complex;

let p1: Poly<f32> = poly![];
let p2 = poly![1.0f32, 2.0, 3.0];
let p3 = Poly::from_complex_vec(vec![Complex::new(1.0, 0.0), Complex::new(2.0, 0.0), Complex::new(3.0, 0.0)]);

assert_eq!(p1, Poly::zero());
assert_eq!(p2, p3);

Similarly to vec!, you can initialize a large polynomial where all coefficients are equal like so:

use num::Complex;

let p1 = poly![2.0; 4];
let p2 = poly![(2.0, 0.0); 4];
let p3 = poly![2.0, 2.0, 2.0, 2.0];
assert_eq!(p1, p2);
assert_eq!(p2, p3);