double saulZeroKernel::dot(vec &v, size_t j){ Map<VectorXd> vm(v.data(),_n,1); double vmNorm = vm.stableNorm(); double angle = vm.dot(_data.col(j))/( vmNorm * _dataNorm(j)); angle = (angle > 1)? 1:angle; angle = (angle <-1)? -1:angle; return calc(angle,_l); }
inline void sort(vec & a){ std::sort(a.data(), a.data()+a.size()); }
inline std::string repr(vec<T, N> v) { return repr(v.data(), v.size()); }
double polyKernel::dot(vec &v, size_t j){ Map<VectorXd> vm(v.data(),_n,1); return pow(vm.dot(_data.col(j))+_c,_degree); }