Cbc
trunk
|
00001 /* $Id$ */ 00002 /* 00003 Copyright (C) 2006, International Business Machines Corporation and others. 00004 All Rights Reserved. 00005 00006 This code is licensed under the terms of the Eclipse Public License (EPL). 00007 */ 00008 00009 #ifndef AmplInterface_H 00010 #define AmplInterface_H 00011 typedef struct { 00012 int numberRows; 00013 int numberColumns; 00014 int numberBinary; 00015 int numberIntegers; /* non binary */ 00016 int numberSos; 00017 int numberElements; 00018 int numberArguments; 00019 int problemStatus; 00020 double direction; 00021 double offset; 00022 double objValue; 00023 double * objective; 00024 double * rowLower; 00025 double * rowUpper; 00026 double * columnLower; 00027 double * columnUpper; 00028 int * starts; 00029 int * rows; 00030 double * elements; 00031 double * primalSolution; 00032 double * dualSolution; 00033 int * columnStatus; 00034 int * rowStatus; 00035 int * priorities; 00036 int * branchDirection; 00037 double * pseudoDown; 00038 double * pseudoUp; 00039 char * sosType; 00040 int * sosPriority; 00041 int * sosStart; 00042 int * sosIndices; 00043 double * sosReference; 00044 int * cut; 00045 int * special; 00046 char ** arguments; 00047 char buffer[300]; 00048 int logLevel; 00049 int nonLinear; 00050 } ampl_info; 00051 #ifdef __cplusplus 00052 extern "C" { 00053 #endif 00054 /* return nonzero if bad */ 00055 int readAmpl(ampl_info * info, int argc, char ** argv, 00056 void ** coinModel); 00057 /* frees some input arrays */ 00058 void freeArrays1(ampl_info * info); 00059 /* frees rest */ 00060 void freeArrays2(ampl_info * info); 00061 /* frees fake arguments */ 00062 void freeArgs(ampl_info * info); 00063 /* writes ampl stuff */ 00064 void writeAmpl(ampl_info * info); 00065 /* objective precision */ 00066 int ampl_obj_prec(); 00067 #ifdef __cplusplus 00068 } 00069 #endif 00070 #endif