CommonOps.hxx
Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022 #ifndef __COMMONOPS__
00023 #define __COMMONOPS__
00024
00025 namespace CLAM
00026 {
00027
00028 template < typename DataType >
00029 class Multiply
00030 {
00031 public:
00032
00033 static const DataType IdentityElement;
00034
00035 template <typename DataType2>
00036 DataType operator()( DataType op1, DataType2 op2 )
00037 {
00038 return op1 * op2;
00039 }
00040 };
00041
00042 template <typename DataType>
00043 const DataType Multiply<DataType>::IdentityElement = 1;
00044
00045 template< typename DataType >
00046 class Add
00047 {
00048 public:
00049
00050 static const DataType IdentityElement;
00051
00052 template <typename DataType2>
00053 DataType operator() ( DataType op1, DataType2 op2 )
00054 {
00055 return op1 + op2;
00056 }
00057 };
00058
00059 template< typename DataType >
00060 const DataType Add<DataType>::IdentityElement = 0;
00061
00062
00063 }
00064
00065 #endif // CommonOps.hxx
00066