Fix forgotten typenames in header. GCC didn't notice but clang did

This commit is contained in:
rexy712 2022-02-18 17:03:32 -08:00
parent ae068a8688
commit 3a2e1c27a4

View File

@ -24,19 +24,19 @@
namespace math::detail{
template<typename T, size_t R>
template<Scalar T, size_t R>
constexpr mat_ref_obj<T,R>::mat_ref_obj(T* d, size_type i):
m_data(d+(i*R)){}
template<typename T, size_t R>
template<Scalar T, size_t R>
constexpr T& mat_ref_obj<T,R>::operator[](size_type i){
return m_data[i];
}
template<typename T, size_t R>
template<Scalar T, size_t R>
constexpr const T& mat_ref_obj<T,R>::operator[](size_type i)const{
return m_data[i];
}
template<typename T, size_t R>
template<Scalar T, size_t R>
constexpr T determinate_helper<T,R>::perform(const matrix<T,R,R>& m){
T sum = 0;
T op = 1;
@ -57,25 +57,25 @@ namespace math::detail{
}
return sum;
}
template<typename T>
template<Scalar T>
constexpr T determinate_helper<T,3>::perform(const matrix<T,3,3>& m){
return (m.get(0) * ((m.get(4) * m.get(8)) - (m.get(5) * m.get(7))) -
m.get(1) * ((m.get(3) * m.get(8)) - (m.get(5) * m.get(6))) +
m.get(2) * ((m.get(3) * m.get(7)) - (m.get(4) * m.get(6))));
}
template<typename T>
template<Scalar T>
constexpr T determinate_helper<T,2>::perform(const matrix<T,2,2>& m){
return m.get(0) * m.get(3) - m.get(1) * m.get(2);
}
template<typename T>
template<Scalar T>
constexpr matrix<T,2,2> inverse_helper<T,2>::perform(const matrix<T,2,2>& m){
T det = m.determinate();
if(!det)
return matrix<T,2,2>(zero_initialize);
return matrix<T,2,2>(m.get(3) / det, -(m.get(1)) / det, -(m.get(2)) / det, m.get(0) / det);
}
template<typename T>
template<Scalar T>
constexpr matrix<T,3,3> inverse_helper<T,3>::perform(const matrix<T,3,3>& m){
T det = m.determinate();
if(!det)
@ -90,7 +90,7 @@ namespace math::detail{
-((m.get(0) * m.get(7)) - (m.get(1) * m.get(6))) / det,
((m.get(0) * m.get(4)) - (m.get(1) * m.get(3))) / det);
}
template<typename T>
template<Scalar T>
constexpr matrix<T,4,4> inverse_helper<T,4>::perform(const matrix<T,4,4>& m){
//barely over 50 lines, can be made slightly shorter by making the return statement unreadable
T det = m.determinate();