#![warn(clippy::all, clippy::pedantic)]
#[macro_export]
macro_rules! matrix {
($M:expr, $N:expr, $data:expr) => {
$crate::mat::Matrix::<_, $M, $N, { $M * $N }>::new($data).unwrap()
};
($rows:tt) => {{
const M: usize = { $rows.len() };
if M == 0 {
panic!("no data provided");
}
const N: usize = { $rows[0].len() };
const LEN: usize = { M * N };
$crate::mat::Matrix::<_, M, N, LEN>::from_rows($rows).unwrap()
}};
}
#[macro_export]
macro_rules! identity {
($T:ty, $M:expr) => {{
use $crate::identities::Identity;
$crate::mat::Matrix::<$T, $M, $M, { $M * $M }>::identity()
}};
}
#[macro_export]
macro_rules! vector {
($M:expr, $data:expr) => {
$crate::mat::Matrix::<_, $M, 1, $M>::new($data).unwrap()
};
}
#[macro_export]
macro_rules! empty {
($M:expr, $N:expr, $T:ty) => {
$crate::mat::Matrix::<$T, $M, $N, { $M * $N }>::empty()
};
}