#[macro_export]
macro_rules! matrix {
[] => {{
use $crate::Matrix;
Matrix::<_>::new()
}};
[[$elem:expr; $ncols:expr]; $nrows:expr] => {{
use $crate::Matrix;
match Matrix::<_>::from_value(($nrows, $ncols), $elem) {
Err(error) => ::core::panic!("{error}"),
Ok(matrix) => matrix,
}
}};
[[$($elem:expr),+ $(,)?]; $nrows:expr] => {{
extern crate alloc;
use $crate::Matrix;
use $crate::convert::TryFromRows;
match <Matrix::<_> as TryFromRows<_>>::try_from_rows(alloc::vec![[$($elem),+]; $nrows]) {
Err(error) => ::core::panic!("{error}"),
Ok(matrix) => matrix,
}
}};
[$($row:expr),+ $(,)?] => {{
use $crate::Matrix;
use $crate::convert::TryFromRows;
match <Matrix::<_> as TryFromRows<_>>::try_from_rows([$($row),+]) {
Err(error) => ::core::panic!("{error}"),
Ok(matrix) => matrix,
}
}};
}