[−][src]Crate hyperdual
Dual Numbers
Fully-featured Dual Number implementation with features for automatic differentiation of multivariate vectorial functions into gradients.
Usage
extern crate hyperdual; use hyperdual::{Dual, Hyperdual, Float, differentiate, U3}; fn main() { // find partial derivative at x=4.0 let univariate = differentiate(4.0f64, |x| x.sqrt() + Dual::from_real(1.0)); assert!((univariate - 0.25).abs() < 1e-16, "wrong derivative"); // find the partial derivatives of a multivariate function let x: Hyperdual<f64, U3> = Hyperdual::from_slice(&[4.0, 1.0, 0.0]); let y: Hyperdual<f64, U3> = Hyperdual::from_slice(&[5.0, 0.0, 1.0]); let multivariate = x * x + (x * y).sin() + y.powi(3); assert!((multivariate[0] - 141.91294525072763).abs() < 1e-13, "f(4, 5) incorrect"); assert!((multivariate[1] - 10.04041030906696).abs() < 1e-13, "df/dx(4, 5) incorrect"); assert!((multivariate[2] - 76.63232824725357).abs() < 1e-13, "df/dy(4, 5) incorrect"); }
Previous Work
Modules
linalg |
Structs
DefaultAllocator | An allocator based on |
Dynamic | Dim of dynamically-sized algebraic entities. |
Hyperdual | Dual Number structure |
U0 | A type level dimension. |
U1 | A type level dimension with a value of |
U2 | A type level dimension. |
U3 | A type level dimension. |
U4 | A type level dimension. |
U5 | A type level dimension. |
U6 | A type level dimension. |
U7 | A type level dimension. |
U8 | A type level dimension. |
U9 | A type level dimension. |
U10 | A type level dimension. |
U11 | A type level dimension. |
U12 | A type level dimension. |
U13 | A type level dimension. |
U14 | A type level dimension. |
U15 | A type level dimension. |
U16 | A type level dimension. |
U17 | A type level dimension. |
U18 | A type level dimension. |
U19 | A type level dimension. |
U20 | A type level dimension. |
U21 | A type level dimension. |
U22 | A type level dimension. |
U23 | A type level dimension. |
U24 | A type level dimension. |
U25 | A type level dimension. |
U26 | A type level dimension. |
U27 | A type level dimension. |
U28 | A type level dimension. |
U29 | A type level dimension. |
U30 | A type level dimension. |
U31 | A type level dimension. |
U32 | A type level dimension. |
U33 | A type level dimension. |
U34 | A type level dimension. |
U35 | A type level dimension. |
U36 | A type level dimension. |
U37 | A type level dimension. |
U38 | A type level dimension. |
U39 | A type level dimension. |
U40 | A type level dimension. |
U41 | A type level dimension. |
U42 | A type level dimension. |
U43 | A type level dimension. |
U44 | A type level dimension. |
U45 | A type level dimension. |
U46 | A type level dimension. |
U47 | A type level dimension. |
U48 | A type level dimension. |
U49 | A type level dimension. |
U50 | A type level dimension. |
U51 | A type level dimension. |
U52 | A type level dimension. |
U53 | A type level dimension. |
U54 | A type level dimension. |
U55 | A type level dimension. |
U56 | A type level dimension. |
U57 | A type level dimension. |
U58 | A type level dimension. |
U59 | A type level dimension. |
U60 | A type level dimension. |
U61 | A type level dimension. |
U62 | A type level dimension. |
U63 | A type level dimension. |
U64 | A type level dimension. |
U65 | A type level dimension. |
U66 | A type level dimension. |
U67 | A type level dimension. |
U68 | A type level dimension. |
U69 | A type level dimension. |
U70 | A type level dimension. |
U71 | A type level dimension. |
U72 | A type level dimension. |
U73 | A type level dimension. |
U74 | A type level dimension. |
U75 | A type level dimension. |
U76 | A type level dimension. |
U77 | A type level dimension. |
U78 | A type level dimension. |
U79 | A type level dimension. |
U80 | A type level dimension. |
U81 | A type level dimension. |
U82 | A type level dimension. |
U83 | A type level dimension. |
U84 | A type level dimension. |
U85 | A type level dimension. |
U86 | A type level dimension. |
U87 | A type level dimension. |
U88 | A type level dimension. |
U89 | A type level dimension. |
U90 | A type level dimension. |
U91 | A type level dimension. |
U92 | A type level dimension. |
U93 | A type level dimension. |
U94 | A type level dimension. |
U95 | A type level dimension. |
U96 | A type level dimension. |
U97 | A type level dimension. |
U98 | A type level dimension. |
U99 | A type level dimension. |
U100 | A type level dimension. |
U101 | A type level dimension. |
U102 | A type level dimension. |
U103 | A type level dimension. |
U104 | A type level dimension. |
U105 | A type level dimension. |
U106 | A type level dimension. |
U107 | A type level dimension. |
U108 | A type level dimension. |
U109 | A type level dimension. |
U110 | A type level dimension. |
U111 | A type level dimension. |
U112 | A type level dimension. |
U113 | A type level dimension. |
U114 | A type level dimension. |
U115 | A type level dimension. |
U116 | A type level dimension. |
U117 | A type level dimension. |
U118 | A type level dimension. |
U119 | A type level dimension. |
U120 | A type level dimension. |
U121 | A type level dimension. |
U122 | A type level dimension. |
U123 | A type level dimension. |
U124 | A type level dimension. |
U125 | A type level dimension. |
U126 | A type level dimension. |
U127 | A type level dimension. |
Traits
Allocator | A matrix allocator of a memory buffer that may contain |
Dim | Trait implemented by any type that can be used as a dimension. This includes type-level
integers and |
DimAdd | |
DimDiv | |
DimMax | |
DimMin | |
DimMul | |
DimName | Trait implemented exclusively by type-level integers. |
DimNameAdd | |
DimNameDiv | |
DimNameMax | |
DimNameMin | |
DimNameMul | |
DimNameSub | |
DimSub | |
Float | Generic trait for floating point numbers |
FloatConst | |
IsDynamic | Trait implemented by |
IsNotStaticOne | Trait implemented by |
NamedDim | |
Num | The base trait for numeric types, covering |
One | Defines a multiplicative identity element for |
Zero | Defines an additive identity element for |
Functions
differentiate | Evaluates the function using dual numbers to get the partial derivative at the input point |
extract_jacobian_and_result | |
hyperspace_from_vector | |
vector_from_hyperspace |
Type Definitions
DimDiff | |
DimMaximum | |
DimMinimum | |
DimNameDiff | |
DimNameMaximum | |
DimNameMinimum | |
DimNameProd | |
DimNameQuot | |
DimNameSum | |
DimProd | |
DimQuot | |
DimSum | |
Dual | |
DualN | |
Owned | The owned data storage that can be allocated from |