To reduce mixed namespaces and allow writing max(a, b, c, d, e) instead of std::max(std::max(std::max(std::max(a, b), c), d), e).
The two argument functions are only applied after non-template functions in simd.h did not match (according to C++ standard for resolving overloaded functions). The tail recursive functions should be able to call min and max written for specific types that have intrinsic functions.
To reduce mixed namespaces and allow writing max(a, b, c, d, e) instead of std::max(std::max(std::max(std::max(a, b), c), d), e).
The two argument functions are only applied after non-template functions in simd.h did not match (according to C++ standard for resolving overloaded functions). The tail recursive functions should be able to call min and max written for specific types that have intrinsic functions.