tract-transformers 0.23.7

Tiny, no-nonsense, self contained, TensorFlow and ONNX inference
Documentation
//! Shared test-data generator for the gated-delta-net / causal-conv1d-update
//! op tests.

#![cfg(test)]

use tract_nnef::internal::*;

/// Simple deterministic pseudo-random floats in `[-1, 1]`.
pub(super) fn arb(shape: &[usize], seed: u64) -> Tensor {
    let len: usize = shape.iter().product();
    let mut x = seed.wrapping_mul(6364136223846793005).wrapping_add(1442695040888963407);
    let data: Vec<f32> = (0..len)
        .map(|_| {
            x = x.wrapping_mul(6364136223846793005).wrapping_add(1442695040888963407);
            ((x >> 33) as f32 / (1u64 << 31) as f32) - 1.0
        })
        .collect();
    Tensor::from_shape(shape, &data).unwrap()
}