108 ParameterList &list) {
109 std::string projectionType;
110 if (list.sublist(
"General").sublist(
"Polyhedral Projection").isParameter(
"Type"))
111 projectionType = list.sublist(
"General").sublist(
"Polyhedral Projection").get(
"Type",
"Dykstra");
113 projectionType = (res.
dimension() == 1) ?
"Dai-Fletcher" :
"Dykstra";
116 case PPA_DAIFLETCHER:
return makePtr<DaiFletcherProjection<Real>>(xprim,xdual,bnd,con,mul,res,list);
break;
117 case PPA_DYKSTRA:
return makePtr<DykstraProjection<Real>>(xprim,xdual,bnd,con,mul,res,list);
break;
118 case PPA_DOUGLASRACHFORD:
return makePtr<DouglasRachfordProjection<Real>>(xprim,xdual,bnd,con,mul,res,list);
break;
119 case PPA_NEWTON:
return makePtr<SemismoothNewtonProjection<Real>>(xprim,xdual,bnd,con,mul,res,list);
break;
120 case PPA_RIDDERS:
return makePtr<RiddersProjection<Real>>(xprim,xdual,bnd,con,mul,res,list);
break;
121 case PPA_BRENTS:
return makePtr<BrentsProjection<Real>>(xprim,xdual,bnd,con,mul,res,list);
break;
122 default:
return nullPtr;
Ptr< PolyhedralProjection< Real > > PolyhedralProjectionFactory(const Vector< Real > &xprim, const Vector< Real > &xdual, const Ptr< BoundConstraint< Real > > &bnd, const Ptr< Constraint< Real > > &con, const Vector< Real > &mul, const Vector< Real > &res, ParameterList &list)