def test_sin(): """Test of sin method.""" # Test for sin with Rnode objects x = Rnode(1.0) z = Elem.sin(x) z.grad_value = 1.0 try: assert z.value == np.sin(x.value) assert x.grad() == np.cos(x.value) except AssertionError as e: print(e) raise AssertionError # Test for sin with two Dual objects val1 = Dual(3, [4, 1]) val2 = Dual(2, [3, 1]) val = val1 + val2 z = Elem.sin(val) try: assert z.val == np.sin(val.val) assert z.der[0] == np.cos(val.val) * val.der[0] assert z.der[1] == np.cos(val.val) * val.der[1] except AssertionError as e: print(e) raise AssertionError # Test for sin with int x = 3 fx = Elem.sin(x) try: assert fx == np.sin(x) except AssertionError as e: print(e) raise AssertionError
import farad as fd import farad.elem as el import farad.driver as ad f = lambda x: el.exp(x) * el.sin(x**2) function = ad.AutoDiff(f) print(function.forward(1))
def f(x): return Elem.sin(x)
def f2d3(x): return Elem.sin(x)
def fi(x): return el.sin(x) - x