use candela::Tensor;
fn main() {
let t = Tensor::from_slice(&[-2.0_f64, -0.5, 0.0, 1.5, 3.0], &[5]);
let relu = t.relu().materialize();
assert_eq!(relu.data(), &[0.0, 0.0, 0.0, 1.5, 3.0]);
println!("relu: {:?}", relu.data());
let t = Tensor::from_slice(&[-3.0_f64, 0.0, 3.0], &[3]);
let tanh = t.tanh().materialize();
assert_eq!(tanh.data()[1], 0.0);
assert!(tanh.data().iter().all(|&x| x > -1.0 && x < 1.0));
println!("tanh: {:?}", tanh.data());
let t = Tensor::from_slice(&[0.0_f64, 0.25, 0.5, 1.0], &[4]);
let fused = ((t * 2.0 - 1.0).relu()).materialize();
assert_eq!(fused.data(), &[0.0, 0.0, 0.0, 1.0]);
println!("fused: {:?}", fused.data());
}