num_dual.Dual2_64

class num_dual.Dual2_64(eps, v1, v2)

Second order dual number using 64-bit-floats as fields.

A second order dual number consists of f_0 + f_1 ε_1 + f_2 ε_1^2 where f_0 is the function value, f_1 the first derivative and f_2 the second derivative.

Examples

>>> from num_dual import Dual2_64 as D264
>>> x = D264(1.0, 0.0, 0.0)
>>> y = D264.from_re(2.0)
>>> x + y
3 + [0]ε1 + [0]ε1²

First and second derivative of a function.

>>> from num_dual import second_derivative
>>> import numpy as np
>>> f, df, d2f = second_derivative(lambda x: x * x + np.sqrt(x), 4.0)
>>> f
18.0
>>> df
8.25
>>> d2f
1.96875
__init__()

Methods

__init__()

arccos()

Computes the arccosine of a (hyper) dual number.

arccosh()

Computes the inverse hyperbolic cosine of a (hyper) dual number.

arcsin()

Computes the arcsine of a (hyper) dual number.

arcsinh()

Computes the inverse hyperbolic sine of a (hyper) dual number.

arctan()

Computes the arctangent of a (hyper) dual number.

arctanh()

Computes the inverse hyperbolic tangent of a (hyper) dual number.

cbrt()

Cubic root.

cos()

Hyperbolic cosine function.

cosh()

Computes the hyperbolic cosine of a (hyper) dual number.

exp()

Calculate the exponential of (hyper) dual number.

exp2()

Calculate 2**x of (hyper) dual number x.

expm1()

Calculate exp(x) - 1.

from_re(re)

(Hyper) dual number from real part, setting all other parts to zero.

log()

Calculate natural logarithm.

log10()

Calculate logarithm with base 10.

log1p()

Returns ln(1+n) (natural logarithm) more accurately than if the operations were performed separately.

log2()

Calculate logarithm with base 2.

log_base(base)

Calculate logarithm with given base.

mul_add(a, b)

Fused multiply-add.

powd(n)

Power using self (hyper) dual number as exponent.

powf(n)

Power using 64-bin float as exponent.

powi(n)

Power using 32-bit integer as exponent.

recip()

Reciprocal value of self.

sin()

Hyperbolic sine function.

sin_cos()

Simultaneously computes the sine and cosine of the (hyper) dual number, x.

sinh()

Computes the hyperbolic sine of a (hyper) dual number.

sph_j0()

Computes the first spherical bessel function.

sph_j1()

Computes the second spherical bessel function.

sph_j2()

Computes the third spherical bessel function.

sqrt()

Sqaure root.

tan()

Computes the tangent of a (hyper) dual number (in radians).

tanh()

Computes the hyperbolic tangent of a (hyper) dual number.

Attributes

first_derivative

second_derivative

value

Real part.