00001 #ifndef Impala_Core_Array_Equals_h
00002 #define Impala_Core_Array_Equals_h
00003
00004 #include "Core/Array/Pattern/PatBinaryPixOp.h"
00005 #include "Core/Array/Trait/BpoEqual.h"
00006 #include "Core/Array/TestEqual.h"
00007
00009 namespace Impala
00010 {
00011 namespace Core
00012 {
00013 namespace Array
00014 {
00015
00018 template<class DstArrayT, class Src1ArrayT, class Src2ArrayT>
00019 inline void
00020 Equals(DstArrayT*& dst, Src1ArrayT* src1, Src2ArrayT* src2)
00021 {
00022 Trait::BpoEqual<DstArrayT, Src1ArrayT, Src2ArrayT> bpo;
00023 Pattern::PatBinaryPixOp(dst, src1, src2, bpo);
00024 }
00025
00027 template<class ArrayT1, class ArrayT2>
00028 inline bool
00029 Equals(ArrayT1* src1, ArrayT2* src2, double tolerance)
00030 {
00031 ArrayT1* temp = 0;
00032 bool equal = TestEqual(temp, src1, src2, tolerance);
00033 delete temp;
00034 return equal;
00035 }
00036
00038 template<class ArrayT1, class ArrayT2>
00039 inline bool
00040 Equals(ArrayT1* src1, ArrayT2* src2)
00041 {
00042 return Equals(src1, src2, 0);
00043 }
00044
00045
00046 }
00047 }
00048 }
00049
00050 #endif