@@ -1268,8 +1268,8 @@ BEGIN_RCPP
12681268END_RCPP
12691269}
12701270// europeanOptionImpliedVolatilityEngine
1271- double europeanOptionImpliedVolatilityEngine (std::string type, double value, double underlying, double strike, double dividendYield, double riskFreeRate, double maturity , double volatility, int dayCounter);
1272- static SEXP _RQuantLib_europeanOptionImpliedVolatilityEngine_try (SEXP typeSEXP, SEXP valueSEXP, SEXP underlyingSEXP, SEXP strikeSEXP, SEXP dividendYieldSEXP, SEXP riskFreeRateSEXP, SEXP maturitySEXP , SEXP volatilitySEXP, SEXP dayCounterSEXP) {
1271+ double europeanOptionImpliedVolatilityEngine (std::string type, double value, double underlying, double strike, double dividendYield, double riskFreeRate, Rcpp::Nullable< double > maturity_, Rcpp::Nullable<QuantLib::Date> exDate_ , double volatility, int dayCounter);
1272+ static SEXP _RQuantLib_europeanOptionImpliedVolatilityEngine_try (SEXP typeSEXP, SEXP valueSEXP, SEXP underlyingSEXP, SEXP strikeSEXP, SEXP dividendYieldSEXP, SEXP riskFreeRateSEXP, SEXP maturity_SEXP, SEXP exDate_SEXP , SEXP volatilitySEXP, SEXP dayCounterSEXP) {
12731273BEGIN_RCPP
12741274 Rcpp::RObject rcpp_result_gen;
12751275 Rcpp::traits::input_parameter< std::string >::type type (typeSEXP);
@@ -1278,60 +1278,19 @@ BEGIN_RCPP
12781278 Rcpp::traits::input_parameter< double >::type strike (strikeSEXP);
12791279 Rcpp::traits::input_parameter< double >::type dividendYield (dividendYieldSEXP);
12801280 Rcpp::traits::input_parameter< double >::type riskFreeRate (riskFreeRateSEXP);
1281- Rcpp::traits::input_parameter< double >::type maturity (maturitySEXP);
1282- Rcpp::traits::input_parameter< double >::type volatility (volatilitySEXP);
1283- Rcpp::traits::input_parameter< int >::type dayCounter (dayCounterSEXP);
1284- rcpp_result_gen = Rcpp::wrap (europeanOptionImpliedVolatilityEngine (type, value, underlying, strike, dividendYield, riskFreeRate, maturity, volatility, dayCounter));
1285- return rcpp_result_gen;
1286- END_RCPP_RETURN_ERROR
1287- }
1288- RcppExport SEXP _RQuantLib_europeanOptionImpliedVolatilityEngine (SEXP typeSEXP, SEXP valueSEXP, SEXP underlyingSEXP, SEXP strikeSEXP, SEXP dividendYieldSEXP, SEXP riskFreeRateSEXP, SEXP maturitySEXP, SEXP volatilitySEXP, SEXP dayCounterSEXP) {
1289- SEXP rcpp_result_gen;
1290- {
1291- Rcpp::RNGScope rcpp_rngScope_gen;
1292- rcpp_result_gen = PROTECT (_RQuantLib_europeanOptionImpliedVolatilityEngine_try (typeSEXP, valueSEXP, underlyingSEXP, strikeSEXP, dividendYieldSEXP, riskFreeRateSEXP, maturitySEXP, volatilitySEXP, dayCounterSEXP));
1293- }
1294- Rboolean rcpp_isInterrupt_gen = Rf_inherits (rcpp_result_gen, " interrupted-error" );
1295- if (rcpp_isInterrupt_gen) {
1296- UNPROTECT (1 );
1297- Rf_onintr ();
1298- }
1299- bool rcpp_isLongjump_gen = Rcpp::internal::isLongjumpSentinel (rcpp_result_gen);
1300- if (rcpp_isLongjump_gen) {
1301- Rcpp::internal::resumeJump (rcpp_result_gen);
1302- }
1303- Rboolean rcpp_isError_gen = Rf_inherits (rcpp_result_gen, " try-error" );
1304- if (rcpp_isError_gen) {
1305- SEXP rcpp_msgSEXP_gen = Rf_asChar (rcpp_result_gen);
1306- UNPROTECT (1 );
1307- (Rf_error)(" %s" , CHAR (rcpp_msgSEXP_gen));
1308- }
1309- UNPROTECT (1 );
1310- return rcpp_result_gen;
1311- }
1312- // europeanOptionImpliedVolatilityEngineByDate
1313- double europeanOptionImpliedVolatilityEngineByDate (std::string type, double value, double underlying, double strike, double dividendYield, double riskFreeRate, QuantLib::Date exDate, double volatility, int dayCounter);
1314- static SEXP _RQuantLib_europeanOptionImpliedVolatilityEngineByDate_try (SEXP typeSEXP, SEXP valueSEXP, SEXP underlyingSEXP, SEXP strikeSEXP, SEXP dividendYieldSEXP, SEXP riskFreeRateSEXP, SEXP exDateSEXP, SEXP volatilitySEXP, SEXP dayCounterSEXP) {
1315- BEGIN_RCPP
1316- Rcpp::RObject rcpp_result_gen;
1317- Rcpp::traits::input_parameter< std::string >::type type (typeSEXP);
1318- Rcpp::traits::input_parameter< double >::type value (valueSEXP);
1319- Rcpp::traits::input_parameter< double >::type underlying (underlyingSEXP);
1320- Rcpp::traits::input_parameter< double >::type strike (strikeSEXP);
1321- Rcpp::traits::input_parameter< double >::type dividendYield (dividendYieldSEXP);
1322- Rcpp::traits::input_parameter< double >::type riskFreeRate (riskFreeRateSEXP);
1323- Rcpp::traits::input_parameter< QuantLib::Date >::type exDate (exDateSEXP);
1281+ Rcpp::traits::input_parameter< Rcpp::Nullable<double > >::type maturity_ (maturity_SEXP);
1282+ Rcpp::traits::input_parameter< Rcpp::Nullable<QuantLib::Date> >::type exDate_ (exDate_SEXP);
13241283 Rcpp::traits::input_parameter< double >::type volatility (volatilitySEXP);
13251284 Rcpp::traits::input_parameter< int >::type dayCounter (dayCounterSEXP);
1326- rcpp_result_gen = Rcpp::wrap (europeanOptionImpliedVolatilityEngineByDate (type, value, underlying, strike, dividendYield, riskFreeRate, exDate , volatility, dayCounter));
1285+ rcpp_result_gen = Rcpp::wrap (europeanOptionImpliedVolatilityEngine (type, value, underlying, strike, dividendYield, riskFreeRate, maturity_, exDate_ , volatility, dayCounter));
13271286 return rcpp_result_gen;
13281287END_RCPP_RETURN_ERROR
13291288}
1330- RcppExport SEXP _RQuantLib_europeanOptionImpliedVolatilityEngineByDate (SEXP typeSEXP, SEXP valueSEXP, SEXP underlyingSEXP, SEXP strikeSEXP, SEXP dividendYieldSEXP, SEXP riskFreeRateSEXP, SEXP exDateSEXP , SEXP volatilitySEXP, SEXP dayCounterSEXP) {
1289+ RcppExport SEXP _RQuantLib_europeanOptionImpliedVolatilityEngine (SEXP typeSEXP, SEXP valueSEXP, SEXP underlyingSEXP, SEXP strikeSEXP, SEXP dividendYieldSEXP, SEXP riskFreeRateSEXP, SEXP maturity_SEXP, SEXP exDate_SEXP , SEXP volatilitySEXP, SEXP dayCounterSEXP) {
13311290 SEXP rcpp_result_gen;
13321291 {
13331292 Rcpp::RNGScope rcpp_rngScope_gen;
1334- rcpp_result_gen = PROTECT (_RQuantLib_europeanOptionImpliedVolatilityEngineByDate_try (typeSEXP, valueSEXP, underlyingSEXP, strikeSEXP, dividendYieldSEXP, riskFreeRateSEXP, exDateSEXP , volatilitySEXP, dayCounterSEXP));
1293+ rcpp_result_gen = PROTECT (_RQuantLib_europeanOptionImpliedVolatilityEngine_try (typeSEXP, valueSEXP, underlyingSEXP, strikeSEXP, dividendYieldSEXP, riskFreeRateSEXP, maturity_SEXP, exDate_SEXP , volatilitySEXP, dayCounterSEXP));
13351294 }
13361295 Rboolean rcpp_isInterrupt_gen = Rf_inherits (rcpp_result_gen, " interrupted-error" );
13371296 if (rcpp_isInterrupt_gen) {
@@ -1694,8 +1653,7 @@ static int _RQuantLib_RcppExport_validate(const char* sig) {
16941653 signatures.insert (" std::vector<double>(*dayCount)(std::vector<QuantLib::Date>,std::vector<QuantLib::Date>,std::vector<double>)" );
16951654 signatures.insert (" std::vector<double>(*yearFraction)(std::vector<QuantLib::Date>,std::vector<QuantLib::Date>,std::vector<double>)" );
16961655 signatures.insert (" bool(*setEvaluationDate)(QuantLib::Date)" );
1697- signatures.insert (" double(*europeanOptionImpliedVolatilityEngine)(std::string,double,double,double,double,double,double,double,int)" );
1698- signatures.insert (" double(*europeanOptionImpliedVolatilityEngineByDate)(std::string,double,double,double,double,double,QuantLib::Date,double,int)" );
1656+ signatures.insert (" double(*europeanOptionImpliedVolatilityEngine)(std::string,double,double,double,double,double,Rcpp::Nullable<double>,Rcpp::Nullable<QuantLib::Date>,double,int)" );
16991657 signatures.insert (" double(*americanOptionImpliedVolatilityEngine)(std::string,double,double,double,double,double,Rcpp::Nullable<double>,Rcpp::Nullable<QuantLib::Date>,double,int,int,int)" );
17001658 signatures.insert (" Rcpp::DateVector(*CreateSchedule)(Rcpp::List)" );
17011659 signatures.insert (" std::string(*getQuantLibVersion)()" );
@@ -1732,7 +1690,6 @@ RcppExport SEXP _RQuantLib_RcppExport_registerCCallable() {
17321690 R_RegisterCCallable (" RQuantLib" , " _RQuantLib_yearFraction" , (DL_FUNC)_RQuantLib_yearFraction_try);
17331691 R_RegisterCCallable (" RQuantLib" , " _RQuantLib_setEvaluationDate" , (DL_FUNC)_RQuantLib_setEvaluationDate_try);
17341692 R_RegisterCCallable (" RQuantLib" , " _RQuantLib_europeanOptionImpliedVolatilityEngine" , (DL_FUNC)_RQuantLib_europeanOptionImpliedVolatilityEngine_try);
1735- R_RegisterCCallable (" RQuantLib" , " _RQuantLib_europeanOptionImpliedVolatilityEngineByDate" , (DL_FUNC)_RQuantLib_europeanOptionImpliedVolatilityEngineByDate_try);
17361693 R_RegisterCCallable (" RQuantLib" , " _RQuantLib_americanOptionImpliedVolatilityEngine" , (DL_FUNC)_RQuantLib_americanOptionImpliedVolatilityEngine_try);
17371694 R_RegisterCCallable (" RQuantLib" , " _RQuantLib_CreateSchedule" , (DL_FUNC)_RQuantLib_CreateSchedule_try);
17381695 R_RegisterCCallable (" RQuantLib" , " _RQuantLib_getQuantLibVersion" , (DL_FUNC)_RQuantLib_getQuantLibVersion_try);
@@ -1794,8 +1751,7 @@ static const R_CallMethodDef CallEntries[] = {
17941751 {" _RQuantLib_discountCurveEngine" , (DL_FUNC) &_RQuantLib_discountCurveEngine, 4 },
17951752 {" _RQuantLib_calibrateHullWhiteUsingCapsEngine" , (DL_FUNC) &_RQuantLib_calibrateHullWhiteUsingCapsEngine, 7 },
17961753 {" _RQuantLib_calibrateHullWhiteUsingSwapsEngine" , (DL_FUNC) &_RQuantLib_calibrateHullWhiteUsingSwapsEngine, 7 },
1797- {" _RQuantLib_europeanOptionImpliedVolatilityEngine" , (DL_FUNC) &_RQuantLib_europeanOptionImpliedVolatilityEngine, 9 },
1798- {" _RQuantLib_europeanOptionImpliedVolatilityEngineByDate" , (DL_FUNC) &_RQuantLib_europeanOptionImpliedVolatilityEngineByDate, 9 },
1754+ {" _RQuantLib_europeanOptionImpliedVolatilityEngine" , (DL_FUNC) &_RQuantLib_europeanOptionImpliedVolatilityEngine, 10 },
17991755 {" _RQuantLib_americanOptionImpliedVolatilityEngine" , (DL_FUNC) &_RQuantLib_americanOptionImpliedVolatilityEngine, 12 },
18001756 {" _RQuantLib_sabrengine" , (DL_FUNC) &_RQuantLib_sabrengine, 9 },
18011757 {" _RQuantLib_CreateSchedule" , (DL_FUNC) &_RQuantLib_CreateSchedule, 1 },
0 commit comments