1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
//! QuantMath is a quant analytics library, which contains useful quant-math
//! functions (see the math module). More importantly, it is a framework for
//! allowing a risk or pricing system to interface to quant code, so that
//! a database of instruments can be priced using prices and market data
//! from Bloomberg or Reuters, and risks, P&L attribution and scenarios can
//! be calculated.
//! 
//! The facade module contains the main entry points into QuantMath.
//! For convenience, these methods and the data members they use are
//! published from the root of QuantMath. All of these methods are also
//! available in the C interface to QuantMath, and will be made available
//! in other language-specific interfaces. However, this does not mean that
//! you are restricted to using only these methods when interfacing with
//! QuantMath. For example, you can use the methods in the data and risk
//! models to directly construct market data objects, and the methods in
//! instruments to directly construct products or indices.

extern crate statrs;
extern crate ndarray;
extern crate nalgebra;
extern crate rand;
extern crate serde;
#[macro_use]
extern crate serde_derive;
extern crate erased_serde;
extern crate serde_tagged;
extern crate serde_json;
#[macro_use]
extern crate lazy_static;
extern crate void;
extern crate libc;

// listed in dependency order, though this is not essential for compilation
pub mod core;
pub mod math;
pub mod dates;
pub mod data;
pub mod instruments;
pub mod risk;
pub mod models;
pub mod pricers;
pub mod solvers;
pub mod facade;

pub use facade::currency_from_json;
pub use facade::instrument_from_json;
pub use facade::fixing_table_from_json;
pub use facade::market_data_from_json;
pub use facade::pricer_factory_from_json;
pub use facade::report_generator_from_json;
pub use facade::write_results;

pub use instruments::assets::RcCurrency;
pub use instruments::RcInstrument;
pub use data::fixings::RcFixingTable;
pub use risk::marketdata::RcMarketData;
pub use pricers::RcPricerFactory;
pub use risk::RcReportGenerator;
pub use risk::BoxReport;
pub use core::qm::Error;
pub use core::dedup::DedupControl;