ha-ndarray 0.3.0

A hardware-accelerated n-dimensional array
Documentation
use ha_ndarray::*;

#[test]
fn test_cond() -> Result<(), Error> {
    let size = 2048;

    let data = (0..size)
        .into_iter()
        .map(|n| if n % 2 == 0 { 1 } else { 0 })
        .collect::<Vec<_>>();

    let cond = ArrayBuf::new(data, shape![size])?;

    let then = ArrayBuf::constant(1., shape![size])?;
    let or_else = ArrayBuf::constant(0., shape![size])?;

    let actual = cond.as_ref::<[u8]>().cond(then, or_else)?;

    let cond: Array<f32, _> = cond.as_ref::<[u8]>().cast()?;
    let eq = actual.eq(cond)?;
    assert!(eq.all()?);

    Ok(())
}