### 27 releases (14 breaking)

0.15.1 | Sep 1, 2021 |
---|---|

0.14.2 | Nov 23, 2020 |

0.14.0 | Mar 2, 2019 |

0.13.7 | Sep 11, 2018 |

0.7.0 | Jul 16, 2018 |

#**647** in Math

**33** downloads per month

Used in **5** crates
(4 directly)

**MIT**license

27KB

373 lines

[lin-badge]: https://github.com/danielhstahl/fang_oost_rust/workflows/Rust/badge.svg [cov-badge]: https://codecov.io/gh/danielhstahl/fang_oost_rust/branch/master/graph/badge.svg

Linux | Codecov |
---|---|

![lin-badge] | ![cov-badge] |

# Fang-Oosterlee Library for Rust

Implements Fang-Oosterlee algorithm in Rust. While the algorithm originally was used for option pricing, it can be used for a variety of use cases. For example, it can be used to compute the Value at Risk of a distribution, the density of a distribution, and the partial expectation.

It requires a characteristic function computed at various specific intervals. A utility function is provided which converts an analytical characteristic function into a vector.

Documentation is at docs.rs

## Use

Put the following in your Cargo.toml:

`[``dependencies``]`
`fang_oost ``=` `"`0.15`"`

Import and use:

`extern` `crate` num_complex`;`
`extern` `crate` fang_oost`;`
`extern` `crate` rayon`;`
`use` `rayon``::``prelude``::``*``;`
`use` `num_complex``::`Complex`;`
`let` num_x `=` `1024``;`
`let` num_u `=` `256``;`
`let` x_min `=` `-``20.``0``;`
`let` x_max `=` `25.``0``;`
`let` mu`=``2.``0``;`
`let` sigma`:``f64``=``5.``0``;`
`let` `norm_cf` `=` `|``u``:``&``Complex``<``f64``>``|``(`u`*`mu`+``0.``5``*`u`*`u`*`sigma`*`sigma`)``.``exp``(``)``;`
`let` x_domain`=``fang_oost``::`get_x_domain`(`num_x`,` x_min`,` x_max`)``;`
`//`computes discrete gaussian characteristic function
`let` discrete_cf`=``fang_oost``::`get_discrete_cf`(`num_u`,` x_min`,` x_max`,` `&`norm_cf`)``;`
`let` result`=``fang_oost``::`get_expectation_single_element_real`(`
x_min`,` x_max`,` x`,` `&`discrete_cf`,`
`|``u_im``,` `x``,` `k``|``{`
`if` k`==``0``{`x`-`x_min`}` `else` `{` `(``(`x`-`x_min`)``*`u_im`)``.``sin``(``)``/`u_im `}`
`}`
`)``;`

## Related Crates

## Benchmarks

View benchmarks at https://danielhstahl.github.io/fang_oost_rust/report/index.html.

#### Dependencies

~2MB

~35K SLoC