macro_rules! vector {
($elem:expr; $n:expr) => { ... };
($($x:expr),+ $(,)?) => { ... };
}Expand description
Returns a crate::Vector with scalar data contents and order as defined in
the numeric type arguments.
This macro supports standard library array-like initialization syntax of
a crate::Vector with the numeric type and length defined by the macro arguments.
Import the macro before use with:
use vectora::vector;§Examples
§Integer types
use vectora::{vector, Vector};
let v_i32_1 = vector![1_i32, 2_i32, 3_i32];
let v_i32_2: Vector<i32, 3> = vector![1, 2, 3];
let v_i32_3: Vector<i32, 3> = vector![10; 3];
assert_eq!(v_i32_1[0], 1_i32);
assert_eq!(v_i32_1[1], 2_i32);
assert_eq!(v_i32_1[2], 3_i32);
assert_eq!(v_i32_2[0], 1_i32);
assert_eq!(v_i32_2[1], 2_i32);
assert_eq!(v_i32_2[2], 3_i32);
assert_eq!(v_i32_3[0], 10_i32);
assert_eq!(v_i32_3[1], 10_i32);
assert_eq!(v_i32_3[2], 10_i32);§Floating point types
use vectora::{vector, Vector};
use approx::assert_relative_eq;
let v_f64_1 = vector![1.0_f64, 2.0_f64, 3.0_f64];
let v_f64_2: Vector<f64, 3> = vector![1.0, 2.0, 3.0];
let v_f64_3: Vector<f64, 3> = vector![10.0; 3];
assert_relative_eq!(v_f64_1[0], 1.0_f64);
assert_relative_eq!(v_f64_1[1], 2.0_f64);
assert_relative_eq!(v_f64_1[2], 3.0_f64);
assert_relative_eq!(v_f64_2[0], 1.0_f64);
assert_relative_eq!(v_f64_2[1], 2.0_f64);
assert_relative_eq!(v_f64_2[2], 3.0_f64);
assert_relative_eq!(v_f64_3[0], 10.0_f64);
assert_relative_eq!(v_f64_3[1], 10.0_f64);
assert_relative_eq!(v_f64_3[2], 10.0_f64);§Complex number types
use vectora::{vector, Vector};
use approx::assert_relative_eq;
use num::Complex;
let v_complex = vector![Complex::new(1.0_f64, 2.0_f64), Complex::new(-1.0_f64, -2.0_f64)];
assert_relative_eq!(v_complex[0].re, 1.0_f64);
assert_relative_eq!(v_complex[0].im, 2.0_f64);
assert_relative_eq!(v_complex[1].re, -1.0_f64);
assert_relative_eq!(v_complex[1].im, -2.0_f64);