About finmath lib

Mathematical Finance Library: Algorithms and methodologies related to mathematical finance.

The finmath lib libraries provides implementations of methodologies related to mathematical finance, but applicable to other fields. Examples are

  • General numerical algorithms like
    • Generation of random numbers
    • Optimization (a Levenberg–Marquardt algorithm is provided)
  • Monte-Carlo simulation of multi-dimensional, multi-factor stochastic differential equations (SDEs)
    • LIBOR Market Model
    • Black Scholes type multi-asset model (multi-factor, multi-dimensional geometric Brownian motion)
    • Equity Hybrid LIBOR Market Model
    • Hull-White Short Rate Model (with time dependent parameters)
    • Merton Model (as Monte-Carlo Simulation)
    • Heston Model (as Monte-Carlo Simulation)
  • Estimation of conditional expectations in a Monte-Carlo framework
  • Stochastic Automatic Differentiation (AAD) (requires finmath-lib-automaticdifferentiation-extensions https://github.com/finmath/finmath-lib-automaticdifferentiation-extensions )
  • Monte-Carlo Simulation on GPGPUs (via Cuda) (requires finmath-lib-cuda-extensions https://github.com/finmath/finmath-lib-cuda-extensions )
  • Calibration of market data objects like curves (discount and forward curve) or volatility surfaces
    • Various interpolation methods (linear, cubic spline, harmonic spline, Akima).
    • Various interpolation entities (value, log-value, rate, etc.).
    • Parametric curves like Nelson-Siegel and Nelson-Siegel-Svensson.
  • Simulation of interest rate term structure models (LIBOR market model with local and stochastic volatility)
  • Calibration of the LIBOR market model
  • Valuation of complex derivatives (e.g. Bermudan/multi-callables)
  • Hedge Simulation

The libraries have a focus on Monte-Carlo methods, interest rate products and models and hybrid models.

finmath lib is now on Java 8 (since February 2nd, 2014), but a Java 6 version is provided too.

Note: for convenience the provided Eclipse project is configured for Java 6. The maven pom defaults to Java 6. To build the Java 8 version use the profile “java-8”, i.e. the maven command line option “-P java-8”


finmath lib is distributed through the central maven repository. It’s coordinates are:

For the Java 6 version:


For the Java 8 version:



The code of “finmath lib” and “finmath experiments” (packages net.finmath.*) are distributed under the Apache License version 2.0, unless otherwise explicitly stated.


For documentation please check out