Пример #1
0
std::string getSchemeEntryEnumName(InputOutputScheme scheme, int i) {
    switch (scheme) {
    case SCHEME_ACADO_Input:
        if (i==0) return "ACADO_X_GUESS";
        if (i==1) return "ACADO_U_GUESS";
        if (i==2) return "ACADO_P_GUESS";
        if (i==3) return "ACADO_LBX";
        if (i==4) return "ACADO_UBX";
        if (i==5) return "ACADO_LBX0";
        if (i==6) return "ACADO_UBX0";
        if (i==7) return "ACADO_LBXF";
        if (i==8) return "ACADO_UBXF";
        if (i==9) return "ACADO_LBU";
        if (i==10) return "ACADO_UBU";
        if (i==11) return "ACADO_LBP";
        if (i==12) return "ACADO_UBP";
        if (i==13) return "ACADO_LBC";
        if (i==14) return "ACADO_UBC";
        if (i==15) return "ACADO_LBR";
        if (i==16) return "ACADO_UBR";
        break;
    case SCHEME_ACADO_Output:
        if (i==0) return "ACADO_X_OPT";
        if (i==1) return "ACADO_U_OPT";
        if (i==2) return "ACADO_P_OPT";
        if (i==3) return "ACADO_COST";
        break;
    case SCHEME_ACADO_FCN_Input:
        if (i==0) return "ACADO_FCN_T";
        if (i==1) return "ACADO_FCN_XD";
        if (i==2) return "ACADO_FCN_XA";
        if (i==3) return "ACADO_FCN_U";
        if (i==4) return "ACADO_FCN_P";
        if (i==5) return "ACADO_FCN_XDOT";
        break;
    case SCHEME_ControlledDAEInput:
        if (i==0) return "CONTROL_DAE_T";
        if (i==1) return "CONTROL_DAE_X";
        if (i==2) return "CONTROL_DAE_Z";
        if (i==3) return "CONTROL_DAE_P";
        if (i==4) return "CONTROL_DAE_U";
        if (i==5) return "CONTROL_DAE_U_INTERP";
        if (i==6) return "CONTROL_DAE_X_MAJOR";
        if (i==7) return "CONTROL_DAE_T0";
        if (i==8) return "CONTROL_DAE_TF";
        break;
    case SCHEME_ControlSimulatorInput:
        if (i==0) return "CONTROLSIMULATOR_X0";
        if (i==1) return "CONTROLSIMULATOR_P";
        if (i==2) return "CONTROLSIMULATOR_U";
        break;
    case SCHEME_DAEInput:
        if (i==0) return "DAE_X";
        if (i==1) return "DAE_Z";
        if (i==2) return "DAE_P";
        if (i==3) return "DAE_T";
        break;
    case SCHEME_DAEOutput:
        if (i==0) return "DAE_ODE";
        if (i==1) return "DAE_ALG";
        if (i==2) return "DAE_QUAD";
        break;
    case SCHEME_RDAEInput:
        if (i==0) return "RDAE_RX";
        if (i==1) return "RDAE_RZ";
        if (i==2) return "RDAE_RP";
        if (i==3) return "RDAE_X";
        if (i==4) return "RDAE_Z";
        if (i==5) return "RDAE_P";
        if (i==6) return "RDAE_T";
        break;
    case SCHEME_RDAEOutput:
        if (i==0) return "RDAE_ODE";
        if (i==1) return "RDAE_ALG";
        if (i==2) return "RDAE_QUAD";
        break;
    case SCHEME_IntegratorInput:
        if (i==0) return "INTEGRATOR_X0";
        if (i==1) return "INTEGRATOR_P";
        if (i==2) return "INTEGRATOR_RX0";
        if (i==3) return "INTEGRATOR_RP";
        break;
    case SCHEME_IntegratorOutput:
        if (i==0) return "INTEGRATOR_XF";
        if (i==1) return "INTEGRATOR_QF";
        if (i==2) return "INTEGRATOR_RXF";
        if (i==3) return "INTEGRATOR_RQF";
        break;
    case SCHEME_LinsolInput:
        if (i==0) return "LINSOL_A";
        if (i==1) return "LINSOL_B";
        if (i==2) return "LINSOL_T";
        break;
    case SCHEME_LinsolOutput:
        if (i==0) return "LINSOL_X";
        break;
    case SCHEME_NLPInput:
        if (i==0) return "NL_X";
        if (i==1) return "NL_P";
        break;
    case SCHEME_NLPOutput:
        if (i==0) return "NL_F";
        if (i==1) return "NL_G";
        break;
    case SCHEME_GradFInput:
        if (i==0) return "GRADF_X";
        if (i==1) return "GRADF_P";
        break;
    case SCHEME_GradFOutput:
        if (i==0) return "GRADF_GRAD";
        if (i==1) return "GRADF_F";
        if (i==2) return "GRADF_G";
        break;
    case SCHEME_JacGInput:
        if (i==0) return "JACG_X";
        if (i==1) return "JACG_P";
        break;
    case SCHEME_JacGOutput:
        if (i==0) return "JACG_JAC";
        if (i==1) return "JACG_F";
        if (i==2) return "JACG_G";
        break;
    case SCHEME_HessLagInput:
        if (i==0) return "HESSLAG_X";
        if (i==1) return "HESSLAG_P";
        if (i==2) return "HESSLAG_LAM_F";
        if (i==3) return "HESSLAG_LAM_G";
        break;
    case SCHEME_HessLagOutput:
        if (i==0) return "HESSLAG_HESS";
        if (i==1) return "HESSLAG_F";
        if (i==2) return "HESSLAG_G";
        if (i==3) return "HESSLAG_GRAD_X";
        if (i==4) return "HESSLAG_GRAD_P";
        break;
    case SCHEME_NlpSolverInput:
        if (i==0) return "NLP_SOLVER_X0";
        if (i==1) return "NLP_SOLVER_P";
        if (i==2) return "NLP_SOLVER_LBX";
        if (i==3) return "NLP_SOLVER_UBX";
        if (i==4) return "NLP_SOLVER_LBG";
        if (i==5) return "NLP_SOLVER_UBG";
        if (i==6) return "NLP_SOLVER_LAM_X0";
        if (i==7) return "NLP_SOLVER_LAM_G0";
        break;
    case SCHEME_NlpSolverOutput:
        if (i==0) return "NLP_SOLVER_X";
        if (i==1) return "NLP_SOLVER_F";
        if (i==2) return "NLP_SOLVER_G";
        if (i==3) return "NLP_SOLVER_LAM_X";
        if (i==4) return "NLP_SOLVER_LAM_G";
        if (i==5) return "NLP_SOLVER_LAM_P";
        break;
    case SCHEME_MayerInput:
        if (i==0) return "MAYER_X";
        if (i==1) return "MAYER_P";
        break;
    case SCHEME_OCPInput:
        if (i==0) return "OCP_LBX";
        if (i==1) return "OCP_UBX";
        if (i==2) return "OCP_X_INIT";
        if (i==3) return "OCP_LBU";
        if (i==4) return "OCP_UBU";
        if (i==5) return "OCP_U_INIT";
        if (i==6) return "OCP_LBP";
        if (i==7) return "OCP_UBP";
        if (i==8) return "OCP_P_INIT";
        if (i==9) return "OCP_LBH";
        if (i==10) return "OCP_UBH";
        if (i==11) return "OCP_LBG";
        if (i==12) return "OCP_UBG";
        break;
    case SCHEME_OCPOutput:
        if (i==0) return "OCP_X_OPT";
        if (i==1) return "OCP_U_OPT";
        if (i==2) return "OCP_P_OPT";
        if (i==3) return "OCP_COST";
        break;
    case SCHEME_QpSolverInput:
        if (i==0) return "QP_SOLVER_H";
        if (i==1) return "QP_SOLVER_G";
        if (i==2) return "QP_SOLVER_A";
        if (i==3) return "QP_SOLVER_LBA";
        if (i==4) return "QP_SOLVER_UBA";
        if (i==5) return "QP_SOLVER_LBX";
        if (i==6) return "QP_SOLVER_UBX";
        if (i==7) return "QP_SOLVER_X0";
        if (i==8) return "QP_SOLVER_LAM_X0";
        break;
    case SCHEME_QpSolverOutput:
        if (i==0) return "QP_SOLVER_X";
        if (i==1) return "QP_SOLVER_COST";
        if (i==2) return "QP_SOLVER_LAM_A";
        if (i==3) return "QP_SOLVER_LAM_X";
        break;
    case SCHEME_QPStruct:
        if (i==0) return "QP_STRUCT_H";
        if (i==1) return "QP_STRUCT_A";
        break;
    case SCHEME_SDPInput:
        if (i==0) return "SDP_SOLVER_F";
        if (i==1) return "SDP_SOLVER_C";
        if (i==2) return "SDP_SOLVER_G";
        if (i==3) return "SDP_SOLVER_A";
        if (i==4) return "SDP_SOLVER_LBA";
        if (i==5) return "SDP_SOLVER_UBA";
        if (i==6) return "SDP_SOLVER_LBX";
        if (i==7) return "SDP_SOLVER_UBX";
        break;
    case SCHEME_SDPOutput:
        if (i==0) return "SDP_SOLVER_X";
        if (i==1) return "SDP_SOLVER_P";
        if (i==2) return "SDP_SOLVER_DUAL";
        if (i==3) return "SDP_SOLVER_COST";
        if (i==4) return "SDP_SOLVER_DUAL_COST";
        if (i==5) return "SDP_SOLVER_LAM_A";
        if (i==6) return "SDP_SOLVER_LAM_X";
        break;
    case SCHEME_SDPStruct:
        if (i==0) return "SDP_STRUCT_F";
        if (i==1) return "SDP_STRUCT_G";
        if (i==2) return "SDP_STRUCT_A";
        break;
    case SCHEME_SOCPInput:
        if (i==0) return "SOCP_SOLVER_G";
        if (i==1) return "SOCP_SOLVER_H";
        if (i==2) return "SOCP_SOLVER_E";
        if (i==3) return "SOCP_SOLVER_F";
        if (i==4) return "SOCP_SOLVER_C";
        if (i==5) return "SOCP_SOLVER_A";
        if (i==6) return "SOCP_SOLVER_LBA";
        if (i==7) return "SOCP_SOLVER_UBA";
        if (i==8) return "SOCP_SOLVER_LBX";
        if (i==9) return "SOCP_SOLVER_UBX";
        break;
    case SCHEME_SOCPOutput:
        if (i==0) return "SOCP_SOLVER_X";
        if (i==1) return "SOCP_SOLVER_COST";
        if (i==2) return "SOCP_SOLVER_LAM_A";
        if (i==3) return "SOCP_SOLVER_LAM_X";
        break;
    case SCHEME_SOCPStruct:
        if (i==0) return "SOCP_STRUCT_G";
        if (i==1) return "SOCP_STRUCT_A";
        break;
    case SCHEME_unknown:
        return "none";
    }
    casadi_error("getSchemeEntryEnumName: supplied number is out of range. Scheme '" << getSchemeName(scheme) << "' has only " << getSchemeSize(scheme) << " entries: " << getSchemeEntryNames(scheme) << ".");
}
Пример #2
0
std::string getSchemeEntryName(InputOutputScheme scheme, int i) {
    switch (scheme) {
    case SCHEME_ACADO_Input:
        if (i==0) return "x_guess";
        if (i==1) return "u_guess";
        if (i==2) return "p_guess";
        if (i==3) return "lbx";
        if (i==4) return "ubx";
        if (i==5) return "lbx0";
        if (i==6) return "ubx0";
        if (i==7) return "lbxf";
        if (i==8) return "ubxf";
        if (i==9) return "lbu";
        if (i==10) return "ubu";
        if (i==11) return "lbp";
        if (i==12) return "ubp";
        if (i==13) return "lbc";
        if (i==14) return "ubc";
        if (i==15) return "lbr";
        if (i==16) return "ubr";
        break;
    case SCHEME_ACADO_Output:
        if (i==0) return "x_opt";
        if (i==1) return "u_opt";
        if (i==2) return "p_opt";
        if (i==3) return "cost";
        break;
    case SCHEME_ACADO_FCN_Input:
        if (i==0) return "t";
        if (i==1) return "xd";
        if (i==2) return "xa";
        if (i==3) return "u";
        if (i==4) return "p";
        if (i==5) return "xdot";
        break;
    case SCHEME_ControlledDAEInput:
        if (i==0) return "t";
        if (i==1) return "x";
        if (i==2) return "z";
        if (i==3) return "p";
        if (i==4) return "u";
        if (i==5) return "u_interp";
        if (i==6) return "x_major";
        if (i==7) return "t0";
        if (i==8) return "tf";
        break;
    case SCHEME_ControlSimulatorInput:
        if (i==0) return "x0";
        if (i==1) return "p";
        if (i==2) return "u";
        break;
    case SCHEME_DAEInput:
        if (i==0) return "x";
        if (i==1) return "z";
        if (i==2) return "p";
        if (i==3) return "t";
        break;
    case SCHEME_DAEOutput:
        if (i==0) return "ode";
        if (i==1) return "alg";
        if (i==2) return "quad";
        break;
    case SCHEME_RDAEInput:
        if (i==0) return "rx";
        if (i==1) return "rz";
        if (i==2) return "rp";
        if (i==3) return "x";
        if (i==4) return "z";
        if (i==5) return "p";
        if (i==6) return "t";
        break;
    case SCHEME_RDAEOutput:
        if (i==0) return "ode";
        if (i==1) return "alg";
        if (i==2) return "quad";
        break;
    case SCHEME_IntegratorInput:
        if (i==0) return "x0";
        if (i==1) return "p";
        if (i==2) return "rx0";
        if (i==3) return "rp";
        break;
    case SCHEME_IntegratorOutput:
        if (i==0) return "xf";
        if (i==1) return "qf";
        if (i==2) return "rxf";
        if (i==3) return "rqf";
        break;
    case SCHEME_LinsolInput:
        if (i==0) return "A";
        if (i==1) return "B";
        if (i==2) return "T";
        break;
    case SCHEME_LinsolOutput:
        if (i==0) return "X";
        break;
    case SCHEME_NLPInput:
        if (i==0) return "x";
        if (i==1) return "p";
        break;
    case SCHEME_NLPOutput:
        if (i==0) return "f";
        if (i==1) return "g";
        break;
    case SCHEME_GradFInput:
        if (i==0) return "x";
        if (i==1) return "p";
        break;
    case SCHEME_GradFOutput:
        if (i==0) return "grad";
        if (i==1) return "f";
        if (i==2) return "g";
        break;
    case SCHEME_JacGInput:
        if (i==0) return "x";
        if (i==1) return "p";
        break;
    case SCHEME_JacGOutput:
        if (i==0) return "jac";
        if (i==1) return "f";
        if (i==2) return "g";
        break;
    case SCHEME_HessLagInput:
        if (i==0) return "x";
        if (i==1) return "p";
        if (i==2) return "lam_f";
        if (i==3) return "lam_g";
        break;
    case SCHEME_HessLagOutput:
        if (i==0) return "hess";
        if (i==1) return "f";
        if (i==2) return "g";
        if (i==3) return "grad_x";
        if (i==4) return "grad_p";
        break;
    case SCHEME_NlpSolverInput:
        if (i==0) return "x0";
        if (i==1) return "p";
        if (i==2) return "lbx";
        if (i==3) return "ubx";
        if (i==4) return "lbg";
        if (i==5) return "ubg";
        if (i==6) return "lam_x0";
        if (i==7) return "lam_g0";
        break;
    case SCHEME_NlpSolverOutput:
        if (i==0) return "x";
        if (i==1) return "f";
        if (i==2) return "g";
        if (i==3) return "lam_x";
        if (i==4) return "lam_g";
        if (i==5) return "lam_p";
        break;
    case SCHEME_MayerInput:
        if (i==0) return "x";
        if (i==1) return "p";
        break;
    case SCHEME_OCPInput:
        if (i==0) return "lbx";
        if (i==1) return "ubx";
        if (i==2) return "x_init";
        if (i==3) return "lbu";
        if (i==4) return "ubu";
        if (i==5) return "u_init";
        if (i==6) return "lbp";
        if (i==7) return "ubp";
        if (i==8) return "p_init";
        if (i==9) return "lbh";
        if (i==10) return "ubh";
        if (i==11) return "lbg";
        if (i==12) return "ubg";
        break;
    case SCHEME_OCPOutput:
        if (i==0) return "x_opt";
        if (i==1) return "u_opt";
        if (i==2) return "p_opt";
        if (i==3) return "cost";
        break;
    case SCHEME_QpSolverInput:
        if (i==0) return "h";
        if (i==1) return "g";
        if (i==2) return "a";
        if (i==3) return "lba";
        if (i==4) return "uba";
        if (i==5) return "lbx";
        if (i==6) return "ubx";
        if (i==7) return "x0";
        if (i==8) return "lam_x0";
        break;
    case SCHEME_QpSolverOutput:
        if (i==0) return "x";
        if (i==1) return "cost";
        if (i==2) return "lam_a";
        if (i==3) return "lam_x";
        break;
    case SCHEME_QPStruct:
        if (i==0) return "h";
        if (i==1) return "a";
        break;
    case SCHEME_SDPInput:
        if (i==0) return "f";
        if (i==1) return "c";
        if (i==2) return "g";
        if (i==3) return "a";
        if (i==4) return "lba";
        if (i==5) return "uba";
        if (i==6) return "lbx";
        if (i==7) return "ubx";
        break;
    case SCHEME_SDPOutput:
        if (i==0) return "x";
        if (i==1) return "p";
        if (i==2) return "dual";
        if (i==3) return "cost";
        if (i==4) return "dual_cost";
        if (i==5) return "lam_a";
        if (i==6) return "lam_x";
        break;
    case SCHEME_SDPStruct:
        if (i==0) return "f";
        if (i==1) return "g";
        if (i==2) return "a";
        break;
    case SCHEME_SOCPInput:
        if (i==0) return "g";
        if (i==1) return "h";
        if (i==2) return "e";
        if (i==3) return "f";
        if (i==4) return "c";
        if (i==5) return "a";
        if (i==6) return "lba";
        if (i==7) return "uba";
        if (i==8) return "lbx";
        if (i==9) return "ubx";
        break;
    case SCHEME_SOCPOutput:
        if (i==0) return "x";
        if (i==1) return "cost";
        if (i==2) return "lam_a";
        if (i==3) return "lam_x";
        break;
    case SCHEME_SOCPStruct:
        if (i==0) return "g";
        if (i==1) return "a";
        break;
    case SCHEME_unknown:
        return "none";
    }
    casadi_error("getSchemeEntryName: supplied number is out of range. Scheme '" << getSchemeName(scheme) << "' has only " << getSchemeSize(scheme) << " entries: " << getSchemeEntryNames(scheme) << ".");
}
Пример #3
0
std::string getSchemeEntryDoc(InputOutputScheme scheme, int i) {
    switch (scheme) {
    case SCHEME_ACADO_Input:
        if (i==0) return "Initial guess for x (default: 0)";
        if (i==1) return "Initial guess for u (default: 0)";
        if (i==2) return "Initial guess for p (default: 0)";
        if (i==3) return "Lower bound on x (default:  -infinity)";
        if (i==4) return "Upper bound on x (default:  infinity)";
        if (i==5) return "Lower bound on x0 (default:  -infinity)";
        if (i==6) return "Upper bound on x0 (default:  infinity)";
        if (i==7) return "Lower bound on xf (default:  -infinity)";
        if (i==8) return "Upper bound on xf (default:  infinity)";
        if (i==9) return "Lower bound on u (default:  -infinity)";
        if (i==10) return "Upper bound on u (default:  infinity)";
        if (i==11) return "Lower bound on p (default:  -infinity)";
        if (i==12) return "Upper bound on p (default:  infinity)";
        if (i==13) return "Lower bound on the path constraint function (default:  -infinity)";
        if (i==14) return "Upper bound on the path constraint function (default:  infinity)";
        if (i==15) return "Lower bound on the initial constraint function (default:  0)";
        if (i==16) return "Upper bound on the initial constraint function (default:  0)";
        break;
    case SCHEME_ACADO_Output:
        if (i==0) return "Optimal states";
        if (i==1) return "Optimal control inputs";
        if (i==2) return "Optimal parameters";
        if (i==3) return "Optimal cost";
        break;
    case SCHEME_ACADO_FCN_Input:
        if (i==0) return "Time";
        if (i==1) return "Differential state";
        if (i==2) return "Algebraic state";
        if (i==3) return "Control input";
        if (i==4) return "Parameter";
        if (i==5) return "Differential state derivative";
        break;
    case SCHEME_ControlledDAEInput:
        if (i==0) return "Global physical time. (1-by-1)";
        if (i==1) return "State vector (dimension nx-by-1). Should have same amount of non-zeros as DAEOutput:DAE_RES";
        if (i==2) return "Algebraic state vector (dimension np-by-1).";
        if (i==3) return "Parameter vector (dimension np-by-1).";
        if (i==4) return "Control vector (dimension nu-by-1).";
        if (i==5) return "Control vector, linearly interpolated (dimension nu-by-1).";
        if (i==6) return "State vector (dimension nx-by-1) at the last major time-step";
        if (i==7) return "Time at start of control interval (1-by-1)";
        if (i==8) return "Time at end of control interval (1-by-1)";
        break;
    case SCHEME_ControlSimulatorInput:
        if (i==0) return "Differential or algebraic state at t0  (dimension nx-by-1)";
        if (i==1) return "Parameters that are fixed over the entire horizon  (dimension np-by-1)";
        if (i==2) return "Parameters that change over the integration intervals (dimension (ns-1)-by-nu)";
        break;
    case SCHEME_DAEInput:
        if (i==0) return "Differential state";
        if (i==1) return "Algebraic state";
        if (i==2) return "Parameter";
        if (i==3) return "Explicit time dependence";
        break;
    case SCHEME_DAEOutput:
        if (i==0) return "Right hand side of the implicit ODE";
        if (i==1) return "Right hand side of algebraic equations";
        if (i==2) return "Right hand side of quadratures equations";
        break;
    case SCHEME_RDAEInput:
        if (i==0) return "Backward differential state";
        if (i==1) return "Backward algebraic state";
        if (i==2) return "Backward  parameter vector";
        if (i==3) return "Forward differential state";
        if (i==4) return "Forward algebraic state";
        if (i==5) return "Parameter vector";
        if (i==6) return "Explicit time dependence";
        break;
    case SCHEME_RDAEOutput:
        if (i==0) return "Right hand side of ODE.";
        if (i==1) return "Right hand side of algebraic equations.";
        if (i==2) return "Right hand side of quadratures.";
        break;
    case SCHEME_IntegratorInput:
        if (i==0) return "Differential state at the initial time";
        if (i==1) return "Parameters";
        if (i==2) return "Backward differential state at the final time";
        if (i==3) return "Backward parameter vector";
        break;
    case SCHEME_IntegratorOutput:
        if (i==0) return "Differential state at the final time";
        if (i==1) return "Quadrature state at the final time";
        if (i==2) return "Backward differential state at the initial time";
        if (i==3) return "Backward quadrature state at the initial time";
        break;
    case SCHEME_LinsolInput:
        if (i==0) return "The square matrix A: sparse, (n x n).";
        if (i==1) return "The right-hand-side matrix b: dense,  (n x m)";
        if (i==2) return "Transpose A?: dense scalar, value 0 or 1,  (1 x 1)";
        break;
    case SCHEME_LinsolOutput:
        if (i==0) return "Solution to the linear system of equations";
        break;
    case SCHEME_NLPInput:
        if (i==0) return "Decision variable";
        if (i==1) return "Fixed parameter";
        break;
    case SCHEME_NLPOutput:
        if (i==0) return "Objective function";
        if (i==1) return "Constraint function";
        break;
    case SCHEME_GradFInput:
        if (i==0) return "Decision variable";
        if (i==1) return "Fixed parameter";
        break;
    case SCHEME_GradFOutput:
        if (i==0) return "Jacobian of the constraints";
        if (i==1) return "Objective function";
        if (i==2) return "Constraint function";
        break;
    case SCHEME_JacGInput:
        if (i==0) return "Decision variable";
        if (i==1) return "Fixed parameter";
        break;
    case SCHEME_JacGOutput:
        if (i==0) return "Jacobian of the constraints";
        if (i==1) return "Objective function";
        if (i==2) return "Constraint function";
        break;
    case SCHEME_HessLagInput:
        if (i==0) return "Decision variable";
        if (i==1) return "Fixed parameter";
        if (i==2) return "Multiplier for f";
        if (i==3) return "Multiplier for g";
        break;
    case SCHEME_HessLagOutput:
        if (i==0) return "Hessian of the Lagrangian";
        if (i==1) return "Objective function";
        if (i==2) return "Constraint function";
        if (i==3) return "Gradient of the Lagrangian with respect to x";
        if (i==4) return "Gradient of the Lagrangian with respect to p";
        break;
    case SCHEME_NlpSolverInput:
        if (i==0) return "Decision variables, initial guess (nx x 1) ";
        if (i==1) return "Value of fixed parameters (np x 1)";
        if (i==2) return "Decision variables lower bound (nx x 1), default -inf";
        if (i==3) return "Decision variables upper bound (nx x 1), default +inf";
        if (i==4) return "Constraints lower bound (ng x 1), default -inf";
        if (i==5) return "Constraints upper bound (ng x 1), default +inf";
        if (i==6) return "Lagrange multipliers for bounds on X, initial guess (nx x 1)";
        if (i==7) return "Lagrange multipliers for bounds on G, initial guess (ng x 1)";
        break;
    case SCHEME_NlpSolverOutput:
        if (i==0) return "Decision variables at the optimal solution (nx x 1)";
        if (i==1) return "Cost function value at the optimal solution (1 x 1)";
        if (i==2) return "Constraints function at the optimal solution (ng x 1)";
        if (i==3) return "Lagrange multipliers for bounds on X at the solution (nx x 1)";
        if (i==4) return "Lagrange multipliers for bounds on G at the solution (ng x 1)";
        if (i==5) return "Lagrange multipliers for bounds on P at the solution (np x 1)";
        break;
    case SCHEME_MayerInput:
        if (i==0) return "States at the end of integration (nx x 1)";
        if (i==1) return "Problem parameters (np x 1)";
        break;
    case SCHEME_OCPInput:
        if (i==0) return "States lower bounds (nx x (ns+1))";
        if (i==1) return "States upper bounds (nx x (ns+1))";
        if (i==2) return "States initial guess (nx x (ns+1))";
        if (i==3) return "Controls lower bounds (nu x ns)";
        if (i==4) return "Controls upper bounds (nu x ns)";
        if (i==5) return "Controls initial guess (nu x ns)";
        if (i==6) return "Parameters lower bounds (np x 1)";
        if (i==7) return "Parameters upper bounds (np x 1)";
        if (i==8) return "Parameters initial guess (np x 1)";
        if (i==9) return "Point constraint lower bound (nh x (ns+1))";
        if (i==10) return "Point constraint upper bound (nh x (ns+1))";
        if (i==11) return "Lower bound for the coupling constraints";
        if (i==12) return "Upper bound for the coupling constraints";
        break;
    case SCHEME_OCPOutput:
        if (i==0) return "Optimal state trajectory";
        if (i==1) return "Optimal control trajectory";
        if (i==2) return "Optimal parameters";
        if (i==3) return "Objective/cost function for optimal solution (1 x 1)";
        break;
    case SCHEME_QpSolverInput:
        if (i==0) return "The square matrix H: sparse, (n x n). Only the lower triangular part is actually used. The matrix is assumed to be symmetrical.";
        if (i==1) return "The vector g: dense,  (n x 1)";
        if (i==2) return "The matrix A: sparse, (nc x n) - product with x must be dense.";
        if (i==3) return "dense, (nc x 1)";
        if (i==4) return "dense, (nc x 1)";
        if (i==5) return "dense, (n x 1)";
        if (i==6) return "dense, (n x 1)";
        if (i==7) return "dense, (n x 1)";
        if (i==8) return "dense";
        break;
    case SCHEME_QpSolverOutput:
        if (i==0) return "The primal solution";
        if (i==1) return "The optimal cost";
        if (i==2) return "The dual solution corresponding to linear bounds";
        if (i==3) return "The dual solution corresponding to simple bounds";
        break;
    case SCHEME_QPStruct:
        if (i==0) return "The square matrix H: sparse, (n x n). Only the lower triangular part is actually used. The matrix is assumed to be symmetrical.";
        if (i==1) return "The matrix A: sparse, (nc x n) - product with x must be dense.";
        break;
    case SCHEME_SDPInput:
        if (i==0) return "The vertical stack of all matrices F_i: ( nm x m)";
        if (i==1) return "The vector c: ( n x 1)";
        if (i==2) return "The matrix G: ( m x m)";
        if (i==3) return "The matrix A: ( nc x n)";
        if (i==4) return "Lower bounds on Ax ( nc x 1)";
        if (i==5) return "Upper bounds on Ax  ( nc x 1)";
        if (i==6) return "Lower bounds on x ( n x 1 )";
        if (i==7) return "Upper bounds on x ( n x 1 )";
        break;
    case SCHEME_SDPOutput:
        if (i==0) return "The primal solution (n x 1) - may be used as initial guess";
        if (i==1) return "The solution P (m x m) - may be used as initial guess";
        if (i==2) return "The dual solution (m x m) - may be used as initial guess";
        if (i==3) return "The primal optimal cost (1 x 1)";
        if (i==4) return "The dual optimal cost (1 x 1)";
        if (i==5) return "The dual solution corresponding to the linear constraints  (nc x 1)";
        if (i==6) return "The dual solution corresponding to simple bounds  (n x 1)";
        break;
    case SCHEME_SDPStruct:
        if (i==0) return "The vertical stack of all matrices F_i: ( nm x m)";
        if (i==1) return "The matrix G: ( m x m)";
        if (i==2) return "The matrix A: ( nc x n)";
        break;
    case SCHEME_SOCPInput:
        if (i==0) return "The vertical stack of all matrices Gi: ( N x n)";
        if (i==1) return "The vertical stack of all vectors hi: ( N x 1)";
        if (i==2) return "The vertical stack of all vectors ei: ( nm x 1)";
        if (i==3) return "The vertical stack of all scalars fi: ( m x 1)";
        if (i==4) return "The vector c: ( n x 1)";
        if (i==5) return "The matrix A: ( nc x n)";
        if (i==6) return "Lower bounds on Ax ( nc x 1)";
        if (i==7) return "Upper bounds on Ax  ( nc x 1)";
        if (i==8) return "Lower bounds on x ( n x 1 )";
        if (i==9) return "Upper bounds on x ( n x 1 )";
        break;
    case SCHEME_SOCPOutput:
        if (i==0) return "The primal solution (n x 1)";
        if (i==1) return "The primal optimal cost (1 x 1)";
        if (i==2) return "The dual solution corresponding to the linear constraints  (nc x 1)";
        if (i==3) return "The dual solution corresponding to simple bounds  (n x 1)";
        break;
    case SCHEME_SOCPStruct:
        if (i==0) return "The vertical stack of all matrices Gi: ( N x n)";
        if (i==1) return "The matrix A: ( nc x n)";
        break;
    case SCHEME_unknown:
        return "none";
    }
    casadi_error("getSchemeEntryDoc: supplied number is out of range. Scheme '" << getSchemeName(scheme) << "' has only " << getSchemeSize(scheme) << " entries: " << getSchemeEntryNames(scheme) << ".");
}
Пример #4
0
 int IOSchemeBuiltinInternal::size() const {
   return getSchemeSize(scheme_);
 }