fn calculate_implied_volatility( option_type: &OptionType, spot: f64, strike: f64, time_to_expiry: f64, risk_free_rate: f64, market_price: f64, initial_vol: Option<f64>, ) -> Option<f64>