1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24
#[macro_export] macro_rules! debug_tensor { ($w:ident, $t:ident; $d:literal $(,$ds:literal)+; $($is:ident),*) => { for i in 0..$d { debug_tensor!($w, $t; $($ds),*; $($is,)* i); writeln!($w)?; } }; ($w:ident, $t:ident; $d:literal; $($is:ident),+) => { for i in 0..$d { write!($w, "{:?}\t", $t[($($is,)* i)])?; } }; ($w:ident, $t:ident; $d:literal; ($i:ident)) => { for i in 0..$d { write!($w, "{:?}\t", $t[($i, i)])?; } }; ($w:ident, $t:ident; $d:literal;) => { for i in 0..$d { write!($w, "{:?}\t", $t[i])?; } }; }