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