From 96de1c0bef42ebfdc75b64907f883d2dbb6c7df8 Mon Sep 17 00:00:00 2001 From: conrad Date: Tue, 22 Mar 2022 17:18:23 +1000 Subject: [PATCH] simplifications --- include/armadillo_bits/op_inv_spd_bones.hpp | 8 -------- include/armadillo_bits/op_inv_spd_meat.hpp | 18 +++++++++++------- 2 files changed, 11 insertions(+), 15 deletions(-) diff --git a/include/armadillo_bits/op_inv_spd_bones.hpp b/include/armadillo_bits/op_inv_spd_bones.hpp index c4f0feff..3e17a9c3 100644 --- a/include/armadillo_bits/op_inv_spd_bones.hpp +++ b/include/armadillo_bits/op_inv_spd_bones.hpp @@ -40,14 +40,6 @@ class op_inv_spd_full { public: - template - struct pos - { - static constexpr uword n2 = row + col*2; - static constexpr uword n3 = row + col*3; - static constexpr uword n4 = row + col*4; - }; - template inline static void apply(Mat& out, const Op& in); diff --git a/include/armadillo_bits/op_inv_spd_meat.hpp b/include/armadillo_bits/op_inv_spd_meat.hpp index fa703d54..29562453 100644 --- a/include/armadillo_bits/op_inv_spd_meat.hpp +++ b/include/armadillo_bits/op_inv_spd_meat.hpp @@ -203,9 +203,9 @@ op_inv_spd_full::apply_tiny_2x2(Mat& X) eT* Xm = X.memptr(); - const T a = access::tmp_real(Xm[pos<0,0>::n2]); - const T c = access::tmp_real(Xm[pos<1,0>::n2]); - const T d = access::tmp_real(Xm[pos<1,1>::n2]); + T a = access::tmp_real(Xm[0]); + T c = access::tmp_real(Xm[1]); + T d = access::tmp_real(Xm[3]); const T det_val = (a*d - c*c); @@ -218,10 +218,14 @@ op_inv_spd_full::apply_tiny_2x2(Mat& X) // NOTE: since det_min is positive, this also checks whether det_val is positive if((det_val < det_min) || (det_val > det_max)) { return false; } - Xm[pos<0,0>::n2] = d / det_val; - Xm[pos<0,1>::n2] = -c / det_val; - Xm[pos<1,0>::n2] = -c / det_val; - Xm[pos<1,1>::n2] = a / det_val; + d /= det_val; + c /= det_val; + a /= det_val; + + Xm[0] = d; + Xm[1] = -c; + Xm[2] = -c; + Xm[3] = a; return true; }