From 8c12909091869a906576f323e62f009c231d93b6 Mon Sep 17 00:00:00 2001 From: avhz Date: Tue, 29 Oct 2024 23:35:36 +0100 Subject: [PATCH] chore: some small lints --- crates/RustQuant_autodiff/src/variable.rs | 2 +- .../src/options/black_scholes_merton.rs | 2 +- .../src/options/finite_difference_pricer.rs | 6 +- .../src/options/option_models.rs | 86 +++++++++---------- .../src/distributions/chi_squared.rs | 2 +- crates/RustQuant_math/src/sequences.rs | 2 +- .../src/brownian_motion.rs | 2 +- .../src/cox_ingersoll_ross.rs | 2 +- .../src/extended_vasicek.rs | 2 +- .../src/fractional_brownian_motion.rs | 5 +- examples/examples/curves_discount.rs | 5 +- 11 files changed, 58 insertions(+), 58 deletions(-) diff --git a/crates/RustQuant_autodiff/src/variable.rs b/crates/RustQuant_autodiff/src/variable.rs index 9afdc92d..57721745 100644 --- a/crates/RustQuant_autodiff/src/variable.rs +++ b/crates/RustQuant_autodiff/src/variable.rs @@ -189,7 +189,7 @@ impl<'v> Ord for Variable<'v> { mod tests_variable { use super::*; - use RustQuant_utils::{assert_approx_equal, RUSTQUANT_EPSILON as EPS}; + use RustQuant_utils::assert_approx_equal; #[test] fn test_value() { diff --git a/crates/RustQuant_instruments/src/options/black_scholes_merton.rs b/crates/RustQuant_instruments/src/options/black_scholes_merton.rs index 9f0784dd..a5bea81e 100644 --- a/crates/RustQuant_instruments/src/options/black_scholes_merton.rs +++ b/crates/RustQuant_instruments/src/options/black_scholes_merton.rs @@ -445,7 +445,7 @@ impl BlackScholesMerton { mod tests_black_scholes_merton { use super::*; use time::Duration; - use RustQuant_utils::{assert_approx_equal, RUSTQUANT_EPSILON}; + use RustQuant_utils::assert_approx_equal; #[test] fn black_scholes_1973() { diff --git a/crates/RustQuant_instruments/src/options/finite_difference_pricer.rs b/crates/RustQuant_instruments/src/options/finite_difference_pricer.rs index 30b4a806..dbe7eb22 100644 --- a/crates/RustQuant_instruments/src/options/finite_difference_pricer.rs +++ b/crates/RustQuant_instruments/src/options/finite_difference_pricer.rs @@ -378,7 +378,7 @@ impl FiniteDifferencePricer { mod tests_finite_difference_pricer_at_the_money { use super::*; use time::macros::date; - use RustQuant_utils::{assert_approx_equal, RUSTQUANT_EPSILON}; + use RustQuant_utils::assert_approx_equal; const EPS: f64 = 1e-4; const EUROPEAN_CALL: FiniteDifferencePricer = FiniteDifferencePricer { @@ -517,7 +517,7 @@ mod tests_finite_difference_pricer_at_the_money { mod tests_finite_difference_pricer_in_the_money { use super::*; use time::macros::date; - use RustQuant_utils::{assert_approx_equal, RUSTQUANT_EPSILON}; + use RustQuant_utils::assert_approx_equal; const EPS: f64 = 1e-5; const EUROPEAN_CALL: FiniteDifferencePricer = FiniteDifferencePricer { @@ -656,7 +656,7 @@ mod tests_finite_difference_pricer_in_the_money { mod tests_finite_difference_pricer_out_of_the_money { use super::*; use time::macros::date; - use RustQuant_utils::{assert_approx_equal, RUSTQUANT_EPSILON}; + use RustQuant_utils::assert_approx_equal; const EPS: f64 = 1e-5; const EUROPEAN_CALL: FiniteDifferencePricer = FiniteDifferencePricer { diff --git a/crates/RustQuant_instruments/src/options/option_models.rs b/crates/RustQuant_instruments/src/options/option_models.rs index dc6e041f..6ad1f55f 100644 --- a/crates/RustQuant_instruments/src/options/option_models.rs +++ b/crates/RustQuant_instruments/src/options/option_models.rs @@ -266,48 +266,48 @@ mod bsm { use RustQuant_math::{Distribution, N}; #[inline] - pub(crate) fn d1(s: f64, k: f64, t: f64, r: f64, b: f64, v: f64) -> f64 { + pub(crate) fn d1(s: f64, k: f64, t: f64, b: f64, v: f64) -> f64 { ((s / k).ln() + (b + 0.5 * v.powi(2)) * t) / (v * t.sqrt()) } #[inline] - pub(crate) fn d2(s: f64, k: f64, t: f64, r: f64, b: f64, v: f64) -> f64 { - d1(s, k, t, r, b, v) - v * t.sqrt() + pub(crate) fn d2(s: f64, k: f64, t: f64, b: f64, v: f64) -> f64 { + d1(s, k, t, b, v) - v * t.sqrt() } #[inline] pub(crate) fn call_price(s: f64, k: f64, t: f64, r: f64, b: f64, v: f64) -> f64 { - let d1 = d1(s, k, t, r, b, v); - let d2 = d2(s, k, t, r, b, v); + let d1 = d1(s, k, t, b, v); + let d2 = d2(s, k, t, b, v); s * ((b - r) * t).exp() * N.cdf(d1) - k * (-r * t).exp() * N.cdf(d2) } #[inline] pub(crate) fn put_price(s: f64, k: f64, t: f64, r: f64, b: f64, v: f64) -> f64 { - let d1 = d1(s, k, t, r, b, v); - let d2 = d2(s, k, t, r, b, v); + let d1 = d1(s, k, t, b, v); + let d2 = d2(s, k, t, b, v); -s * ((b - r) * t).exp() * N.cdf(-d1) + k * (-r * t).exp() * N.cdf(-d2) } #[inline] pub(crate) fn call_delta(s: f64, k: f64, t: f64, r: f64, b: f64, v: f64) -> f64 { - let d1 = d1(s, k, t, r, b, v); + let d1 = d1(s, k, t, b, v); ((b - r) * t).exp() * N.cdf(d1) } #[inline] pub(crate) fn put_delta(s: f64, k: f64, t: f64, r: f64, b: f64, v: f64) -> f64 { - let d1 = d1(s, k, t, r, b, v); + let d1 = d1(s, k, t, b, v); ((b - r) * t).exp() * (N.cdf(d1) - 1.0) } #[inline] pub(crate) fn call_gamma(s: f64, k: f64, t: f64, r: f64, b: f64, v: f64) -> f64 { - let d1 = d1(s, k, t, r, b, v); + let d1 = d1(s, k, t, b, v); ((b - r) * t).exp() * N.pdf(d1) / (s * v * t.sqrt()) } @@ -319,8 +319,8 @@ mod bsm { #[inline] pub(crate) fn call_theta(s: f64, k: f64, t: f64, r: f64, b: f64, v: f64) -> f64 { - let d1 = d1(s, k, t, r, b, v); - let d2 = d2(s, k, t, r, b, v); + let d1 = d1(s, k, t, b, v); + let d2 = d2(s, k, t, b, v); -s * ((b - r) * t).exp() * N.pdf(d1) * v / (2.0 * t.sqrt()) - (b - r) * s * ((b - r) * t).exp() * N.cdf(d1) @@ -329,8 +329,8 @@ mod bsm { #[inline] pub(crate) fn put_theta(s: f64, k: f64, t: f64, r: f64, b: f64, v: f64) -> f64 { - let d1 = d1(s, k, t, r, b, v); - let d2 = d2(s, k, t, r, b, v); + let d1 = d1(s, k, t, b, v); + let d2 = d2(s, k, t, b, v); -s * ((b - r) * t).exp() * N.pdf(d1) * v / (2.0 * t.sqrt()) + (b - r) * s * ((b - r) * t).exp() * N.cdf(-d1) @@ -339,7 +339,7 @@ mod bsm { #[inline] pub(crate) fn call_vega(s: f64, k: f64, t: f64, r: f64, b: f64, v: f64) -> f64 { - let d1 = d1(s, k, t, r, b, v); + let d1 = d1(s, k, t, b, v); s * ((b - r) * t).exp() * N.pdf(d1) * t.sqrt() } @@ -351,22 +351,22 @@ mod bsm { #[inline] pub(crate) fn call_rho(s: f64, k: f64, t: f64, r: f64, b: f64, v: f64) -> f64 { - let d2 = d2(s, k, t, r, b, v); + let d2 = d2(s, k, t, b, v); k * t * (-r * t).exp() * N.cdf(d2) } #[inline] pub(crate) fn put_rho(s: f64, k: f64, t: f64, r: f64, b: f64, v: f64) -> f64 { - let d2 = d2(s, k, t, r, b, v); + let d2 = d2(s, k, t, b, v); -k * t * (-r * t).exp() * N.cdf(-d2) } #[inline] pub(crate) fn call_vanna(s: f64, k: f64, t: f64, r: f64, b: f64, v: f64) -> f64 { - let d1 = d1(s, k, t, r, b, v); - let d2 = d2(s, k, t, r, b, v); + let d1 = d1(s, k, t, b, v); + let d2 = d2(s, k, t, b, v); -((b - r) * t).exp() * N.pdf(d1) * d2 / v } @@ -378,8 +378,8 @@ mod bsm { #[inline] pub(crate) fn call_charm(s: f64, k: f64, t: f64, r: f64, b: f64, v: f64) -> f64 { - let d1 = d1(s, k, t, r, b, v); - let d2 = d2(s, k, t, r, b, v); + let d1 = d1(s, k, t, b, v); + let d2 = d2(s, k, t, b, v); ((b - r) * t).exp() * (N.pdf(d1) * ((b / (v * t.sqrt())) - (d2 / (2.0 * t))) + (b - r) * N.cdf(d1)) @@ -387,8 +387,8 @@ mod bsm { #[inline] pub(crate) fn put_charm(s: f64, k: f64, t: f64, r: f64, b: f64, v: f64) -> f64 { - let d1 = d1(s, k, t, r, b, v); - let d2 = d2(s, k, t, r, b, v); + let d1 = d1(s, k, t, b, v); + let d2 = d2(s, k, t, b, v); ((b - r) * t).exp() * (N.pdf(d1) * ((b / (v * t.sqrt())) - (d2 / (2.0 * t))) - (b - r) * N.cdf(-d1)) @@ -406,38 +406,38 @@ mod bsm { #[inline] pub(crate) fn call_zomma(s: f64, k: f64, t: f64, r: f64, b: f64, v: f64) -> f64 { - let d1 = d1(s, k, t, r, b, v); - let d2 = d2(s, k, t, r, b, v); + let d1 = d1(s, k, t, b, v); + let d2 = d2(s, k, t, b, v); call_gamma(s, k, t, r, b, v) * ((d1 * d2 - 1.0) / v) } #[inline] pub(crate) fn put_zomma(s: f64, k: f64, t: f64, r: f64, b: f64, v: f64) -> f64 { - let d1 = d1(s, k, t, r, b, v); - let d2 = d2(s, k, t, r, b, v); + let d1 = d1(s, k, t, b, v); + let d2 = d2(s, k, t, b, v); put_gamma(s, k, t, r, b, v) * ((d1 * d2 - 1.0) / v) } #[inline] pub(crate) fn call_speed(s: f64, k: f64, t: f64, r: f64, b: f64, v: f64) -> f64 { - let d1 = d1(s, k, t, r, b, v); + let d1 = d1(s, k, t, b, v); -call_gamma(s, k, t, r, b, v) * (1.0 + d1 / (v * t.sqrt())) / s } #[inline] pub(crate) fn put_speed(s: f64, k: f64, t: f64, r: f64, b: f64, v: f64) -> f64 { - let d1 = d1(s, k, t, r, b, v); + let d1 = d1(s, k, t, b, v); -put_gamma(s, k, t, r, b, v) * (1.0 + d1 / (v * t.sqrt())) / s } #[inline] pub(crate) fn call_color(s: f64, k: f64, t: f64, r: f64, b: f64, v: f64) -> f64 { - let d1 = d1(s, k, t, r, b, v); - let d2 = d2(s, k, t, r, b, v); + let d1 = d1(s, k, t, b, v); + let d2 = d2(s, k, t, b, v); call_gamma(s, k, t, r, b, v) * (r - b + b * d1 / (v * t.sqrt()) + (1.0 - d1 * d2) / (2.0 * t)) @@ -445,8 +445,8 @@ mod bsm { #[inline] pub(crate) fn put_color(s: f64, k: f64, t: f64, r: f64, b: f64, v: f64) -> f64 { - let d1 = d1(s, k, t, r, b, v); - let d2 = d2(s, k, t, r, b, v); + let d1 = d1(s, k, t, b, v); + let d2 = d2(s, k, t, b, v); put_gamma(s, k, t, r, b, v) * (r - b + b * d1 / (v * t.sqrt()) + (1.0 - d1 * d2) / (2.0 * t)) @@ -454,32 +454,32 @@ mod bsm { #[inline] pub(crate) fn call_vomma(s: f64, k: f64, t: f64, r: f64, b: f64, v: f64) -> f64 { - let d1 = d1(s, k, t, r, b, v); - let d2 = d2(s, k, t, r, b, v); + let d1 = d1(s, k, t, b, v); + let d2 = d2(s, k, t, b, v); call_vega(s, k, t, r, b, v) * d1 * d2 / v } #[inline] pub(crate) fn put_vomma(s: f64, k: f64, t: f64, r: f64, b: f64, v: f64) -> f64 { - let d1 = d1(s, k, t, r, b, v); - let d2 = d2(s, k, t, r, b, v); + let d1 = d1(s, k, t, b, v); + let d2 = d2(s, k, t, b, v); put_vega(s, k, t, r, b, v) * d1 * d2 / v } #[inline] pub(crate) fn call_ultima(s: f64, k: f64, t: f64, r: f64, b: f64, v: f64) -> f64 { - let d1 = d1(s, k, t, r, b, v); - let d2 = d2(s, k, t, r, b, v); + let d1 = d1(s, k, t, b, v); + let d2 = d2(s, k, t, b, v); (call_vomma(s, k, t, r, b, v) / v) * (d1 * d2 - d1 / d2 + d2 / d1 - 1.0) } #[inline] pub(crate) fn put_ultima(s: f64, k: f64, t: f64, r: f64, b: f64, v: f64) -> f64 { - let d1 = d1(s, k, t, r, b, v); - let d2 = d2(s, k, t, r, b, v); + let d1 = d1(s, k, t, b, v); + let d2 = d2(s, k, t, b, v); (put_vomma(s, k, t, r, b, v) / v) * (d1 * d2 - d1 / d2 + d2 / d1 - 1.0) } @@ -497,11 +497,11 @@ macro_rules! impl_gbsm { } fn d1(&self, k: f64, t: f64) -> f64 { - bsm::d1(self.s(), k, t, self.r(), self.b(), self.v) + bsm::d1(self.s(), k, t, self.b(), self.v) } fn d2(&self, k: f64, t: f64) -> f64 { - bsm::d2(self.s(), k, t, self.r(), self.b(), self.v) + bsm::d2(self.s(), k, t, self.b(), self.v) } fn delta(&self, k: f64, t: f64, option_type: TypeFlag) -> f64 { diff --git a/crates/RustQuant_math/src/distributions/chi_squared.rs b/crates/RustQuant_math/src/distributions/chi_squared.rs index 69b9ac67..c0c6f23e 100644 --- a/crates/RustQuant_math/src/distributions/chi_squared.rs +++ b/crates/RustQuant_math/src/distributions/chi_squared.rs @@ -311,7 +311,7 @@ impl Distribution for ChiSquared { #[cfg(test)] mod tests { use super::*; - use RustQuant_utils::{assert_approx_equal, RUSTQUANT_EPSILON as EPS}; + use RustQuant_utils::assert_approx_equal; #[test] fn test_chi_squared_characteristic_function() { diff --git a/crates/RustQuant_math/src/sequences.rs b/crates/RustQuant_math/src/sequences.rs index 4d5dd491..2e8ec4dd 100644 --- a/crates/RustQuant_math/src/sequences.rs +++ b/crates/RustQuant_math/src/sequences.rs @@ -84,7 +84,7 @@ where #[cfg(test)] mod tests_sequences { use super::*; - use RustQuant_utils::{assert_approx_equal, RUSTQUANT_EPSILON as EPS}; + use RustQuant_utils::assert_approx_equal; #[test] fn test_seq_f64() { diff --git a/crates/RustQuant_stochastics/src/brownian_motion.rs b/crates/RustQuant_stochastics/src/brownian_motion.rs index db29297a..c12816d0 100644 --- a/crates/RustQuant_stochastics/src/brownian_motion.rs +++ b/crates/RustQuant_stochastics/src/brownian_motion.rs @@ -56,7 +56,7 @@ mod sde_tests { use super::*; use crate::StochasticProcessConfig; use RustQuant_math::*; - use RustQuant_utils::{assert_approx_equal, RUSTQUANT_EPSILON as EPS}; + use RustQuant_utils::assert_approx_equal; #[test] fn test_brownian_motion() { diff --git a/crates/RustQuant_stochastics/src/cox_ingersoll_ross.rs b/crates/RustQuant_stochastics/src/cox_ingersoll_ross.rs index f30a5286..9bbef8e4 100644 --- a/crates/RustQuant_stochastics/src/cox_ingersoll_ross.rs +++ b/crates/RustQuant_stochastics/src/cox_ingersoll_ross.rs @@ -67,7 +67,7 @@ mod tests_cir { use super::*; use crate::StochasticProcessConfig; use RustQuant_math::*; - use RustQuant_utils::{assert_approx_equal, RUSTQUANT_EPSILON as EPS}; + use RustQuant_utils::assert_approx_equal; #[test] fn test_cox_ingersoll_ross() { diff --git a/crates/RustQuant_stochastics/src/extended_vasicek.rs b/crates/RustQuant_stochastics/src/extended_vasicek.rs index c749291f..d754c099 100644 --- a/crates/RustQuant_stochastics/src/extended_vasicek.rs +++ b/crates/RustQuant_stochastics/src/extended_vasicek.rs @@ -64,7 +64,7 @@ mod tests_extended_vasicek { use super::*; use crate::StochasticProcessConfig; use RustQuant_math::*; - use RustQuant_utils::{assert_approx_equal, RUSTQUANT_EPSILON as EPS}; + use RustQuant_utils::assert_approx_equal; // fn alpha_t(_t: f64) -> f64 { // 2.0 diff --git a/crates/RustQuant_stochastics/src/fractional_brownian_motion.rs b/crates/RustQuant_stochastics/src/fractional_brownian_motion.rs index dfcc9a63..6288c9d5 100644 --- a/crates/RustQuant_stochastics/src/fractional_brownian_motion.rs +++ b/crates/RustQuant_stochastics/src/fractional_brownian_motion.rs @@ -11,7 +11,8 @@ use super::StochasticProcessConfig; use crate::process::{StochasticProcess, Trajectories}; use nalgebra::{DMatrix, DVector, Dim, Dyn, RowDVector}; use ndarray::{concatenate, prelude::*}; -use ndarray_rand::{rand::random, RandomExt}; +// use ndarray_rand::{rand::random, RandomExt}; +use ndarray_rand::RandomExt; use ndrustfft::{ndfft_par, FftHandler}; use num::{complex::ComplexDistribution, Complex}; use rand::Rng; @@ -267,7 +268,7 @@ mod test_fractional_brownian_motion { use crate::StochasticProcessConfig; use RustQuant_math::*; use RustQuant_ml::{Decomposition, LinearRegressionInput}; - use RustQuant_utils::{assert_approx_equal, RUSTQUANT_EPSILON as EPS}; + use RustQuant_utils::assert_approx_equal; fn higuchi_fd(x: &Vec, kmax: usize) -> f64 { let n_times = x.len(); diff --git a/examples/examples/curves_discount.rs b/examples/examples/curves_discount.rs index c0a1d10c..457c3de2 100644 --- a/examples/examples/curves_discount.rs +++ b/examples/examples/curves_discount.rs @@ -1,4 +1,3 @@ -use polars::prelude::*; use time::macros::date; use time::Date; use RustQuant::data::Curves; @@ -6,8 +5,8 @@ use RustQuant::data::{Curve, DiscountCurve}; use RustQuant::time::oceania::australia::AustraliaCalendar; fn main() { - let cal = AustraliaCalendar; - let curve = Curve::::new_from_slice(&DATES, &RATES); + let _cal = AustraliaCalendar; + let _curve = Curve::::new_from_slice(&DATES, &RATES); let mut discount_curve = DiscountCurve::::new(&DATES, &RATES);