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);