vector

Macro vector 

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