File size: 560 Bytes
63f41a6 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 | pub fn tensor_len_ok(dims: &[usize], bits_per_item: usize, data_size_bytes: usize) -> bool {
let mut len = 1usize;
let mut overflow = false;
let mut i = 0usize;
while i < dims.len() {
let d = dims[i];
if d != 0 && len > usize::MAX / d {
overflow = true;
} else {
len = len * d;
}
i += 1;
}
if overflow {
return false;
}
let per = bits_per_item / 8;
if per != 0 && len > usize::MAX / per {
return false;
}
len * per == data_size_bytes
}
|