# finmath-lib
**Repository Path**: email4reg/finmath-lib
## Basic Information
- **Project Name**: finmath-lib
- **Description**: Mathematical Finance Library: Algorithms and methodologies related to mathematical finance.
- **Primary Language**: Unknown
- **License**: Apache-2.0
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 0
- **Created**: 2020-02-10
- **Last Updated**: 2020-12-18
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
About finmath lib
==========
****************************************
**Mathematical Finance Library: Algorithms and methodologies related to mathematical finance.**
****************************************
[](https://twitter.com/intent/tweet?text=Wow:&url=https%3A%2F%2Fgithub.com%2Ffinmath%2Ffinmath-lib)
[](https://github.com/finmath/finmath-lib/blob/master/LICENSE.txt)
[](https://github.com/finmath/finmath-lib/releases/latest)
[](https://maven-badges.herokuapp.com/maven-central/net.finmath/finmath-lib)
[](https://travis-ci.org/finmath/finmath-lib)
**Project home page: http://finmath.net/finmath-lib**
The finmath lib libraries provides (JVM) 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)
- Valuation using **Fourier transforms** / **characteristic functions**
- Black-Scholes model
- Heston model
- Bates model
- Two factor Bates model
- **Finite difference methods**
- Numerical schemes using finite differences
- Theta-scheme
- Models
- Black-Scholes model
- Products
- European option
- **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)
- **American Monte-Carlo**: Estimation of conditional expectations in a Monte-Carlo framework
- **Stochastic Automatic Differentiation** (AAD) (part of the package `net.finmath.montecarlo.automaticdifferentiation`)
- **Monte-Carlo Simulation on GPGPUs** (via Cuda) (requires finmath-lib-cuda-extensions https://github.com/finmath/finmath-lib-cuda-extensions )
- Dependency injection on numerical algorithms (Monte-Carlo simulations) with custom return type priorities (see http://ssrn.com/abstract=3246127 ).
- **Calibration** of market data objects like curves (discount and forward curve) or volatility surfaces
- Rate Curves:
- **Multi-curve interest rate curve calibration** (OIS discounting, basis-swaps, cross-currency-swaps).
- **Bond curve calibration** using local linear regression (see https://ssrn.com/abstract=3073942 ).
- 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.
- Volatility Curves and Cubes:
- **SABR smile** parameterization.
- Swaption volatility cubes with SABR parameterization.
- **CMS replication** with various annuity mappings.
- 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
- Bermudan options / multi-callables lower bound via regression estimation of the conditional expectation
- Bermudan options / multi-callables upper bound via dual method
- Hedge Simulation
- Margin Valuation Adjustments (MVA) though forward ISDA SIMM simulation (this is currently a separate project at https://github.com/finmath ).
Languages and Build
--------------------------------------
The library is available for Java 8 and Java 6. We are starting to provide examples in Kotlin.
The Maven build file is provide. Import the project as Maven project.
The default Maven profile is Java 8 without Kotlin. To enable Java 6 version select the Maven profile 'java-6'. To enable Kotlin select the Maven profile 'kotlin'.
Releases
--------------------------------------
Binary releases can be found at http://finmath.net/finmath-lib .
The version numbering of finmath-lib follows a the *[semantic versioning](https://semver.org)*
(at least we try to).
Distribution
--------------------------------------
finmath lib is distributed through the central maven repository. It's coordinates are:
For the Java 8 version: