6 #ifndef TAPKEE_METHOD_TRAITS_H_
7 #define TAPKEE_METHOD_TRAITS_H_
21 #define METHOD_TRAIT(X,kernel_needed,distance_needed,features_needed) \
22 template <> const bool MethodTraits<X>::needs_kernel = kernel_needed; \
23 template <> const bool MethodTraits<X>::needs_distance = distance_needed; \
24 template <> const bool MethodTraits<X>::needs_features = features_needed \
26 #define METHOD_THAT_NEEDS_ONLY_KERNEL_IS(X) METHOD_TRAIT(X,true,false,false)
27 #define METHOD_THAT_NEEDS_ONLY_DISTANCE_IS(X) METHOD_TRAIT(X,false,true,false)
28 #define METHOD_THAT_NEEDS_KERNEL_AND_FEATURES_IS(X) METHOD_TRAIT(X,true,false,true)
29 #define METHOD_THAT_NEEDS_DISTANCE_AND_FEATURES_IS(X) METHOD_TRAIT(X,false,true,true)
30 #define METHOD_THAT_NEEDS_ONLY_FEATURES_IS(X) METHOD_TRAIT(X,false,false,true)
31 #define METHOD_THAT_NEEDS_NOTHING_IS(X) METHOD_TRAIT(X,false,false,false)
Traits used to obtain information about dimension reduction methods compile-time. ...
static const bool needs_kernel
static const bool needs_features
static const bool needs_distance