fn tanh()

in gad/src/analytic.rs [381:398]


            fn tanh(&mut self, v: &Value<D>) -> Value<D> {
                let result = self.eval().tanh(v.data());
                self.make_node(result, vec![v.input()], {
                    let v = v.clone();
                    move |graph, store, gradient| {
                        if let Some(id) = v.id() {
                            let v = graph.link(&v);
                            let t = graph.tanh(&v);
                            let c = graph.mul(&t, &t)?;
                            let c = graph.neg(&c);
                            let k = graph.addc(&c, 1);
                            let grad = graph.mul(&gradient, &k)?;
                            store.add_gradient(graph, id, &grad)?;
                        }
                        Ok(())
                    }
                })
            }