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