34#define OS_PRODUCT 1010
48#define OS_VARIABLE 6001
50#define OS_ALLDIFF 7016
52#define OS_MATRIX_DETERMINANT 8001
53#define OS_MATRIX_TRACE 8002
54#define OS_MATRIX_TO_SCALAR 8003
57#define OS_MATRIX_PLUS 8501
58#define OS_MATRIX_SUM 8502
59#define OS_MATRIX_MINUS 8503
60#define OS_MATRIX_NEGATE 8504
61#define OS_MATRIX_TIMES 8505
62#define OS_MATRIX_PRODUCT 8506
63#define OS_MATRIX_INVERSE 8510
64#define OS_MATRIX_TRANSPOSE 8515
65#define OS_MATRIX_SCALARTIMES 8518
66#define OS_MATRIX_DOTTIMES 8520
67#define OS_IDENTITY_MATRIX 8536
68#define OS_MATRIX_LOWERTRIANGLE 8537
69#define OS_MATRIX_UPPERTRIANGLE 8538
70#define OS_MATRIX_DIAGONAL 8539
71#define OS_DIAGONAL_MATRIX_FROM_VECTOR 8540
72#define OS_MATRIX_REFERENCE 8541
73#define OS_MATRIX_SUBMATRIX_AT 8544
74#define OS_MATRIX_VAR 8601
75#define OS_MATRIX_OBJ 8602
76#define OS_MATRIX_CON 8603
80#define OS_E_VALUE exp(1.0)
81#define OS_PI_VALUE 2*asin(1.0)
83#define OS_SCHEMA_VERSION "2.0"
89#define OS_NEAR_EQUAL 1e-2
93const double OSDBL_MAX = std::numeric_limits<double>::max();
94const int OSINT_MAX = std::numeric_limits<int>::max();
97extern "C" bool OSIsnan(
double x);
99extern "C" double OSNaN();
121#define DEFAULT_OUTPUT_LEVEL ENUM_OUTPUT_LEVEL_error
664 if (type1 == type2)
return type1;
int returnConeType(std::string type)
@ ENUM_NL_EXPR_SHAPE_general
@ ENUM_NL_EXPR_SHAPE_convex
@ ENUM_NL_EXPR_SHAPE_constant
@ ENUM_NL_EXPR_SHAPE_linear
@ ENUM_NL_EXPR_SHAPE_quadratic
bool verifyMatrixSymmetry(std::string symmetry)
std::string returnConReferenceValueTypeString(ENUM_CONREFERENCE_VALUETYPE valueType)
@ ENUM_TIMECATEGORY_optimization
@ ENUM_TIMECATEGORY_other
@ ENUM_TIMECATEGORY_preprocessing
@ ENUM_TIMECATEGORY_postprocessing
@ ENUM_TIMECATEGORY_input
@ ENUM_TIMECATEGORY_total
@ ENUM_TIMECATEGORY_output
bool verifyBasisStatus(std::string status)
ENUM_SOLUTION_SUBSTATUSTYPE
@ ENUM_SOLUTION_SUBSTATUSTYPE_stoppedByLimit
@ ENUM_SOLUTION_SUBSTATUSTYPE_other
@ ENUM_SOLUTION_SUBSTATUSTYPE_stoppedByBounds
std::string OSgetVersionInfo()
int returnTransportType(std::string type)
ENUM_GENERAL_RESULT_STATUS
@ ENUM_GENERAL_RESULT_STATUS_normal
@ ENUM_GENERAL_RESULT_STATUS_error
@ ENUM_GENERAL_RESULT_STATUS_warning
bool verifyMatrixConstructorType(std::string type)
int returnVarType(char vt)
bool verifySolutionSubstatusType(std::string type)
@ ENUM_JOB_STATUS_finished
@ ENUM_JOB_STATUS_waiting
@ ENUM_JOB_STATUS_running
@ ENUM_JOB_STATUS_unknown
bool verifyMatrixType(std::string type)
int returnTimeUnit(std::string unit)
int returnGeneralResultStatus(std::string status)
bool verifyVarType(char vt)
int returnServiceType(std::string type)
int returnStorageUnit(std::string unit)
bool verifyTransportType(std::string type)
bool verifySolutionStatus(std::string status)
std::string returnExprShapeString(ENUM_NL_EXPR_SHAPE shape)
int returnCPUSpeedUnit(std::string unit)
std::string returnMatrixSymmetryString(ENUM_MATRIX_SYMMETRY symmetry)
int returnLocationType(std::string type)
bool verifyCPUSpeedUnit(std::string unit)
int returnNlExprShape(std::string shape)
ENUM_COMBINE_ARRAYS
An enum to streamline set() methods of vectors.
@ ENUM_COMBINE_ARRAYS_replace
@ ENUM_COMBINE_ARRAYS_throw
@ ENUM_COMBINE_ARRAYS_merge
@ ENUM_COMBINE_ARRAYS_ignore
bool verifyLocationType(std::string type)
int returnSystemCurrentState(std::string status)
int returnBasisStatus(std::string status)
bool verifyNlExprShape(std::string shape)
bool verifyConReferenceValueType(std::string valueType)
@ ENUM_LOCATIONTYPE_local
@ ENUM_CPUSPEEDUNIT_flops
@ ENUM_CPUSPEEDUNIT_gigaflops
@ ENUM_CPUSPEEDUNIT_megaflops
@ ENUM_CPUSPEEDUNIT_megahertz
@ ENUM_CPUSPEEDUNIT_teraflops
@ ENUM_CPUSPEEDUNIT_gigahertz
@ ENUM_CPUSPEEDUNIT_hertz
@ ENUM_CPUSPEEDUNIT_kiloflops
@ ENUM_CPUSPEEDUNIT_petaflops
@ ENUM_CPUSPEEDUNIT_kilohertz
@ ENUM_CPUSPEEDUNIT_terahertz
bool verifyConeType(std::string type)
std::string returnMatrixTypeString(ENUM_MATRIX_TYPE type)
int returnSolutionSubstatusType(std::string type)
int returnMatrixType(std::string type)
@ ENUM_STORAGEUNIT_petabyte
@ ENUM_STORAGEUNIT_gigabyte
@ ENUM_STORAGEUNIT_zettabyte
@ ENUM_STORAGEUNIT_megabyte
@ ENUM_STORAGEUNIT_kilobyte
@ ENUM_STORAGEUNIT_yottabyte
@ ENUM_STORAGEUNIT_terabyte
@ ENUM_STORAGEUNIT_exabyte
bool verifyJobStatus(std::string status)
int returnMatrixSymmetry(std::string symmetry)
bool verifySystemCurrentState(std::string status)
@ ENUM_CONE_TYPE_rotatedNormed
@ ENUM_CONE_TYPE_nonnegative
@ ENUM_CONE_TYPE_quadratic
@ ENUM_CONE_TYPE_nonnegativePolynomials
@ ENUM_CONE_TYPE_nonpositive
@ ENUM_CONE_TYPE_rotatedQuadratic
@ ENUM_CONE_TYPE_intersection
@ ENUM_CONE_TYPE_copositiveMatrices
@ ENUM_CONE_TYPE_sumOfSquaresPolynomials
@ ENUM_CONE_TYPE_semidefinite
@ ENUM_CONE_TYPE_polyhedral
@ ENUM_CONE_TYPE_completelyPositiveMatrices
@ ENUM_CONE_TYPE_hyperbolicity
ENUM_SYSTEM_CURRENT_STATE
@ ENUM_SYSTEM_CURRENT_STATE_busyButAccepting
@ ENUM_SYSTEM_CURRENT_STATE_busy
@ ENUM_SYSTEM_CURRENT_STATE_idle
@ ENUM_SYSTEM_CURRENT_STATE_noResponse
@ ENUM_SYSTEM_CURRENT_STATE_idleButNotAccepting
ENUM_OUTPUT_LEVEL
Enumeration for the different verbosity levels that can be used in producing output.
@ ENUM_OUTPUT_LEVEL_detailed_trace
@ ENUM_OUTPUT_LEVEL_debug
@ ENUM_OUTPUT_LEVEL_trace
@ ENUM_OUTPUT_LEVEL_error
@ ENUM_OUTPUT_LEVEL_summary
@ ENUM_OUTPUT_LEVEL_NUMBER_OF_LEVELS
@ ENUM_OUTPUT_LEVEL_always
@ ENUM_OUTPUT_LEVEL_warning
std::string returnBasisStatusString(ENUM_BASIS_STATUS status)
bool OSIsnan(double x)
checks whether a given double is NaN
ENUM_MATRIX_TYPE
An enum to track the many different types of values that a matrix can contain Note that these types a...
@ ENUM_MATRIX_TYPE_linear
@ ENUM_MATRIX_TYPE_varReference
@ ENUM_MATRIX_TYPE_string
@ ENUM_MATRIX_TYPE_constant
@ ENUM_MATRIX_TYPE_conReference
@ ENUM_MATRIX_TYPE_general
@ ENUM_MATRIX_TYPE_unknown
@ ENUM_MATRIX_TYPE_mixedRowReference
@ ENUM_MATRIX_TYPE_quadratic
@ ENUM_MATRIX_TYPE_objReference
bool verifyTimeUnit(std::string unit)
bool verifyTimeType(std::string type)
bool verifyGeneralResultStatus(std::string status)
@ ENUM_MATRIX_SYMMETRY_upper
@ ENUM_MATRIX_SYMMETRY_lower
@ ENUM_MATRIX_SYMMETRY_skewLower
@ ENUM_MATRIX_SYMMETRY_skewUpper
@ ENUM_MATRIX_SYMMETRY_none
@ ENUM_MATRIX_SYMMETRY_HermitianLower
@ ENUM_MATRIX_SYMMETRY_HermitianUpper
@ ENUM_SERVICE_TYPE_solver
@ ENUM_SERVICE_TYPE_registry
@ ENUM_SERVICE_TYPE_modeler
@ ENUM_SERVICE_TYPE_simulations
@ ENUM_SERVICE_TYPE_analyzer
@ ENUM_SERVICE_TYPE_scheduler
@ ENUM_SERVICE_TYPE_agent
int returnTimeType(std::string type)
ENUM_MATRIX_TYPE mergeMatrixType(ENUM_MATRIX_TYPE type1, ENUM_MATRIX_TYPE type2)
A function to merge two matrix types so we can infer the type of a matrix recursively.
double OSNaN()
returns the value for NaN used in OS
@ ENUM_PATHPAIR_output_dir
@ ENUM_PATHPAIR_input_dir
@ ENUM_PATHPAIR_output_file
@ ENUM_PATHPAIR_input_file
int returnMatrixConstructorType(std::string cType)
int returnJobStatus(std::string status)
int returnSolutionStatus(std::string status)
ENUM_MATRIX_CONSTRUCTOR_TYPE
@ ENUM_MATRIX_CONSTRUCTOR_TYPE_mixedRowRefElements
@ ENUM_MATRIX_CONSTRUCTOR_TYPE_generalElements
@ ENUM_MATRIX_CONSTRUCTOR_TYPE_varRefElements
@ ENUM_MATRIX_CONSTRUCTOR_TYPE_transformation
@ ENUM_MATRIX_CONSTRUCTOR_TYPE_objRefElements
@ ENUM_MATRIX_CONSTRUCTOR_TYPE_conRefElements
@ ENUM_MATRIX_CONSTRUCTOR_TYPE_stringValuedElements
@ ENUM_MATRIX_CONSTRUCTOR_TYPE_unknown
@ ENUM_MATRIX_CONSTRUCTOR_TYPE_blocks
@ ENUM_MATRIX_CONSTRUCTOR_TYPE_linearElements
@ ENUM_MATRIX_CONSTRUCTOR_TYPE_block
@ ENUM_MATRIX_CONSTRUCTOR_TYPE_matrix
@ ENUM_MATRIX_CONSTRUCTOR_TYPE_constantElements
@ ENUM_MATRIX_CONSTRUCTOR_TYPE_baseMatrix
@ ENUM_TIMETYPE_elapsedTime
@ ENUM_SOLUTION_STATUS_bestSoFar
@ ENUM_SOLUTION_STATUS_unbounded
@ ENUM_SOLUTION_STATUS_locallyOptimal
@ ENUM_SOLUTION_STATUS_feasible
@ ENUM_SOLUTION_STATUS_other
@ ENUM_SOLUTION_STATUS_optimal
@ ENUM_SOLUTION_STATUS_error
@ ENUM_SOLUTION_STATUS_unsure
@ ENUM_SOLUTION_STATUS_infeasible
@ ENUM_SOLUTION_STATUS_globallyOptimal
@ ENUM_TIMEUNIT_millisecond
ENUM_BASIS_STATUS
Enumeration for the different states that can be used in representating a basis The last state,...
@ ENUM_BASIS_STATUS_isFree
@ ENUM_BASIS_STATUS_unknown
@ ENUM_BASIS_STATUS_basic
@ ENUM_BASIS_STATUS_NUMBER_OF_STATES
@ ENUM_BASIS_STATUS_atLower
@ ENUM_BASIS_STATUS_atEquality
@ ENUM_BASIS_STATUS_superbasic
@ ENUM_BASIS_STATUS_atUpper
bool verifyServiceType(std::string type)
ENUM_OUTPUT_AREA
Enumeration for the different areas that can produce output.
@ ENUM_OUTPUT_AREA_OSMatrix
@ ENUM_OUTPUT_AREA_NUMBER_OF_AREAS
@ ENUM_OUTPUT_AREA_OSoLwriter
@ ENUM_OUTPUT_AREA_OSrL_parser
@ ENUM_OUTPUT_AREA_OSGeneral
@ ENUM_OUTPUT_AREA_OSSolverInterfaces
@ ENUM_OUTPUT_AREA_OSOption
@ ENUM_OUTPUT_AREA_OSAgent
@ ENUM_OUTPUT_AREA_OSResult
@ ENUM_OUTPUT_AREA_OSiLwriter
@ ENUM_OUTPUT_AREA_OSUtils
@ ENUM_OUTPUT_AREA_OSrLwriter
@ ENUM_OUTPUT_AREA_Command_line_parser
@ ENUM_OUTPUT_AREA_OSiL_parser
@ ENUM_OUTPUT_AREA_OSoL_parser
@ ENUM_OUTPUT_AREA_OSInstance
@ ENUM_OUTPUT_AREA_OSModelInterfaces
@ ENUM_PROBLEM_COMPONENT_objectives
@ ENUM_PROBLEM_COMPONENT_constraints
@ ENUM_PROBLEM_COMPONENT_variables
ENUM_CONREFERENCE_VALUETYPE
An enum to track the type of value contained in a reference to a constraint.
@ ENUM_CONREFERENCE_VALUETYPE_shortage
@ ENUM_CONREFERENCE_VALUETYPE_surplus
@ ENUM_CONREFERENCE_VALUETYPE_status
@ ENUM_CONREFERENCE_VALUETYPE_value
bool verifyTimeCategory(std::string category)
int returnConReferenceValueType(std::string valueType)
@ ENUM_TRANSPORT_TYPE_http
@ ENUM_TRANSPORT_TYPE_smtp
@ ENUM_TRANSPORT_TYPE_osp
@ ENUM_TRANSPORT_TYPE_other
@ ENUM_TRANSPORT_TYPE_ftp
bool verifyStorageUnit(std::string unit)
@ ENUM_VARTYPE_continuous
@ ENUM_VARTYPE_semicontinuous
@ ENUM_VARTYPE_semiinteger
int returnTimeCategory(std::string category)