@@ -783,9 +783,6 @@ void McMultiLegBaseEngine::calculate() const {
783783 std::vector<RegressionModel> regModelContinuationValue (exerciseXvaTimes.size ()); // available on ex times
784784 std::vector<RegressionModel> regModelOption (exerciseXvaTimes.size ()); // available on xva and ex times
785785
786- auto basisFns =
787- RandomVariableLsmBasisSystem::multiPathBasisSystem (model_->stateProcess ()->size (), polynomOrder_, polynomType_);
788-
789786 enum class CfStatus { open, cached, done };
790787 std::vector<CfStatus> cfStatus (cashflowInfo.size (), CfStatus::open);
791788
@@ -894,7 +891,7 @@ void McMultiLegBaseEngine::calculate() const {
894891
895892 amcCalculator_ = boost::make_shared<MultiLegBaseAmcCalculator>(
896893 externalModelIndices_, optionSettlement_, exerciseXvaTimes, exerciseTimes, xvaTimes, regModelUndDirty,
897- regModelUndExInto, regModelContinuationValue, regModelOption, basisFns, resultValue_,
894+ regModelUndExInto, regModelContinuationValue, regModelOption, resultValue_,
898895 model_->stateProcess ()->initialValues (), model_->irlgm1f (0 )->currency ());
899896}
900897
@@ -906,13 +903,12 @@ McMultiLegBaseEngine::MultiLegBaseAmcCalculator::MultiLegBaseAmcCalculator(
906903 const std::vector<McMultiLegBaseEngine::RegressionModel>& regModelUndDirty,
907904 const std::vector<McMultiLegBaseEngine::RegressionModel>& regModelUndExInto,
908905 const std::vector<McMultiLegBaseEngine::RegressionModel>& regModelContinuationValue,
909- const std::vector<McMultiLegBaseEngine::RegressionModel>& regModelOption,
910- const std::vector<std::function<RandomVariable(const std::vector<const RandomVariable*>&)>>& basisFns,
911- const Real resultValue, const Array& initialState, const Currency& baseCurrency)
906+ const std::vector<McMultiLegBaseEngine::RegressionModel>& regModelOption, const Real resultValue,
907+ const Array& initialState, const Currency& baseCurrency)
912908 : externalModelIndices_(externalModelIndices), settlement_(settlement), exerciseXvaTimes_(exerciseXvaTimes),
913909 exerciseTimes_(exerciseTimes), xvaTimes_(xvaTimes), regModelUndDirty_(regModelUndDirty),
914910 regModelUndExInto_(regModelUndExInto), regModelContinuationValue_(regModelContinuationValue),
915- regModelOption_(regModelOption), basisFns_(basisFns), resultValue_(resultValue), initialState_(initialState),
911+ regModelOption_(regModelOption), resultValue_(resultValue), initialState_(initialState),
916912 baseCurrency_(baseCurrency) {}
917913
918914std::vector<QuantExt::RandomVariable> McMultiLegBaseEngine::MultiLegBaseAmcCalculator::simulatePath (
@@ -1115,7 +1111,7 @@ void McMultiLegBaseEngine::RegressionModel::train(const Size polynomOrder,
11151111
11161112 // get the basis functions
11171113
1118- basisFns_ = RandomVariableLsmBasisSystem:: multiPathBasisSystem (regressor.size (), polynomOrder, polynomType);
1114+ basisFns_ = multiPathBasisSystem (regressor.size (), polynomOrder, polynomType, Null<Size>() );
11191115
11201116 // compute the regression coefficients
11211117
0 commit comments