| 167 | #endif |
| 168 | |
| 169 | class ComparatorNormalizedL2 : public Comparator { |
| 170 | public: |
| 171 | #ifdef NGT_SHARED_MEMORY_ALLOCATOR |
| 172 | ComparatorNormalizedL2(size_t d, SharedMemoryAllocator &a) : Comparator(d, a) {} |
| 173 | double operator()(Object &objecta, Object &objectb) { |
| 174 | return PrimitiveComparator::compareNormalizedL2((OBJECT_TYPE *)&objecta[0], (OBJECT_TYPE *)&objectb[0], |
| 175 | dimension); |
| 176 | } |
| 177 | double operator()(Object &objecta, PersistentObject &objectb) { |
| 178 | return PrimitiveComparator::compareNormalizedL2((OBJECT_TYPE *)&objecta[0], |
| 179 | (OBJECT_TYPE *)&objectb.at(0, allocator), dimension); |
| 180 | } |
| 181 | double operator()(PersistentObject &objecta, PersistentObject &objectb) { |
| 182 | return PrimitiveComparator::compareNormalizedL2((OBJECT_TYPE *)&objecta.at(0, allocator), |
| 183 | (OBJECT_TYPE *)&objectb.at(0, allocator), dimension); |
| 184 | } |
| 185 | #else |
| 186 | ComparatorNormalizedL2(size_t d) : Comparator(d) {} |
| 187 | double operator()(Object &objecta, Object &objectb) { |
| 188 | return PrimitiveComparator::compareNormalizedL2((OBJECT_TYPE *)&objecta[0], (OBJECT_TYPE *)&objectb[0], |
| 189 | dimension); |
| 190 | } |
| 191 | #endif |
| 192 | }; |
| 193 | |
| 194 | class ComparatorHammingDistance : public Comparator { |
| 195 | public: |
nothing calls this directly
no outgoing calls
no test coverage detected