The OPTQP procedure defines a macro variable named _OROPTQP_. This variable contains a character string that indicates the
status of the procedure. The various terms of the variable are interpreted as follows.

STATUS

indicates the solver status at termination. It can take one of the following values:
 OK

The procedure terminated normally.
 SYNTAX_ERROR

Incorrect syntax was used.
 DATA_ERROR

The input data were inconsistent.
 OUT_OF_MEMORY

Insufficient memory was allocated to the procedure.
 IO_ERROR

A problem occurred in reading or writing data.
 ERROR

The status cannot be classified into any of the preceding categories.

ALGORITHM

indicates the algorithm that produced the solution data in the macro variable. This term only appears when STATUS=OK. It can
take the following value:
 IP

The interior point algorithm produced the solution data.

SOLUTION_STATUS

indicates the solution status at termination. It can take one of the following values:
 OPTIMAL

The solution is optimal.
 CONDITIONAL_OPTIMAL

The optimality of the solution cannot be proven.
 INFEASIBLE

The problem is infeasible.
 UNBOUNDED

The problem is unbounded.
 INFEASIBLE_OR_UNBOUNDED

The problem is infeasible or unbounded.
 ITERATION_LIMIT_REACHED

The maximum allowable number of iterations was reached.
 TIME_LIMIT_REACHED

The maximum time limit was reached.
 FAILED

The solver failed to converge, possibly due to numerical issues.
 NONCONVEX

The quadratic matrix is nonconvex (minimization).
 NONCONCAVE

The quadratic matrix is nonconcave (maximization).

OBJECTIVE

indicates the objective value obtained by the solver at termination.

PRIMAL_INFEASIBILITY

indicates the (relative) infeasibility of the primal constraints at the solution. See the section Interior Point Algorithm: Overview for details.

DUAL_INFEASIBILITY

indicates the (relative) infeasibility of the dual constraints at the solution. See the section Interior Point Algorithm: Overview for details.

BOUND_INFEASIBILITY

indicates the (relative) violation by the solution of the lower or upper bounds (or both). See the section Interior Point Algorithm: Overview for details.

DUALITY_GAP

indicates the (relative) duality gap. See the section Interior Point Algorithm: Overview for details.

COMPLEMENTARITY

indicates the (absolute) complementarity at the optimal solution. See the section Interior Point Algorithm: Overview for details.

ITERATIONS

indicates the number of iterations required to solve the problem.

PRESOLVE_TIME

indicates the time taken for preprocessing (seconds).

SOLUTION_TIME

indicates the time (in seconds) taken to solve the problem, including preprocessing time.
Note: The time that is reported in PRESOLVE_TIME and SOLUTION_TIME is either CPU time or real time. The type is determined by
the TIMETYPE= option.
Copyright © SAS Institute Inc. All Rights Reserved.