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