[−][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 |