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