use impl_prelude::*;
use rand::{Rng};
#[repr(u8)]
#[derive(PartialEq, Eq, Clone, Copy)]
pub enum Packing {
Full = b'N',
UpperOnly = b'U',
LowerOnly = b'L'
}
#[derive(PartialEq, Eq, Debug, Clone, Copy)]
pub enum GenerateError {
NotSquare,
NotEnoughValues,
UnequalBands,
InvalidPacking,
InvalidRank,
IllegalParameter(i32),
}
pub fn new_seed<Rand: Rng>(rng: &mut Rand) -> [i32; 4] {
[rng.gen::<u16>() as i32 % 4096, rng.gen::<u16>() as i32 % 4096,
rng.gen::<u16>() as i32 % 4096, (rng.gen::<u16>() as i32 * 2 + 1) % 4096]
}
pub fn new_workspace<T: LinxalImplScalar>(m: usize, n: usize) -> Array<T, Ix1> {
Array::default(cmp::max(m, n) * 3)
}