def test_fixed_derivatives_math_funcs(): """ Comparison between function derivatives and numerical derivatives. This comparison is useful for derivatives that are analytical. """ for name in umath.__all__: if name in ('factorial', 'fsum', 'frexp'): continue # print "Checking %s..." % name func = getattr(umath, name) # Numerical derivatives of func: the nominal value of func() results # is used as the underlying function: numerical_derivatives = uncertainties.NumericalDerivatives( lambda *args: func(*args)) test_uncertainties.compare_derivatives(func, numerical_derivatives) # Functions that are not in umath.many_scalars_to_scalar_funcs: ## # modf(): returns a tuple: def frac_part_modf(x): return umath.modf(x)[0] def int_part_modf(x): return umath.modf(x)[1] test_uncertainties.compare_derivatives( frac_part_modf, uncertainties.NumericalDerivatives( lambda x: frac_part_modf(x))) test_uncertainties.compare_derivatives( int_part_modf, uncertainties.NumericalDerivatives( lambda x: int_part_modf(x))) ## # frexp(): returns a tuple: def mantissa_frexp(x): return umath.frexp(x)[0] def exponent_frexp(x): return umath.frexp(x)[1] test_uncertainties.compare_derivatives( mantissa_frexp, uncertainties.NumericalDerivatives( lambda x: mantissa_frexp(x))) test_uncertainties.compare_derivatives( exponent_frexp, uncertainties.NumericalDerivatives( lambda x: exponent_frexp(x)))
def test_fixed_derivatives_math_funcs(): """ Comparison between function derivatives and numerical derivatives. This comparison is useful for derivatives that are analytical. """ for name in umath_core.many_scalars_to_scalar_funcs: # print "Checking %s..." % name func = getattr(umath_core, name) # Numerical derivatives of func: the nominal value of func() results # is used as the underlying function: numerical_derivatives = uncert_core.NumericalDerivatives( lambda *args: func(*args)) test_uncertainties.compare_derivatives(func, numerical_derivatives) # Functions that are not in umath_core.many_scalars_to_scalar_funcs: ## # modf(): returns a tuple: def frac_part_modf(x): return umath_core.modf(x)[0] def int_part_modf(x): return umath_core.modf(x)[1] test_uncertainties.compare_derivatives( frac_part_modf, uncert_core.NumericalDerivatives(lambda x: frac_part_modf(x))) test_uncertainties.compare_derivatives( int_part_modf, uncert_core.NumericalDerivatives(lambda x: int_part_modf(x))) ## # frexp(): returns a tuple: def mantissa_frexp(x): return umath_core.frexp(x)[0] def exponent_frexp(x): return umath_core.frexp(x)[1] test_uncertainties.compare_derivatives( mantissa_frexp, uncert_core.NumericalDerivatives(lambda x: mantissa_frexp(x))) test_uncertainties.compare_derivatives( exponent_frexp, uncert_core.NumericalDerivatives(lambda x: exponent_frexp(x)))