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