00001 #ifndef Impala_Core_Array_Element_E2Sup_h
00002 #define Impala_Core_Array_Element_E2Sup_h
00003
00004 #include "Core/Array/Element/ArithTypes.h"
00005
00006 namespace Impala
00007 {
00008 namespace Core
00009 {
00010 namespace Array
00011 {
00012 namespace Element
00013 {
00014
00015
00016 inline Int32
00017 E2Sup(Int32 v1, Int32 v2)
00018 {
00019 return (v1 > v2) ? v1 : v2;
00020 }
00021
00022 inline Real64
00023 E2Sup(Real64 v1, Real64 v2)
00024 {
00025 return (v1 > v2) ? v1 : v2;
00026 }
00027
00028 inline Vec3Int32
00029 E2Sup(const Vec3Int32& v1, const Vec3Int32& v2)
00030 {
00031 return Vec3Int32((v1.X() > v2.X()) ? v1.X() : v2.X(),
00032 (v1.Y() > v2.Y()) ? v1.Y() : v2.Y(),
00033 (v1.Z() > v2.Z()) ? v1.Z() : v2.Z());
00034 }
00035
00036 inline Vec3Real64
00037 E2Sup(const Vec3Real64& v1, const Vec3Real64& v2)
00038 {
00039 return Vec3Real64((v1.X() > v2.X()) ? v1.X() : v2.X(),
00040 (v1.Y() > v2.Y()) ? v1.Y() : v2.Y(),
00041 (v1.Z() > v2.Z()) ? v1.Z() : v2.Z());
00042 }
00043
00044 inline Complex64
00045 E2Sup(const Complex64& v1, const Complex64& v2)
00046 {
00047 return Complex64((v1.X() > v2.X()) ? v1.X() : v2.X(),
00048 (v1.Y() > v2.Y()) ? v1.Y() : v2.Y());
00049 }
00050
00051 }
00052 }
00053 }
00054 }
00055
00056 #endif