vtf-logo

min_max.h

Go to the documentation of this file.
00001 // -*- C++ -*-
00002 
00008 #if !defined(__ads_min_max_h__)
00009 #define __ads_min_max_h__
00010 
00011 #include "../defs.h"
00012 
00013 // Include this to get std::min and std::max.
00014 #include <algorithm>
00015 
00016 BEGIN_NAMESPACE_ADS
00017 
00018 //-----------------------------------------------------------------------------
00020 // @{
00021 
00029 template<typename T>
00030 inline 
00031 const T&
00032 min(const T& a, const T& b, const T& c) {
00033   return std::min(a, std::min(b, c));
00034 }
00035 
00040 template<typename T>
00041 inline 
00042 const T&
00043 min(const T& a, const T& b, const T& c, const T& d) {
00044   return std::min(a, ads::min(b, c, d));
00045 }
00046 
00051 template<typename T>
00052 inline 
00053 const T&
00054 min(const T& a, const T& b, const T& c, const T& d, const T& e) {
00055   return std::min(a, ads::min(b, c, d, e));
00056 }
00057 
00065 template<typename T>
00066 inline 
00067 const T&
00068 max(const T& a, const T& b, const T& c) {
00069   return std::max(a, std::max(b, c));
00070 }
00071 
00076 template<typename T>
00077 inline 
00078 const T&
00079 max(const T& a, const T& b, const T& c, const T& d) {
00080   return std::max(a, ads::max(b, c, d));
00081 }
00082 
00087 template<typename T>
00088 inline 
00089 const T&
00090 max(const T& a, const T& b, const T& c, const T& d, const T& e) {
00091   return std::max(a, ads::max(b, c, d, e));
00092 }
00093 
00102 template<typename T, typename Compare>
00103 inline 
00104 const T&
00105 min(const T& a, const T& b, const T& c, Compare comp) {
00106   return std::min(a, std::min(b, c, comp), comp);
00107 }
00108 
00114 template<typename T, typename Compare>
00115 inline 
00116 const T&
00117 min(const T& a, const T& b, const T& c, const T& d, Compare comp) {
00118   return std::min(a, ads::min(b, c, d, comp), comp);
00119 }
00120 
00126 template<typename T, typename Compare>
00127 inline 
00128 const T&
00129 min(const T& a, const T& b, const T& c, const T& d, const T& e, 
00130     Compare comp) {
00131   return std::min(a, ads::min(b, c, d, e, comp), comp);
00132 }
00133 
00142 template<typename T, typename Compare>
00143 inline 
00144 const T&
00145 max(const T& a, const T& b, const T& c, Compare comp) {
00146   return std::max(a, std::max(b, c, comp), comp);
00147 }
00148 
00154 template<typename T, typename Compare>
00155 inline 
00156 const T&
00157 max(const T& a, const T& b, const T& c, const T& d, Compare comp) {
00158   return std::max(a, ads::max(b, c, d, comp), comp);
00159 }
00160 
00166 template<typename T, typename Compare>
00167 inline 
00168 const T&
00169 max(const T& a, const T& b, const T& c, const T& d, const T& e, 
00170     Compare comp) {
00171   return std::max(a, ads::max(b, c, d, e, comp), comp);
00172 }
00173 
00174 // @}
00175 
00176 END_NAMESPACE_ADS
00177 
00178 #endif

Generated on Fri Aug 24 12:55:26 2007 for Algorithms and Data Structures Package by  doxygen 1.4.7