00001 #ifndef VECTORUTILITIES 00002 #define VECTORUTILITIES 00003 00013 #include <iostream> 00014 00016 void set_to_zero( double v[], int n, int stride ); 00017 00022 struct IotrVectorDisplayFormat { 00023 IotrVectorDisplayFormat( const char * str ) 00024 : formatString( str ), mod(1), indexOffset(0), separator(0), 00025 lineSeparator(0), prefix(0), suffix(0), terminalSuffix(0) {} 00026 IotrVectorDisplayFormat() 00027 : formatString( 0 ), mod(1), indexOffset(0), separator(0), 00028 lineSeparator(0), prefix(0), suffix(0), terminalSuffix(0) {} 00029 const char * formatString; 00030 int mod; 00031 int indexOffset; 00032 const char * separator; 00033 const char * lineSeparator; 00034 const char * prefix; 00035 const char * suffix; 00036 const char * terminalSuffix; 00037 }; 00040 void writef_to_stream( const double v[], int n, int stride, std::ostream& out, 00041 const char * formatString ); 00042 00043 void writef_to_stream( const double v[], int n, int stride, std::ostream& out, 00044 IotrVectorDisplayFormat & form ); 00045 00046 void writef_to_stream( const int v[], int n, int stride, std::ostream& out, 00047 const char * formatString ); 00048 00049 void writef_to_stream( const int v[], int n, int stride, std::ostream& out, 00050 IotrVectorDisplayFormat & form ); 00051 00053 void set_to_constant( double v[], int n, int stride, double c ); 00055 void add_constant( double v[], int n, int stride, double c ); 00057 double stepbound( const double v[], int n, int incv, 00058 const double s[], int incs, double max ); 00061 double stepbound( const double v[], int n, int incv, 00062 const double s[], int incs, 00063 const double b[], int nb, int incb, 00064 const int ib[], int nib, 00065 const double u[], int nu, int incu, 00066 const int iu[], int niu, 00067 double max ); 00070 void make_sufficiently_positive( double x[], int n, int incx, double atol ); 00071 00072 00088 void make_interior( double x[], int n, int incx, 00089 const double xlow[], int nxlow, 00090 int incxlow, const int ixlow[], int nixlow, 00091 const double xupp[], int nxupp, 00092 int incupp, const int ixupp[], int nixupp, 00093 double rtol, double atol ); 00094 00095 void invert_nonzero( double v[], int length, int stride ); 00096 00098 double max_violation( double v[], int length, int stride, double viol ); 00099 00100 #endif