00001
00002
00003
00004
00005
00006
00007
00008
00009 #ifndef __IPUTILS_HPP__
00010 #define __IPUTILS_HPP__
00011
00012
00013 #include "IpTypes.hpp"
00014 #include "IpDebug.hpp"
00015
00016 namespace Ipopt
00017 {
00018
00019 inline Index Max(Index a, Index b)
00020 {
00021 return ((a) > (b) ? (a) : (b));
00022 }
00023
00024 inline Index Max(Index a, Index b, Index c)
00025 {
00026 Index max = Max(a,b);
00027 max = Max(max, c);
00028 return max;
00029 }
00030
00031 inline Index Max(Index a, Index b, Index c, Index d)
00032 {
00033 Index max = Max(a, b, c);
00034 max = Max(max, d);
00035 return max;
00036 }
00037
00038 inline Index Min(Index a, Index b)
00039 {
00040 return ((a) < (b) ? (a) : (b));
00041 }
00042
00043 inline Index Min(Index a, Index b, Index c)
00044 {
00045 Index min = Min(a,b);
00046 min = Min(min, c);
00047 return min;
00048 }
00049
00050 inline Index Min(Index a, Index b, Index c, Index d)
00051 {
00052 Index min = Min(a, b, c);
00053 min = Min(min, d);
00054 return min;
00055 }
00056
00058
00059 inline Number Max(Number a, Number b)
00060 {
00061 return ((a) > (b) ? (a) : (b));
00062 }
00063
00064 inline Number Max(Number a, Number b, Number c)
00065 {
00066 Number max = Max(a,b);
00067 max = Max(max, c);
00068 return max;
00069 }
00070
00071 inline Number Max(Number a, Number b, Number c, Number d)
00072 {
00073 Number max = Max(a, b, c);
00074 max = Max(max, d);
00075 return max;
00076 }
00077
00078 inline Number Min(Number a, Number b)
00079 {
00080 return ((a) < (b) ? (a) : (b));
00081 }
00082
00083 inline Number Min(Number a, Number b, Number c)
00084 {
00085 Number min = Min(a,b);
00086 min = Min(min, c);
00087 return min;
00088 }
00089
00090 inline Number Min(Number a, Number b, Number c, Number d)
00091 {
00092 Number min = Min(a, b, c);
00093 min = Min(min, d);
00094 return min;
00095 }
00096
00099 bool IsFiniteNumber(Number val);
00100
00102 Number IpRandom01();
00103
00105 void IpResetRandom01();
00106
00107 }
00108
00109 #endif