From e84cc067db8983db5a96fabc7a84ba513e81c57f Mon Sep 17 00:00:00 2001 From: Luigi Ballabio Date: Thu, 11 Feb 2021 12:26:27 +0100 Subject: [PATCH 1/6] Add modernize-loop-convert check. --- .clang-tidy | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.clang-tidy b/.clang-tidy index cbec3cc4416..fe09f0bcd72 100644 --- a/.clang-tidy +++ b/.clang-tidy @@ -1,5 +1,5 @@ --- -Checks: '-*,readability-*,bugprone-*,misc-*,performance-*,modernize-redundant-void-arg,modernize-deprecated-headers,modernize-use-override,modernize-use-auto,modernize-use-nullptr,modernize-use-default-member-init,modernize-use-equals-default,modernize-use-equals-delete,modernize-pass-by-value,-readability-else-after-return,-readability-named-parameter,-readability-braces-around-statements,-readability-inconsistent-declaration-parameter-name,-readability-isolate-declaration,-readability-magic-numbers,-readability-convert-member-functions-to-static,-bugprone-macro-parentheses,-bugprone-narrowing-conversions,-bugprone-branch-clone,-misc-non-private-member-variables-in-classes,-misc-unused-parameters' +Checks: '-*,readability-*,bugprone-*,misc-*,performance-*,modernize-redundant-void-arg,modernize-deprecated-headers,modernize-use-override,modernize-use-auto,modernize-use-nullptr,modernize-use-default-member-init,modernize-use-equals-default,modernize-use-equals-delete,modernize-pass-by-value,modernize-loop-convert,-readability-else-after-return,-readability-named-parameter,-readability-braces-around-statements,-readability-inconsistent-declaration-parameter-name,-readability-isolate-declaration,-readability-magic-numbers,-readability-convert-member-functions-to-static,-bugprone-macro-parentheses,-bugprone-narrowing-conversions,-bugprone-branch-clone,-misc-non-private-member-variables-in-classes,-misc-unused-parameters' WarningsAsErrors: '' HeaderFilterRegex: '.*' AnalyzeTemporaryDtors: false From e715b9807369b3ca556235b43b5a8d3bdaaae4b5 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Thu, 11 Feb 2021 16:09:33 +0000 Subject: [PATCH 2/6] Automated fixes by clang-tidy --- Examples/BasketLosses/BasketLosses.cpp | 5 +- Examples/Bonds/Bonds.cpp | 4 +- Examples/CDS/CDS.cpp | 22 +- Examples/FittedBondCurve/FittedBondCurve.cpp | 12 +- .../Gaussian1dModels/Gaussian1dModels.cpp | 37 +- Examples/GlobalOptimizer/GlobalOptimizer.cpp | 12 +- Examples/LatentModel/LatentModel.cpp | 5 +- Examples/MarketModels/MarketModels.cpp | 8 +- .../MultidimIntegral/MultidimIntegral.cpp | 4 +- ql/cashflows/cashflows.cpp | 107 +- ql/cashflows/conundrumpricer.cpp | 18 +- ql/cashflows/couponpricer.cpp | 12 +- ql/cashflows/inflationcouponpricer.cpp | 5 +- ql/cashflows/lineartsrpricer.cpp | 5 +- ql/cashflows/timebasket.cpp | 10 +- ql/cashflows/timebasket.hpp | 8 +- .../analytic_discr_geom_av_price_heston.cpp | 12 +- .../averageois/arithmeticaverageois.cpp | 10 +- .../discretizeddoublebarrieroption.cpp | 12 +- ql/experimental/basismodels/swaptioncfs.cpp | 26 +- .../basismodels/tenoroptionletvts.cpp | 4 +- .../basismodels/tenorswaptionvts.cpp | 8 +- .../callablebonds/callablebond.cpp | 29 +- .../discretizedcallablefixedratebond.cpp | 9 +- .../catbonds/montecarlocatbondengine.cpp | 9 +- ql/experimental/catbonds/riskynotional.cpp | 6 +- ql/experimental/catbonds/riskynotional.hpp | 7 +- ql/experimental/commodities/commodity.cpp | 15 +- .../commodities/commoditycashflow.cpp | 16 +- .../commodities/commodityindex.hpp | 4 +- .../commodities/energybasisswap.cpp | 4 +- .../commodities/energycommodity.cpp | 25 +- ql/experimental/commodities/energyswap.cpp | 4 +- .../commodities/energyvanillaswap.cpp | 7 +- .../unitofmeasureconversionmanager.cpp | 15 +- .../convertiblebonds/convertiblebond.cpp | 8 +- .../discretizedconvertible.cpp | 28 +- .../coupons/strippedcapflooredcoupon.cpp | 6 +- .../credit/basecorrelationstructure.hpp | 9 +- ql/experimental/credit/basket.cpp | 16 +- ql/experimental/credit/binomiallossmodel.hpp | 6 +- ql/experimental/credit/cdo.cpp | 4 +- ql/experimental/credit/defaultevent.cpp | 4 +- ql/experimental/credit/distribution.cpp | 5 +- .../credit/gaussianlhplossmodel.cpp | 16 +- ql/experimental/credit/integralcdoengine.cpp | 8 +- ql/experimental/credit/integralntdengine.cpp | 15 +- ql/experimental/credit/issuer.cpp | 26 +- ql/experimental/credit/midpointcdoengine.cpp | 7 +- ql/experimental/credit/riskybond.cpp | 26 +- .../fdsimpleextoustorageengine.cpp | 6 +- ql/experimental/math/convolvedstudentt.cpp | 15 +- ql/experimental/math/gaussiancopulapolicy.hpp | 8 +- .../math/hybridsimulatedannealing.hpp | 4 +- ql/experimental/math/latentmodel.hpp | 15 +- ql/experimental/math/tcopulapolicy.cpp | 28 +- ql/experimental/models/hestonslvfdmmodel.cpp | 5 +- ql/experimental/models/hestonslvmcmodel.cpp | 5 +- ql/experimental/models/squarerootclvmodel.cpp | 4 +- .../shortrate/generalizedhullwhite.hpp | 8 +- .../haganirregularswaptionengine.cpp | 14 +- .../multicurvesensitivities.hpp | 17 +- ql/experimental/variancegamma/fftengine.cpp | 15 +- .../volatility/abcdatmvolcurve.cpp | 4 +- .../volatility/extendedblackvariancecurve.cpp | 4 +- .../extendedblackvariancesurface.cpp | 4 +- .../noarbsabrinterpolatedsmilesection.cpp | 4 +- .../sviinterpolatedsmilesection.cpp | 4 +- ql/experimental/volatility/volcube.cpp | 10 +- .../zabrinterpolatedsmilesection.hpp | 4 +- .../volatility/zabrsmilesection.hpp | 4 +- ql/instruments/bmaswap.cpp | 4 +- ql/instruments/bond.cpp | 20 +- ql/instruments/capfloor.cpp | 6 +- ql/instruments/compositeinstrument.cpp | 8 +- ql/instruments/fixedratebondforward.cpp | 9 +- ql/instruments/floatfloatswap.cpp | 12 +- ql/instruments/nonstandardswap.cpp | 6 +- ql/instruments/overnightindexedswap.cpp | 4 +- ql/instruments/swap.cpp | 26 +- ql/instruments/zerocouponinflationswap.cpp | 4 +- .../interpolations/kernelinterpolation.hpp | 5 +- .../interpolations/kernelinterpolation2d.hpp | 5 +- .../basisincompleteordered.cpp | 9 +- .../sparseilupreconditioner.cpp | 5 +- ql/math/matrixutilities/svd.cpp | 4 +- ql/math/optimization/constraint.hpp | 8 +- .../optimization/differentialevolution.cpp | 18 +- ql/math/optimization/projection.cpp | 4 +- ql/math/optimization/simplex.cpp | 8 +- ql/math/optimization/simulatedannealing.hpp | 8 +- ql/math/sampledcurve.hpp | 5 +- ql/math/statistics/histogram.cpp | 5 +- .../meshers/concentrating1dmesher.cpp | 6 +- .../meshers/fdmblackscholesmesher.cpp | 16 +- .../schemes/boundaryconditionschemehelper.hpp | 20 +- .../fdmbermudanstepcondition.cpp | 5 +- .../fdmstepconditioncomposite.cpp | 8 +- .../fdmaffinemodelswapinnervalue.hpp | 10 +- .../utilities/fdmdirichletboundary.cpp | 4 +- .../utilities/fdmdividendhandler.cpp | 8 +- .../fdmshoutloginnervaluecalculator.cpp | 18 +- .../fdmshoutloginnervaluecalculator.hpp | 11 +- ql/methods/montecarlo/genericlsregression.cpp | 4 +- ql/methods/montecarlo/lsmbasissystem.cpp | 15 +- ql/methods/montecarlo/parametricexercise.cpp | 20 +- ql/models/marketmodels/accountingengine.cpp | 5 +- .../marketmodels/pathwiseaccountingengine.cpp | 27 +- .../pathwisegreeks/bumpinstrumentjacobian.cpp | 4 +- .../pathwisegreeks/ratepseudorootjacobian.cpp | 24 +- .../pathwisegreeks/vegabumpcluster.cpp | 26 +- .../products/compositeproduct.cpp | 6 +- .../products/multiproductcomposite.cpp | 10 +- .../multistep/multisteppathwisewrapper.cpp | 7 +- .../multistepperiodcapletswaptions.cpp | 94 +- .../pathwise/pathwiseproductcaplet.cpp | 9 +- .../products/singleproductcomposite.cpp | 4 +- ql/models/marketmodels/proxygreekengine.cpp | 4 +- ql/models/marketmodels/utilities.cpp | 6 +- ql/models/model.cpp | 10 +- ql/models/model.hpp | 28 +- ql/models/shortrate/onefactormodels/gsr.cpp | 8 +- .../onefactormodels/markovfunctional.cpp | 84 +- ql/patterns/observable.cpp | 9 +- ql/patterns/observable.hpp | 12 +- ql/prices.cpp | 4 +- .../asian/analytic_discr_geom_av_strike.cpp | 7 +- .../asian/fdblackscholesasianengine.cpp | 4 +- .../asian/mc_discr_arith_av_price_heston.cpp | 4 +- .../asian/mc_discr_arith_av_price_heston.hpp | 10 +- .../asian/mc_discr_geom_av_price_heston.cpp | 4 +- .../asian/mc_discr_geom_av_price_heston.hpp | 5 +- .../barrier/discretizedbarrieroption.cpp | 12 +- .../capfloor/gaussian1dcapfloorengine.cpp | 6 +- ql/pricingengines/credit/isdacdsengine.cpp | 8 +- ql/pricingengines/swap/discretizedswap.cpp | 12 +- .../swaption/basketgeneratingengine.hpp | 15 +- .../swaption/discretizedswaption.cpp | 14 +- .../swaption/fdg2swaptionengine.cpp | 6 +- .../swaption/fdhullwhiteswaptionengine.cpp | 6 +- .../vanilla/discretizedvanillaoption.cpp | 8 +- .../exponentialfittinghestonengine.cpp | 4 +- .../vanilla/fdblackscholesshoutengine.cpp | 18 +- .../vanilla/fdblackscholesshoutengine.hpp | 6 +- .../vanilla/fdblackscholesvanillaengine.cpp | 31 +- .../fdhestonhullwhitevanillaengine.cpp | 13 +- .../vanilla/fdhestonvanillaengine.cpp | 13 +- .../vanilla/fdsimplebsswingengine.cpp | 4 +- ql/processes/jointstochasticprocess.cpp | 10 +- ql/processes/stochasticprocessarray.cpp | 4 +- ql/termstructures/globalbootstrap.hpp | 4 +- .../interpolatedzeroinflationcurve.hpp | 8 +- .../capfloor/capfloortermvolcurve.cpp | 4 +- .../andreasenhugevolatilityinterpl.cpp | 15 +- .../equityfx/fixedlocalvolsurface.cpp | 11 +- .../volatility/interpolatedsmilesection.hpp | 8 +- .../volatility/kahalesmilesection.cpp | 4 +- .../optionlet/strippedoptionletadapter.cpp | 5 +- .../sabrinterpolatedsmilesection.cpp | 4 +- .../volatility/smilesectionutils.cpp | 11 +- .../swaption/cmsmarketcalibration.cpp | 8 +- .../volatility/swaption/swaptionvolcube1.hpp | 5 +- .../yield/fittedbonddiscountcurve.cpp | 8 +- .../yield/fittedbonddiscountcurve.hpp | 4 +- .../piecewisezerospreadedtermstructure.hpp | 4 +- ql/time/calendars/saudiarabia.cpp | 8 +- test-suite/americanoption.cpp | 235 +-- test-suite/andreasenhugevolatilityinterpl.cpp | 83 +- test-suite/asianoptions.cpp | 623 +++--- test-suite/barrieroption.cpp | 240 +-- test-suite/basismodels.cpp | 52 +- test-suite/basketoption.cpp | 213 +- test-suite/batesmodel.cpp | 44 +- test-suite/bermudanswaption.cpp | 16 +- test-suite/binaryoption.cpp | 66 +- test-suite/blackdeltacalculator.cpp | 71 +- test-suite/blackformula.cpp | 97 +- test-suite/bonds.cpp | 566 +++--- test-suite/callablebonds.cpp | 52 +- test-suite/capfloor.cpp | 439 ++--- test-suite/cashflows.cpp | 24 +- test-suite/catbonds.cpp | 3 +- test-suite/cliquetoption.cpp | 329 ++-- test-suite/cms.cpp | 6 +- test-suite/compoundoption.cpp | 101 +- test-suite/creditdefaultswap.cpp | 61 +- test-suite/crosscurrencyratehelpers.cpp | 4 +- test-suite/dates.cpp | 10 +- test-suite/digitalcoupon.cpp | 56 +- test-suite/digitaloption.cpp | 405 ++-- test-suite/distributions.cpp | 42 +- test-suite/dividendoption.cpp | 720 ++++--- test-suite/doublebarrieroption.cpp | 176 +- test-suite/doublebinaryoption.cpp | 48 +- test-suite/europeanoption.cpp | 569 +++--- test-suite/extendedtrees.cpp | 114 +- test-suite/fdcev.cpp | 11 +- test-suite/fdcir.cpp | 7 +- test-suite/fdheston.cpp | 106 +- test-suite/fdmlinearop.cpp | 12 +- test-suite/fdsabr.cpp | 31 +- test-suite/fittedbonddiscountcurve.cpp | 10 +- test-suite/forwardoption.cpp | 588 +++--- test-suite/functions.cpp | 30 +- test-suite/gaussianquadratures.cpp | 26 +- test-suite/hestonmodel.cpp | 142 +- test-suite/hestonslvmodel.cpp | 133 +- test-suite/hybridhestonhullwhiteprocess.cpp | 207 +- test-suite/inflation.cpp | 11 +- test-suite/inflationcapfloor.cpp | 227 +-- test-suite/inflationcapflooredcoupon.cpp | 67 +- test-suite/inflationcpicapfloor.cpp | 6 +- test-suite/inflationcpiswap.cpp | 6 +- test-suite/inflationvolatility.cpp | 9 +- test-suite/integrals.cpp | 33 +- test-suite/interestrates.cpp | 38 +- test-suite/interpolations.cpp | 240 ++- test-suite/jumpdiffusion.cpp | 274 ++- test-suite/libormarketmodelprocess.cpp | 6 +- test-suite/lookbackoptions.cpp | 127 +- test-suite/lowdiscrepancysequences.cpp | 51 +- test-suite/margrabeoption.cpp | 368 ++-- test-suite/marketmodel.cpp | 1737 ++++++++--------- test-suite/marketmodel_cms.cpp | 27 +- test-suite/marketmodel_smm.cpp | 26 +- test-suite/markovfunctional.cpp | 51 +- test-suite/matrices.cpp | 32 +- test-suite/nthorderderivativeop.cpp | 4 +- test-suite/nthtodefault.cpp | 8 +- test-suite/optimizers.cpp | 12 +- test-suite/optionletstripper.cpp | 8 +- test-suite/overnightindexedswap.cpp | 137 +- test-suite/partialtimebarrieroption.cpp | 10 +- test-suite/piecewiseyieldcurve.cpp | 29 +- test-suite/quantooption.cpp | 819 ++++---- test-suite/quotes.cpp | 14 +- test-suite/riskneutraldensitycalculator.cpp | 61 +- test-suite/rngtraits.cpp | 12 +- test-suite/rounding.cpp | 85 +- test-suite/shortratemodels.cpp | 41 +- test-suite/sofrfutures.cpp | 5 +- test-suite/solvers.cpp | 24 +- test-suite/spreadoption.cpp | 30 +- test-suite/squarerootclvmodel.cpp | 25 +- test-suite/swap.cpp | 73 +- test-suite/swapforwardmappings.cpp | 6 +- test-suite/swaption.cpp | 614 +++--- test-suite/swaptionvolatilitycube.cpp | 48 +- test-suite/twoassetbarrieroption.cpp | 28 +- test-suite/varianceswaps.cpp | 60 +- test-suite/vpp.cpp | 4 +- 251 files changed, 6393 insertions(+), 7774 deletions(-) diff --git a/Examples/BasketLosses/BasketLosses.cpp b/Examples/BasketLosses/BasketLosses.cpp index 5d263f08d8d..5b380055aae 100644 --- a/Examples/BasketLosses/BasketLosses.cpp +++ b/Examples/BasketLosses/BasketLosses.cpp @@ -77,10 +77,9 @@ int main(int, char* []) { names.push_back(std::string("Acme") + boost::lexical_cast(i)); std::vector > defTS; - for(Size i=0; i( - ext::make_shared(0, TARGET(), hazardRates[i], - Actual365Fixed()))); + ext::make_shared(0, TARGET(), hazardRate, Actual365Fixed()))); defTS.back()->enableExtrapolation(); } std::vector issuers; diff --git a/Examples/Bonds/Bonds.cpp b/Examples/Bonds/Bonds.cpp index 621cdcd83bb..11bf9466a2f 100644 --- a/Examples/Bonds/Bonds.cpp +++ b/Examples/Bonds/Bonds.cpp @@ -163,8 +163,8 @@ int main(int, char* []) { }; std::vector< ext::shared_ptr > quote; - for (Size i=0; i cp(new SimpleQuote(marketQuotes[i])); + for (double marketQuote : marketQuotes) { + ext::shared_ptr cp(new SimpleQuote(marketQuote)); quote.push_back(cp); } diff --git a/Examples/CDS/CDS.cpp b/Examples/CDS/CDS.cpp index 2f4a1001b9f..7d4290ecdd8 100644 --- a/Examples/CDS/CDS.cpp +++ b/Examples/CDS/CDS.cpp @@ -119,9 +119,8 @@ void example01() { vector > hr_curve_data = hazardRateStructure->nodes(); cout << "Calibrated hazard rate values: " << endl; - for (Size i = 0; i < hr_curve_data.size(); i++) { - cout << "hazard rate on " << hr_curve_data[i].first << " is " - << hr_curve_data[i].second << endl; + for (auto& i : hr_curve_data) { + cout << "hazard rate on " << i.first << " is " << i.second << endl; } cout << endl; @@ -345,8 +344,8 @@ std::copy(cdsSchedule.begin(), cdsSchedule.end(), // output rate curve std::cout << "ISDA rate curve: " << std::endl; - for(Size i=0;ilatestDate(); + for (auto& i : isdaRateHelper) { + Date d = i->latestDate(); std::cout << d << "\t" << setprecision(6) << rateTs->zeroRate(d,Actual365Fixed(),Continuous).rate() << "\t" << rateTs->discount(d) << std::endl; @@ -395,8 +394,8 @@ std::copy(cdsSchedule.begin(), cdsSchedule.end(), 0, WeekendsOnly(), isdaCdsHelper, Actual365Fixed())); std::cout << "ISDA credit curve: " << std::endl; - for(Size i=0;ilatestDate(); + for (auto& i : isdaCdsHelper) { + Date d = i->latestDate(); Real pd = defaultTs->defaultProbability(d); Real t = defaultTs->timeFromReference(d); std::cout << d << ";" << pd << ";" << 1.0 - pd << ";" << @@ -404,7 +403,6 @@ std::copy(cdsSchedule.begin(), cdsSchedule.end(), } - // // set up sample CDS trade // ext::shared_ptr trade = @@ -613,8 +611,8 @@ void example03() { // check the curves std::cout << "ISDA yield curve:" << std::endl; std::cout << "date;time;zeroyield" << std::endl; - for (Size i = 0; i < isdaYieldHelpers.size(); i++) { - Date d = isdaYieldHelpers[i]->latestDate(); + for (auto& isdaYieldHelper : isdaYieldHelpers) { + Date d = isdaYieldHelper->latestDate(); Real t = isdaYts->timeFromReference(d); std::cout << d << ";" << t << ";" << isdaYts->zeroRate(d, Actual365Fixed(), Continuous).rate() @@ -623,8 +621,8 @@ void example03() { std::cout << "ISDA credit curve:" << std::endl; std::cout << "date;time;survivalprob" << std::endl; - for (Size i = 0; i < isdaCdsHelpers.size(); i++) { - Date d = isdaCdsHelpers[i]->latestDate(); + for (auto& isdaCdsHelper : isdaCdsHelpers) { + Date d = isdaCdsHelper->latestDate(); Real t = isdaCts->timeFromReference(d); std::cout << d << ";" << t << ";" << isdaCts->survivalProbability(d) << std::endl; diff --git a/Examples/FittedBondCurve/FittedBondCurve.cpp b/Examples/FittedBondCurve/FittedBondCurve.cpp index 860051f72aa..f491dac9b72 100644 --- a/Examples/FittedBondCurve/FittedBondCurve.cpp +++ b/Examples/FittedBondCurve/FittedBondCurve.cpp @@ -89,13 +89,13 @@ int main(int, char* []) { const Size numberOfBonds = 15; Real cleanPrice[numberOfBonds]; - for (Size i=0; i > quote; - for (Size i=0; i cp(new SimpleQuote(cleanPrice[i])); + for (double i : cleanPrice) { + ext::shared_ptr cp(new SimpleQuote(i)); quote.push_back(cp); } @@ -227,8 +227,8 @@ int main(int, char* []) { 20.0, 25.0, 30.0, 40.0, 50.0 }; std::vector