Julia implementation of HyperDualNumbers
35 Stars
Updated Last
1 Year Ago
Started In
March 2014


Documentation Build Status

Hyper-dual numbers can be used to compute first and second derivatives numerically without the cancellation errors of finite-differencing schemes.

The initial Julia implementation (up to v3.0.1) is directly based on the C++ implementation by Jeffrey Fike and Juan J Alonso, both of Stanford University, department of Aeronautics and Astronautics as described in the paper:

The Development of Hyper-Dual Numbers for Exact Second Derivative Calculations

Up to v3.0.1 the Julia versions have been derived/written by Rob J Goedman (goedman@icloud.com).

HyperDualNumbers.jl v4.0.0 has been completely redone by Benoit Pasquier and follows the structure of the JuliaDiff/DualNumbers package.

For a quick intro, see STEPBYSTEP.md

Latest tagged versions:

  • v1.1.0 (Julia 0.5 & 0.6, Oct 2017)
  • v2.0.0 (Julia v0.7-, Oct 2017)
  • v3.0.1 (Julia v0.7 & Julia v1.0), Aug 2018, Pkg(3))
  • v4.0.0 (Julia v1.0, Nov 2018)
  • v4.0.9 (Julia 1.9-DEV, May 2022)

For details see VERSION.md

The following functions are specific to hyperdual numbers:

  • Hyper,
  • Hyper256,
  • Hyper128,
  • ishyper,y2
  • hyper_show
  • realpart,
  • ε₁part(), replaces eps1,
  • ε₂part(), replaces eps2,
  • ε₁ε₂part(), replaces eps1eps2

In the future it is my intention to deprecate:

  • hyper,
  • hyper256,
  • hyper128,
  • eps1,
  • eps2,
  • eps1eps2


  • STABLEdocumentation of the most recently tagged version.
  • DEVELdocumentation of the in-development version.

Questions and issues

Question and contributions are very welcome, as are feature requests and suggestions. Please open an issue if you encounter any problems or have a question.

Used By Packages