autograd 1.1.1

Tensors and differentiable operations in Rust
Documentation
use crate::Float;

macro_rules! impl_op {
    ($name:ident) => {
        pub struct $name;
        impl<T: Float> crate::op::Op<T> for $name {
            fn compute(&self, _: &mut crate::op::ComputeContext<T>) {
                unreachable!()
            }

            fn grad(&self, _: &mut crate::op::GradientContext<T>) {
                unreachable!()
            }
        }
    };
}

impl_op!(Variable);
impl_op!(Const);
impl_op!(Placeholder);