The compute_vec_equal functor incorrectly compares vectors. Based on the code, it appears that it should be using the [] operator to compare the values, but it is only using the x field.
for (length_t i = 0; i < L; ++i)
b = b && detail::compute_equal<T, std::numeric_limits<T>::is_iec559>::call(v1.x, v2.x);
The compute_vec_equal functor incorrectly compares vectors. Based on the code, it appears that it should be using the [] operator to compare the values, but it is only using the x field.