mymath.hxx
Go to the documentation of this file.00001
00002
00003 #ifndef CH_MATRIX_CLASSES_MYMATH_HXX
00004 #define CH_MATRIX_CLASSES_MYMATH_HXX
00005
00015 namespace CH_Matrix_Classes {
00016
00020
00022 inline double abs(double d)
00023 {
00024 return (d>=0)?d:-d;
00025 }
00026
00028 inline int abs(int d)
00029 {
00030 return (d>=0)?d:-d;
00031 }
00032
00034 inline long abs(long d)
00035 {
00036 return (d>=0)?d:-d;
00037 }
00038
00040 inline double max(double a,double b)
00041 {
00042 return (a>=b)?a:b;
00043 }
00044
00046 inline double min(double a,double b)
00047 {
00048 return (a<=b)?a:b;
00049 }
00050
00052 inline int max(int a,int b)
00053 {
00054 return (a>=b)?a:b;
00055 }
00056
00058 inline int min(int a,int b)
00059 {
00060 return (a<=b)?a:b;
00061 }
00062
00064 inline long max(long a,long b)
00065 {
00066 return (a>=b)?a:b;
00067 }
00068
00070 inline long min(long a,long b)
00071 {
00072 return (a<=b)?a:b;
00073 }
00074
00076 inline void swap(double& a,double& b)
00077 {
00078 double h=a; a=b; b=h;
00079 }
00080
00082 inline void swap(long& a,long& b)
00083 {
00084 long h=a; a=b; b=h;
00085 }
00086
00088 inline void swap(int& a,int& b)
00089 {
00090 int h=a; a=b; b=h;
00091 }
00092
00094 inline int sqr(int a)
00095 {
00096 return a*a;
00097 }
00098
00100 inline long sqr(long a)
00101 {
00102 return a*a;
00103 }
00104
00106 inline double sqr(double a)
00107 {
00108 return a*a;
00109 }
00110
00112 inline int sign(int a)
00113 {
00114 if (a>0) return 1;
00115 if (a<0) return -1;
00116 return 0;
00117 }
00118
00120 inline long sign(long a)
00121 {
00122 if (a>0) return 1;
00123 if (a<0) return -1;
00124 return 0;
00125 }
00126
00128 inline double sign(double a)
00129 {
00130 return (a>=0)?1.:-1.;
00131 }
00132
00134 inline double sign(double a,double tol)
00135 {
00136 if (a>tol) return 1.;
00137 if (a<-tol) return -1.;
00138 return 0.;
00139 }
00140
00141
00142
00144 inline double d_sign(double a,double b)
00145 {
00146 return (((b>=0)&&(a>=0))||((b<0)&&(a<0)))?a:-a;
00147 }
00148
00150
00151 }
00152
00153 #endif
00154