Hyper-Dual Numbers

Jeffrey Fike

Aerospace Design Lab

Department of Aeronautics and Astronautics

Stanford University

NOTE: This page is in the process of being updated, so some links fixed, but others still may not work (7/5/14).

Papers and Presentations

Source Code

**Papers and Presentations**

J. A. Fike and J. J. Alonso. The Development of Hyper-Dual Numbers for Exact Second Derivative Calculations. AIAA paper 2011-886, 49th AIAA Aerospace Sciences Meeting, January 4-7, 2011.
paper
bibtex
presentation

J. A. Fike, S. Jongsma, J. J. Alonso, and E. van der Weide. Optimization with Gradient and Hessian Information Calculated Using Hyper-Dual Numbers. AIAA paper 2011-3807, 29th AIAA Applied Aerodynamics Conference, June 27-30, 2011.
paper
bibtex
presentation

J. A. Fike and J. J. Alonso. Automatic Differentiation through the use of Hyper-Dual Numbers for Second Derivatives. 6th International Conference on Automatic Differentiation, July 23-27, 2012.
paper
bibtex
presentation

J. A. Fike. Multi-Objective Optimization Using Hyper-Dual Numbers. Ph.D. Dissertation, Stanford University, 2013.
paper
bibtex
presentation

M. R. Brake, J. A. Fike and S. D. Topping. Using Hyper-Dual Numbers to Construct Parameterized Reduced-Order Models. ASME IMECE Conference, November 14-20, 2014.
presentation

**Source Code**

The software directly linked on this page is released under the MIT open source license:
LICENSE.txt

Hyper-Dual Numbers:

hyperdual.h : Implementation of Hyper-Dual Numbers as a C++ class for calculating numerically exact second derivatives. This is the latest version.

hyperdual2.tgz : Implementation of Hyper-Dual Numbers as a MATLAB class for calculating numerically exact second derivatives. Note: This implementation is not as complete as the C++ version.

compare2cuda.cu : CUDA implementation and sample code. The implementation will eventually be separated from the sample code.

hyperdual_vector.h : Vectorized version of the Hyper-Dual Number implementation so that the gradient and Hessian are computed at one time with no redundant calculations.

Dual Numbers:

dualnumber.h : Implementation of Dual Numbers as a C++ class for calculating numerically exact first derivatives. Note: Not as complete as the Hyper-Dual implementation.

dualnumber.tgz : Implementation of Dual Numbers as a MATLAB class for calculating numerically exact first derivatives.

Fortran : Implementation of Dual Numbers in Fortran by Edwin van der Weide.

Complex Hyper-Dual Numbers:

hyperdualcplx.h : A partial implementation of Hyper-Dual Numbers as a C++ class using complex numbers instead of real numbers, for calculating numerically exact first and second derivatives of complex valued functions.

complexHD.cpp : C++ code for testing hyperdualcplx.h.

Third Derivatives:

hyperdual3.tgz : Implementation of Hyper-Dual Numbers as a MATLAB class for calculating numerically exact third derivatives.

Recursive Formulation of Dual Numbers for arbitrary derivatives:

dualnumberR.h : C++ implementation (Not Available Yet)

dualnumberR.tgz : MATLAB implementation (Not Available Yet)