00001 #ifndef Impala_Core_Array_Element_E1Max_h
00002 #define Impala_Core_Array_Element_E1Max_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 E1Max(Int32 v)
00018 {
00019 return v;
00020 }
00021
00022 inline Real64
00023 E1Max(Real64 v)
00024 {
00025 return v;
00026 }
00027
00028 inline Int32
00029 E1Max(const Vec3Int32& v)
00030 {
00031 return (v.X() > v.Y()) ? ((v.X() > v.Z()) ? v.X() : v.Z())
00032 : ((v.Y() > v.Z()) ? v.Y() : v.Z());
00033 }
00034
00035 inline Real64
00036 E1Max(const Vec3Real64& v)
00037 {
00038 return (v.X() > v.Y()) ? ((v.X() > v.Z()) ? v.X() : v.Z())
00039 : ((v.Y() > v.Z()) ? v.Y() : v.Z());
00040 }
00041
00042 inline Real64
00043 E1Max(const Complex64& v)
00044 {
00045 return (v.X() > v.Y()) ? v.X() : v.Y();
00046 }
00047
00048 }
00049 }
00050 }
00051 }
00052
00053 #endif