From 4af55d5abbadd28fbcbfaf32f028c865c4e8f8ed Mon Sep 17 00:00:00 2001 From: conrad Date: Fri, 25 Jul 2025 16:26:29 +1000 Subject: [PATCH] simplifications --- include/armadillo_bits/op_all_bones.hpp | 5 +-- include/armadillo_bits/op_any_bones.hpp | 5 +-- include/armadillo_bits/op_chi2rnd_bones.hpp | 8 +--- include/armadillo_bits/op_chol_bones.hpp | 4 +- include/armadillo_bits/op_circshift_bones.hpp | 8 +--- include/armadillo_bits/op_clamp_bones.hpp | 8 +--- .../armadillo_bits/op_col_as_mat_bones.hpp | 4 +- include/armadillo_bits/op_cond_bones.hpp | 4 +- include/armadillo_bits/op_cor_bones.hpp | 4 +- include/armadillo_bits/op_cov_bones.hpp | 4 +- include/armadillo_bits/op_cumprod_bones.hpp | 8 +--- include/armadillo_bits/op_cumsum_bones.hpp | 8 +--- include/armadillo_bits/op_cx_scalar_bones.hpp | 24 +++-------- include/armadillo_bits/op_det_bones.hpp | 4 +- include/armadillo_bits/op_diagmat_bones.hpp | 8 +--- include/armadillo_bits/op_diagvec_bones.hpp | 8 +--- include/armadillo_bits/op_diff_bones.hpp | 8 +--- include/armadillo_bits/op_dot_bones.hpp | 16 ++------ include/armadillo_bits/op_dotext_bones.hpp | 5 +-- include/armadillo_bits/op_expmat_bones.hpp | 8 +--- include/armadillo_bits/op_fft_bones.hpp | 12 ++---- include/armadillo_bits/op_find_bones.hpp | 24 +++-------- .../armadillo_bits/op_find_unique_bones.hpp | 4 +- include/armadillo_bits/op_flip_bones.hpp | 8 +--- include/armadillo_bits/op_hist_bones.hpp | 4 +- include/armadillo_bits/op_htrans_bones.hpp | 8 +--- include/armadillo_bits/op_index_max_bones.hpp | 4 +- include/armadillo_bits/op_index_min_bones.hpp | 4 +- include/armadillo_bits/op_inv_gen_bones.hpp | 12 ++---- include/armadillo_bits/op_inv_spd_bones.hpp | 12 ++---- include/armadillo_bits/op_log_det_bones.hpp | 8 +--- include/armadillo_bits/op_logmat_bones.hpp | 12 ++---- include/armadillo_bits/op_max_bones.hpp | 4 +- include/armadillo_bits/op_mean_bones.hpp | 4 +- include/armadillo_bits/op_median_bones.hpp | 4 +- include/armadillo_bits/op_min_bones.hpp | 4 +- include/armadillo_bits/op_misc_bones.hpp | 20 +++------- include/armadillo_bits/op_nonzeros_bones.hpp | 4 +- include/armadillo_bits/op_norm2est_bones.hpp | 4 +- include/armadillo_bits/op_norm_bones.hpp | 4 +- include/armadillo_bits/op_normalise_bones.hpp | 8 +--- include/armadillo_bits/op_omit_bones.hpp | 8 +--- include/armadillo_bits/op_orth_null_bones.hpp | 8 +--- include/armadillo_bits/op_pinv_bones.hpp | 8 +--- include/armadillo_bits/op_powmat_bones.hpp | 8 +--- include/armadillo_bits/op_princomp_bones.hpp | 4 +- include/armadillo_bits/op_prod_bones.hpp | 4 +- include/armadillo_bits/op_range_bones.hpp | 4 +- include/armadillo_bits/op_rank_bones.hpp | 4 +- include/armadillo_bits/op_rcond_bones.hpp | 4 +- .../armadillo_bits/op_relational_bones.hpp | 40 +++++-------------- include/armadillo_bits/op_repelem_bones.hpp | 4 +- include/armadillo_bits/op_repmat_bones.hpp | 4 +- include/armadillo_bits/op_reshape_bones.hpp | 4 +- include/armadillo_bits/op_resize_bones.hpp | 4 +- include/armadillo_bits/op_reverse_bones.hpp | 8 +--- include/armadillo_bits/op_roots_bones.hpp | 4 +- .../armadillo_bits/op_row_as_mat_bones.hpp | 4 +- include/armadillo_bits/op_shuffle_bones.hpp | 8 +--- include/armadillo_bits/op_sort_bones.hpp | 8 +--- .../armadillo_bits/op_sort_index_bones.hpp | 4 +- .../armadillo_bits/op_sp_as_dense_bones.hpp | 4 +- .../armadillo_bits/op_sp_diagvec_bones.hpp | 4 +- include/armadillo_bits/op_sp_max_bones.hpp | 4 +- include/armadillo_bits/op_sp_mean_bones.hpp | 4 +- include/armadillo_bits/op_sp_min_bones.hpp | 4 +- include/armadillo_bits/op_sp_minus_bones.hpp | 8 +--- .../armadillo_bits/op_sp_nonzeros_bones.hpp | 4 +- include/armadillo_bits/op_sp_plus_bones.hpp | 4 +- include/armadillo_bits/op_sp_stddev_bones.hpp | 4 +- include/armadillo_bits/op_sp_sum_bones.hpp | 4 +- include/armadillo_bits/op_sp_var_bones.hpp | 4 +- .../armadillo_bits/op_sp_vecnorm_bones.hpp | 8 +--- include/armadillo_bits/op_sqrtmat_bones.hpp | 12 ++---- include/armadillo_bits/op_stddev_bones.hpp | 4 +- include/armadillo_bits/op_strans_bones.hpp | 8 +--- include/armadillo_bits/op_sum_bones.hpp | 4 +- include/armadillo_bits/op_symmat_bones.hpp | 16 ++------ include/armadillo_bits/op_toeplitz_bones.hpp | 8 +--- include/armadillo_bits/op_trimat_bones.hpp | 12 ++---- include/armadillo_bits/op_unique_bones.hpp | 8 ++-- include/armadillo_bits/op_var_bones.hpp | 4 +- include/armadillo_bits/op_vecnorm_bones.hpp | 8 +--- include/armadillo_bits/op_vectorise_bones.hpp | 16 ++------ include/armadillo_bits/op_wishrnd_bones.hpp | 8 +--- 85 files changed, 157 insertions(+), 470 deletions(-) diff --git a/include/armadillo_bits/op_all_bones.hpp b/include/armadillo_bits/op_all_bones.hpp index 6ebea6ba..330b3c88 100644 --- a/include/armadillo_bits/op_all_bones.hpp +++ b/include/armadillo_bits/op_all_bones.hpp @@ -22,12 +22,9 @@ -class op_all +struct op_all : public traits_op_xvec { - public: - - template static inline bool all_vec_helper(const Base& X); diff --git a/include/armadillo_bits/op_any_bones.hpp b/include/armadillo_bits/op_any_bones.hpp index 6156dd48..6e2cbe5f 100644 --- a/include/armadillo_bits/op_any_bones.hpp +++ b/include/armadillo_bits/op_any_bones.hpp @@ -22,12 +22,9 @@ -class op_any +struct op_any : public traits_op_xvec { - public: - - template static inline bool any_vec_helper(const Base& X); diff --git a/include/armadillo_bits/op_chi2rnd_bones.hpp b/include/armadillo_bits/op_chi2rnd_bones.hpp index 540bdfbd..228133fa 100644 --- a/include/armadillo_bits/op_chi2rnd_bones.hpp +++ b/include/armadillo_bits/op_chi2rnd_bones.hpp @@ -20,11 +20,9 @@ //! @{ -class op_chi2rnd +struct op_chi2rnd : public traits_op_passthru { - public: - template inline static void apply(Mat& out, const Op& in); @@ -38,10 +36,8 @@ class op_chi2rnd template -class op_chi2rnd_varying_df +struct op_chi2rnd_varying_df { - public: - arma_aligned std::mt19937_64 motor; inline ~op_chi2rnd_varying_df(); diff --git a/include/armadillo_bits/op_chol_bones.hpp b/include/armadillo_bits/op_chol_bones.hpp index e3b3a9c0..431a62c7 100644 --- a/include/armadillo_bits/op_chol_bones.hpp +++ b/include/armadillo_bits/op_chol_bones.hpp @@ -21,11 +21,9 @@ -class op_chol +struct op_chol : public traits_op_default { - public: - template inline static void apply(Mat& out, const Op& X); diff --git a/include/armadillo_bits/op_circshift_bones.hpp b/include/armadillo_bits/op_circshift_bones.hpp index 8f233cc0..6ab64229 100644 --- a/include/armadillo_bits/op_circshift_bones.hpp +++ b/include/armadillo_bits/op_circshift_bones.hpp @@ -22,21 +22,17 @@ -class op_circshift_vec +struct op_circshift_vec : public traits_op_passthru { - public: - template inline static void apply(Mat& out, const Op& in); }; -class op_circshift +struct op_circshift : public traits_op_default { - public: - template inline static void apply_noalias(Mat& out, const Mat& X, const uword len, const uword neg, const uword dim); }; diff --git a/include/armadillo_bits/op_clamp_bones.hpp b/include/armadillo_bits/op_clamp_bones.hpp index 89e53424..3953d13b 100644 --- a/include/armadillo_bits/op_clamp_bones.hpp +++ b/include/armadillo_bits/op_clamp_bones.hpp @@ -22,11 +22,9 @@ -class op_clamp +struct op_clamp : public traits_op_passthru { - public: - // matrices template inline static void apply(Mat& out, const mtOp& in); @@ -46,11 +44,9 @@ class op_clamp -class op_clamp_cx +struct op_clamp_cx : public traits_op_passthru { - public: - // matrices template inline static void apply(Mat& out, const mtOp& in); diff --git a/include/armadillo_bits/op_col_as_mat_bones.hpp b/include/armadillo_bits/op_col_as_mat_bones.hpp index 6e653ea4..fceaeeae 100644 --- a/include/armadillo_bits/op_col_as_mat_bones.hpp +++ b/include/armadillo_bits/op_col_as_mat_bones.hpp @@ -20,11 +20,9 @@ //! @{ -class op_col_as_mat +struct op_col_as_mat : public traits_op_default { - public: - template inline static void apply(Mat& out, const CubeToMatOp& expr); }; diff --git a/include/armadillo_bits/op_cond_bones.hpp b/include/armadillo_bits/op_cond_bones.hpp index b7648987..65c7ec25 100644 --- a/include/armadillo_bits/op_cond_bones.hpp +++ b/include/armadillo_bits/op_cond_bones.hpp @@ -20,11 +20,9 @@ //! @{ -class op_cond +struct op_cond : public traits_op_default { - public: - template static inline typename T1::pod_type apply(const Base& X); template static inline typename get_pod_type::result apply_diag(const Mat& A); diff --git a/include/armadillo_bits/op_cor_bones.hpp b/include/armadillo_bits/op_cor_bones.hpp index 7a506c3a..bb3b6f90 100644 --- a/include/armadillo_bits/op_cor_bones.hpp +++ b/include/armadillo_bits/op_cor_bones.hpp @@ -22,11 +22,9 @@ -class op_cor +struct op_cor : public traits_op_default { - public: - template inline static void apply(Mat& out, const Op< T1, op_cor>& in); template inline static void apply(Mat& out, const Op< Op, op_cor>& in); }; diff --git a/include/armadillo_bits/op_cov_bones.hpp b/include/armadillo_bits/op_cov_bones.hpp index 5de43ba8..1c16880b 100644 --- a/include/armadillo_bits/op_cov_bones.hpp +++ b/include/armadillo_bits/op_cov_bones.hpp @@ -22,11 +22,9 @@ -class op_cov +struct op_cov : public traits_op_default { - public: - template inline static void apply(Mat& out, const Op< T1, op_cov>& in); template inline static void apply(Mat& out, const Op< Op, op_cov>& in); }; diff --git a/include/armadillo_bits/op_cumprod_bones.hpp b/include/armadillo_bits/op_cumprod_bones.hpp index ce3b686f..c5515577 100644 --- a/include/armadillo_bits/op_cumprod_bones.hpp +++ b/include/armadillo_bits/op_cumprod_bones.hpp @@ -21,11 +21,9 @@ -class op_cumprod +struct op_cumprod : public traits_op_default { - public: - template inline static void apply_noalias(Mat& out, const Mat& X, const uword dim); @@ -35,11 +33,9 @@ class op_cumprod -class op_cumprod_vec +struct op_cumprod_vec : public traits_op_passthru { - public: - template inline static void apply(Mat& out, const Op& in); }; diff --git a/include/armadillo_bits/op_cumsum_bones.hpp b/include/armadillo_bits/op_cumsum_bones.hpp index 007d3f36..3f820f4f 100644 --- a/include/armadillo_bits/op_cumsum_bones.hpp +++ b/include/armadillo_bits/op_cumsum_bones.hpp @@ -21,11 +21,9 @@ -class op_cumsum +struct op_cumsum : public traits_op_default { - public: - template inline static void apply_noalias(Mat& out, const Mat& X, const uword dim); @@ -35,11 +33,9 @@ class op_cumsum -class op_cumsum_vec +struct op_cumsum_vec : public traits_op_passthru { - public: - template inline static void apply(Mat& out, const Op& in); }; diff --git a/include/armadillo_bits/op_cx_scalar_bones.hpp b/include/armadillo_bits/op_cx_scalar_bones.hpp index c1c28477..5a5e5404 100644 --- a/include/armadillo_bits/op_cx_scalar_bones.hpp +++ b/include/armadillo_bits/op_cx_scalar_bones.hpp @@ -21,11 +21,9 @@ -class op_cx_scalar_times +struct op_cx_scalar_times : public traits_op_passthru { - public: - template inline static void apply @@ -45,11 +43,9 @@ class op_cx_scalar_times -class op_cx_scalar_plus +struct op_cx_scalar_plus : public traits_op_passthru { - public: - template inline static void apply @@ -69,11 +65,9 @@ class op_cx_scalar_plus -class op_cx_scalar_minus_pre +struct op_cx_scalar_minus_pre : public traits_op_passthru { - public: - template inline static void apply @@ -93,11 +87,9 @@ class op_cx_scalar_minus_pre -class op_cx_scalar_minus_post +struct op_cx_scalar_minus_post : public traits_op_passthru { - public: - template inline static void apply @@ -117,11 +109,9 @@ class op_cx_scalar_minus_post -class op_cx_scalar_div_pre +struct op_cx_scalar_div_pre : public traits_op_passthru { - public: - template inline static void apply @@ -141,11 +131,9 @@ class op_cx_scalar_div_pre -class op_cx_scalar_div_post +struct op_cx_scalar_div_post : public traits_op_passthru { - public: - template inline static void apply diff --git a/include/armadillo_bits/op_det_bones.hpp b/include/armadillo_bits/op_det_bones.hpp index 59575faa..c0a73d87 100644 --- a/include/armadillo_bits/op_det_bones.hpp +++ b/include/armadillo_bits/op_det_bones.hpp @@ -21,11 +21,9 @@ -class op_det +struct op_det : public traits_op_default { - public: - template struct pos { diff --git a/include/armadillo_bits/op_diagmat_bones.hpp b/include/armadillo_bits/op_diagmat_bones.hpp index 50f7dc7b..403393f0 100644 --- a/include/armadillo_bits/op_diagmat_bones.hpp +++ b/include/armadillo_bits/op_diagmat_bones.hpp @@ -21,11 +21,9 @@ -class op_diagmat +struct op_diagmat : public traits_op_default { - public: - template inline static void apply(Mat& out, const Op& X); @@ -44,11 +42,9 @@ class op_diagmat -class op_diagmat2 +struct op_diagmat2 : public traits_op_default { - public: - template inline static void apply(Mat& out, const Op& X); diff --git a/include/armadillo_bits/op_diagvec_bones.hpp b/include/armadillo_bits/op_diagvec_bones.hpp index 4c00edfb..7085faee 100644 --- a/include/armadillo_bits/op_diagvec_bones.hpp +++ b/include/armadillo_bits/op_diagvec_bones.hpp @@ -21,11 +21,9 @@ -class op_diagvec +struct op_diagvec : public traits_op_col { - public: - template inline static void apply(Mat& out, const Op& X); @@ -41,11 +39,9 @@ class op_diagvec -class op_diagvec2 +struct op_diagvec2 : public traits_op_col { - public: - template inline static void apply(Mat& out, const Op& X); diff --git a/include/armadillo_bits/op_diff_bones.hpp b/include/armadillo_bits/op_diff_bones.hpp index a6844abc..bdae78d9 100644 --- a/include/armadillo_bits/op_diff_bones.hpp +++ b/include/armadillo_bits/op_diff_bones.hpp @@ -21,11 +21,9 @@ -class op_diff +struct op_diff : public traits_op_default { - public: - template inline static void apply_noalias(Mat& out, const Mat& X, const uword k, const uword dim); @@ -35,11 +33,9 @@ class op_diff -class op_diff_vec +struct op_diff_vec : public traits_op_passthru { - public: - template inline static void apply(Mat& out, const Op& in); }; diff --git a/include/armadillo_bits/op_dot_bones.hpp b/include/armadillo_bits/op_dot_bones.hpp index 864b8c06..bf45f136 100644 --- a/include/armadillo_bits/op_dot_bones.hpp +++ b/include/armadillo_bits/op_dot_bones.hpp @@ -22,11 +22,9 @@ //! \brief //! dot product operation -class op_dot +struct op_dot : public traits_op_default { - public: - template arma_hot inline static typename arma_not_cx::result @@ -81,11 +79,9 @@ class op_dot //! \brief //! normalised dot product operation -class op_norm_dot +struct op_norm_dot : public traits_op_default { - public: - template arma_hot inline static typename T1::elem_type apply(const T1& X, const T2& Y); }; @@ -95,11 +91,9 @@ class op_norm_dot //! \brief //! complex conjugate dot product operation -class op_cdot +struct op_cdot : public traits_op_default { - public: - template arma_hot inline static eT direct_cdot_generic(const uword n_elem, const eT* const A, const eT* const B); @@ -121,11 +115,9 @@ class op_cdot -class op_dot_mixed +struct op_dot_mixed : public traits_op_default { - public: - template arma_hot inline static typename promote_type::result diff --git a/include/armadillo_bits/op_dotext_bones.hpp b/include/armadillo_bits/op_dotext_bones.hpp index dc3b7b81..ab95c6a4 100644 --- a/include/armadillo_bits/op_dotext_bones.hpp +++ b/include/armadillo_bits/op_dotext_bones.hpp @@ -21,12 +21,9 @@ -class op_dotext +struct op_dotext : public traits_op_default { - public: - - template inline static eT direct_rowvec_mat_colvec (const eT* A_mem, const Mat& B, const eT* C_mem); diff --git a/include/armadillo_bits/op_expmat_bones.hpp b/include/armadillo_bits/op_expmat_bones.hpp index 5b5cb150..7587043c 100644 --- a/include/armadillo_bits/op_expmat_bones.hpp +++ b/include/armadillo_bits/op_expmat_bones.hpp @@ -22,11 +22,9 @@ -class op_expmat +struct op_expmat : public traits_op_default { - public: - template inline static void apply(Mat& out, const Op& expr); @@ -36,11 +34,9 @@ class op_expmat -class op_expmat_sym +struct op_expmat_sym : public traits_op_default { - public: - template inline static void apply(Mat& out, const Op& in); diff --git a/include/armadillo_bits/op_fft_bones.hpp b/include/armadillo_bits/op_fft_bones.hpp index b0dcbfdf..1aa0fdbe 100644 --- a/include/armadillo_bits/op_fft_bones.hpp +++ b/include/armadillo_bits/op_fft_bones.hpp @@ -22,22 +22,18 @@ -class op_fft_real +struct op_fft_real : public traits_op_passthru { - public: - template inline static void apply( Mat< std::complex >& out, const mtOp,T1,op_fft_real>& in ); }; -class op_fft_cx +struct op_fft_cx : public traits_op_passthru { - public: - template inline static void apply( Mat& out, const Op& in ); @@ -47,11 +43,9 @@ class op_fft_cx -class op_ifft_cx +struct op_ifft_cx : public traits_op_passthru { - public: - template inline static void apply( Mat& out, const Op& in ); }; diff --git a/include/armadillo_bits/op_find_bones.hpp b/include/armadillo_bits/op_find_bones.hpp index f1abbe75..a56b463a 100644 --- a/include/armadillo_bits/op_find_bones.hpp +++ b/include/armadillo_bits/op_find_bones.hpp @@ -22,11 +22,9 @@ -class op_find +struct op_find : public traits_op_col { - public: - template inline static uword helper @@ -83,55 +81,45 @@ class op_find -class op_find_simple +struct op_find_simple : public traits_op_col { - public: - template inline static void apply(Mat& out, const mtOp& X); }; -class op_find_finite +struct op_find_finite : public traits_op_col { - public: - template inline static void apply(Mat& out, const mtOp& X); }; -class op_find_nonfinite +struct op_find_nonfinite : public traits_op_col { - public: - template inline static void apply(Mat& out, const mtOp& X); }; -class op_find_nan +struct op_find_nan : public traits_op_col { - public: - template inline static void apply(Mat& out, const mtOp& X); }; -class op_find_nonnan +struct op_find_nonnan : public traits_op_col { - public: - template inline static void apply(Mat& out, const mtOp& X); }; diff --git a/include/armadillo_bits/op_find_unique_bones.hpp b/include/armadillo_bits/op_find_unique_bones.hpp index d6be7b48..4a1bb633 100644 --- a/include/armadillo_bits/op_find_unique_bones.hpp +++ b/include/armadillo_bits/op_find_unique_bones.hpp @@ -21,11 +21,9 @@ -class op_find_unique +struct op_find_unique : public traits_op_col { - public: - template static inline bool apply_helper(Mat& out, const Proxy& P, const bool ascending_indices); diff --git a/include/armadillo_bits/op_flip_bones.hpp b/include/armadillo_bits/op_flip_bones.hpp index c81eca15..be930a1a 100644 --- a/include/armadillo_bits/op_flip_bones.hpp +++ b/include/armadillo_bits/op_flip_bones.hpp @@ -21,11 +21,9 @@ -class op_flipud +struct op_flipud : public traits_op_passthru { - public: - template inline static void apply(Mat& out, const Op& in); @@ -39,11 +37,9 @@ class op_flipud -class op_fliplr +struct op_fliplr : public traits_op_passthru { - public: - template inline static void apply(Mat& out, const Op& in); diff --git a/include/armadillo_bits/op_hist_bones.hpp b/include/armadillo_bits/op_hist_bones.hpp index c014ba26..9cc41712 100644 --- a/include/armadillo_bits/op_hist_bones.hpp +++ b/include/armadillo_bits/op_hist_bones.hpp @@ -22,11 +22,9 @@ -class op_hist +struct op_hist : public traits_op_passthru { - public: - template inline static void apply_noalias(Mat& out, const Mat& A, const uword n_bins, const uword dim); diff --git a/include/armadillo_bits/op_htrans_bones.hpp b/include/armadillo_bits/op_htrans_bones.hpp index c10f624f..484635a2 100644 --- a/include/armadillo_bits/op_htrans_bones.hpp +++ b/include/armadillo_bits/op_htrans_bones.hpp @@ -22,10 +22,8 @@ //! 'hermitian transpose' operation -class op_htrans +struct op_htrans { - public: - template struct traits { @@ -83,10 +81,8 @@ class op_htrans -class op_htrans2 +struct op_htrans2 { - public: - template struct traits { diff --git a/include/armadillo_bits/op_index_max_bones.hpp b/include/armadillo_bits/op_index_max_bones.hpp index d226f22d..926d17bb 100644 --- a/include/armadillo_bits/op_index_max_bones.hpp +++ b/include/armadillo_bits/op_index_max_bones.hpp @@ -20,11 +20,9 @@ //! @{ -class op_index_max +struct op_index_max : public traits_op_xvec { - public: - // dense matrices template diff --git a/include/armadillo_bits/op_index_min_bones.hpp b/include/armadillo_bits/op_index_min_bones.hpp index 050b8c0f..8112a4e2 100644 --- a/include/armadillo_bits/op_index_min_bones.hpp +++ b/include/armadillo_bits/op_index_min_bones.hpp @@ -20,11 +20,9 @@ //! @{ -class op_index_min +struct op_index_min : public traits_op_xvec { - public: - // dense matrices template diff --git a/include/armadillo_bits/op_inv_gen_bones.hpp b/include/armadillo_bits/op_inv_gen_bones.hpp index fe952ed1..77efec8a 100644 --- a/include/armadillo_bits/op_inv_gen_bones.hpp +++ b/include/armadillo_bits/op_inv_gen_bones.hpp @@ -21,11 +21,9 @@ -class op_inv_gen_default +struct op_inv_gen_default : public traits_op_default { - public: - template inline static void apply(Mat& out, const Op& in); @@ -35,11 +33,9 @@ class op_inv_gen_default -class op_inv_gen_full +struct op_inv_gen_full : public traits_op_default { - public: - template struct pos { @@ -73,11 +69,9 @@ struct op_inv_gen_state -class op_inv_gen_rcond +struct op_inv_gen_rcond : public traits_op_default { - public: - template inline static bool apply_direct(Mat& out_inv, op_inv_gen_state& out_state, const Base& expr); }; diff --git a/include/armadillo_bits/op_inv_spd_bones.hpp b/include/armadillo_bits/op_inv_spd_bones.hpp index 85a50132..500700fa 100644 --- a/include/armadillo_bits/op_inv_spd_bones.hpp +++ b/include/armadillo_bits/op_inv_spd_bones.hpp @@ -21,11 +21,9 @@ -class op_inv_spd_default +struct op_inv_spd_default : public traits_op_default { - public: - template inline static void apply(Mat& out, const Op& in); @@ -35,11 +33,9 @@ class op_inv_spd_default -class op_inv_spd_full +struct op_inv_spd_full : public traits_op_default { - public: - template inline static void apply(Mat& out, const Op& in); @@ -62,11 +58,9 @@ struct op_inv_spd_state -class op_inv_spd_rcond +struct op_inv_spd_rcond : public traits_op_default { - public: - template inline static bool apply_direct(Mat& out_inv, op_inv_spd_state& out_state, const Base& expr); }; diff --git a/include/armadillo_bits/op_log_det_bones.hpp b/include/armadillo_bits/op_log_det_bones.hpp index e2f3daf0..258825b7 100644 --- a/include/armadillo_bits/op_log_det_bones.hpp +++ b/include/armadillo_bits/op_log_det_bones.hpp @@ -21,11 +21,9 @@ -class op_log_det +struct op_log_det : public traits_op_default { - public: - template inline static bool apply_direct(typename T1::elem_type& out_val, typename T1::pod_type& out_sign, const Base& expr); @@ -38,11 +36,9 @@ class op_log_det -class op_log_det_sympd +struct op_log_det_sympd : public traits_op_default { - public: - template inline static bool apply_direct(typename T1::pod_type& out_val, const Base& expr); }; diff --git a/include/armadillo_bits/op_logmat_bones.hpp b/include/armadillo_bits/op_logmat_bones.hpp index 77e967d7..a520f63d 100644 --- a/include/armadillo_bits/op_logmat_bones.hpp +++ b/include/armadillo_bits/op_logmat_bones.hpp @@ -21,11 +21,9 @@ -class op_logmat +struct op_logmat : public traits_op_default { - public: - template inline static void apply(Mat< std::complex >& out, const mtOp,T1,op_logmat>& in); @@ -38,11 +36,9 @@ class op_logmat -class op_logmat_cx +struct op_logmat_cx : public traits_op_default { - public: - template inline static void apply(Mat& out, const Op& in); @@ -65,11 +61,9 @@ class op_logmat_cx -class op_logmat_sympd +struct op_logmat_sympd : public traits_op_default { - public: - template inline static void apply(Mat& out, const Op& in); diff --git a/include/armadillo_bits/op_max_bones.hpp b/include/armadillo_bits/op_max_bones.hpp index 7127e6d3..d504ca13 100644 --- a/include/armadillo_bits/op_max_bones.hpp +++ b/include/armadillo_bits/op_max_bones.hpp @@ -20,11 +20,9 @@ //! @{ -class op_max +struct op_max : public traits_op_xvec { - public: - // // dense matrices diff --git a/include/armadillo_bits/op_mean_bones.hpp b/include/armadillo_bits/op_mean_bones.hpp index 764b7976..a07ee979 100644 --- a/include/armadillo_bits/op_mean_bones.hpp +++ b/include/armadillo_bits/op_mean_bones.hpp @@ -21,11 +21,9 @@ //! Class for finding mean values of a matrix -class op_mean +struct op_mean : public traits_op_xvec { - public: - // dense matrices template diff --git a/include/armadillo_bits/op_median_bones.hpp b/include/armadillo_bits/op_median_bones.hpp index 8212d148..bb9aa2ff 100644 --- a/include/armadillo_bits/op_median_bones.hpp +++ b/include/armadillo_bits/op_median_bones.hpp @@ -39,11 +39,9 @@ operator< (const arma_cx_median_packet& A, const arma_cx_median_packet& B) -class op_median +struct op_median : public traits_op_xvec { - public: - template inline static void apply(Mat& out, const Op& expr); diff --git a/include/armadillo_bits/op_min_bones.hpp b/include/armadillo_bits/op_min_bones.hpp index e9f5a621..c6afea4b 100644 --- a/include/armadillo_bits/op_min_bones.hpp +++ b/include/armadillo_bits/op_min_bones.hpp @@ -20,11 +20,9 @@ //! @{ -class op_min +struct op_min : public traits_op_xvec { - public: - // // dense matrices diff --git a/include/armadillo_bits/op_misc_bones.hpp b/include/armadillo_bits/op_misc_bones.hpp index 39ac853b..7c3e3608 100644 --- a/include/armadillo_bits/op_misc_bones.hpp +++ b/include/armadillo_bits/op_misc_bones.hpp @@ -21,11 +21,9 @@ -class op_real +struct op_real : public traits_op_passthru { - public: - template inline static void apply( Mat& out, const mtOp& X); @@ -35,11 +33,9 @@ class op_real -class op_imag +struct op_imag : public traits_op_passthru { - public: - template inline static void apply( Mat& out, const mtOp& X); @@ -49,11 +45,9 @@ class op_imag -class op_abs +struct op_abs : public traits_op_passthru { - public: - template inline static void apply( Mat& out, const mtOp& X); @@ -63,11 +57,9 @@ class op_abs -class op_arg +struct op_arg : public traits_op_passthru { - public: - template inline static void apply( Mat& out, const mtOp& X); @@ -77,11 +69,9 @@ class op_arg -class op_replace +struct op_replace : public traits_op_passthru { - public: - template inline static void apply(Mat& out, const mtOp& in); template inline static void apply(Cube& out, const mtOpCube& in); diff --git a/include/armadillo_bits/op_nonzeros_bones.hpp b/include/armadillo_bits/op_nonzeros_bones.hpp index be62b3f4..8bc78e46 100644 --- a/include/armadillo_bits/op_nonzeros_bones.hpp +++ b/include/armadillo_bits/op_nonzeros_bones.hpp @@ -22,11 +22,9 @@ -class op_nonzeros +struct op_nonzeros : public traits_op_col { - public: - // for dense matrices template diff --git a/include/armadillo_bits/op_norm2est_bones.hpp b/include/armadillo_bits/op_norm2est_bones.hpp index 5570be9e..99551a2c 100644 --- a/include/armadillo_bits/op_norm2est_bones.hpp +++ b/include/armadillo_bits/op_norm2est_bones.hpp @@ -50,11 +50,9 @@ struct norm2est_randu_filler< std::complex > -class op_norm2est +struct op_norm2est : public traits_op_default { - public: - template inline static typename T1::pod_type norm2est(const Base& X, const typename T1::pod_type tolerance, const uword max_iter); template inline static typename T1::pod_type norm2est(const SpBase& X, const typename T1::pod_type tolerance, const uword max_iter); }; diff --git a/include/armadillo_bits/op_norm_bones.hpp b/include/armadillo_bits/op_norm_bones.hpp index 24725cb9..0c2fba02 100644 --- a/include/armadillo_bits/op_norm_bones.hpp +++ b/include/armadillo_bits/op_norm_bones.hpp @@ -20,11 +20,9 @@ //! @{ -class op_norm +struct op_norm : public traits_op_default { - public: - template arma_hot inline static typename T1::pod_type vec_norm_1(const Proxy& P, const typename arma_not_cx::result* junk = nullptr); template arma_hot inline static typename T1::pod_type vec_norm_1(const Proxy& P, const typename arma_cx_only::result* junk = nullptr); diff --git a/include/armadillo_bits/op_normalise_bones.hpp b/include/armadillo_bits/op_normalise_bones.hpp index 4b1932c0..b9079ab9 100644 --- a/include/armadillo_bits/op_normalise_bones.hpp +++ b/include/armadillo_bits/op_normalise_bones.hpp @@ -22,21 +22,17 @@ -class op_normalise_vec +struct op_normalise_vec : public traits_op_passthru { - public: - template inline static void apply(Mat& out, const Op& in); }; -class op_normalise_mat +struct op_normalise_mat : public traits_op_default { - public: - template inline static void apply(Mat& out, const Op& in); template inline static void apply(Mat& out, const Mat& A, const uword p, const uword dim); diff --git a/include/armadillo_bits/op_omit_bones.hpp b/include/armadillo_bits/op_omit_bones.hpp index f8dc7911..a81ef9a1 100644 --- a/include/armadillo_bits/op_omit_bones.hpp +++ b/include/armadillo_bits/op_omit_bones.hpp @@ -20,11 +20,9 @@ //! @{ -class op_omit +struct op_omit : public traits_op_col { - public: - template inline static void apply(Mat& out, const Op& in); @@ -34,11 +32,9 @@ class op_omit -class op_omit_cube +struct op_omit_cube : public traits_op_col { - public: - template inline static void apply(Mat& out, const CubeToMatOp& in); template diff --git a/include/armadillo_bits/op_orth_null_bones.hpp b/include/armadillo_bits/op_orth_null_bones.hpp index 2cb182ba..fb7d453c 100644 --- a/include/armadillo_bits/op_orth_null_bones.hpp +++ b/include/armadillo_bits/op_orth_null_bones.hpp @@ -22,11 +22,9 @@ -class op_orth +struct op_orth : public traits_op_default { - public: - template inline static void apply(Mat& out, const Op& expr); @@ -36,11 +34,9 @@ class op_orth -class op_null +struct op_null : public traits_op_default { - public: - template inline static void apply(Mat& out, const Op& expr); diff --git a/include/armadillo_bits/op_pinv_bones.hpp b/include/armadillo_bits/op_pinv_bones.hpp index bf83ddc9..4575a2fd 100644 --- a/include/armadillo_bits/op_pinv_bones.hpp +++ b/include/armadillo_bits/op_pinv_bones.hpp @@ -22,11 +22,9 @@ -class op_pinv_default +struct op_pinv_default : public traits_op_default { - public: - template inline static void apply(Mat& out, const Op& in); template inline static bool apply_direct(Mat& out, const Base& expr); @@ -34,11 +32,9 @@ class op_pinv_default -class op_pinv +struct op_pinv : public traits_op_default { - public: - template inline static void apply(Mat& out, const Op& in); template inline static bool apply_direct(Mat& out, const Base& expr, typename T1::pod_type tol, const uword method_id); diff --git a/include/armadillo_bits/op_powmat_bones.hpp b/include/armadillo_bits/op_powmat_bones.hpp index 021522b1..dd292955 100644 --- a/include/armadillo_bits/op_powmat_bones.hpp +++ b/include/armadillo_bits/op_powmat_bones.hpp @@ -22,11 +22,9 @@ -class op_powmat +struct op_powmat : public traits_op_default { - public: - template inline static void apply(Mat& out, const Op& expr); @@ -39,11 +37,9 @@ class op_powmat -class op_powmat_cx +struct op_powmat_cx : public traits_op_default { - public: - template inline static void apply(Mat< std::complex >& out, const mtOp,T1,op_powmat_cx>& expr); diff --git a/include/armadillo_bits/op_princomp_bones.hpp b/include/armadillo_bits/op_princomp_bones.hpp index 4d6abaab..99914371 100644 --- a/include/armadillo_bits/op_princomp_bones.hpp +++ b/include/armadillo_bits/op_princomp_bones.hpp @@ -21,11 +21,9 @@ -class op_princomp +struct op_princomp : public traits_op_default { - public: - template inline static bool direct_princomp diff --git a/include/armadillo_bits/op_prod_bones.hpp b/include/armadillo_bits/op_prod_bones.hpp index 790401cb..e1f0be86 100644 --- a/include/armadillo_bits/op_prod_bones.hpp +++ b/include/armadillo_bits/op_prod_bones.hpp @@ -20,11 +20,9 @@ //! @{ -class op_prod +struct op_prod : public traits_op_xvec { - public: - template inline static void apply_noalias(Mat& out, const Mat& X, const uword dim); diff --git a/include/armadillo_bits/op_range_bones.hpp b/include/armadillo_bits/op_range_bones.hpp index 5745624b..cb67cc60 100644 --- a/include/armadillo_bits/op_range_bones.hpp +++ b/include/armadillo_bits/op_range_bones.hpp @@ -20,11 +20,9 @@ //! @{ -class op_range +struct op_range : public traits_op_xvec { - public: - template inline static void apply(Mat& out, const Op& in); diff --git a/include/armadillo_bits/op_rank_bones.hpp b/include/armadillo_bits/op_rank_bones.hpp index f0c4a072..a801fb17 100644 --- a/include/armadillo_bits/op_rank_bones.hpp +++ b/include/armadillo_bits/op_rank_bones.hpp @@ -22,11 +22,9 @@ -class op_rank +struct op_rank : public traits_op_default { - public: - template inline static bool apply(uword& out, const Base& expr, const typename T1::pod_type tol); template inline static bool apply_gen(uword& out, Mat& A, typename get_pod_type::result tol); diff --git a/include/armadillo_bits/op_rcond_bones.hpp b/include/armadillo_bits/op_rcond_bones.hpp index 88697e8d..c148a0ed 100644 --- a/include/armadillo_bits/op_rcond_bones.hpp +++ b/include/armadillo_bits/op_rcond_bones.hpp @@ -20,11 +20,9 @@ //! @{ -class op_rcond +struct op_rcond : public traits_op_default { - public: - template static inline typename T1::pod_type apply(const Base& X); }; diff --git a/include/armadillo_bits/op_relational_bones.hpp b/include/armadillo_bits/op_relational_bones.hpp index 0e8ecabc..3d90fb63 100644 --- a/include/armadillo_bits/op_relational_bones.hpp +++ b/include/armadillo_bits/op_relational_bones.hpp @@ -21,11 +21,9 @@ -class op_rel_lt_pre +struct op_rel_lt_pre : public traits_op_passthru { - public: - template inline static void apply(Mat& out, const mtOp& X); @@ -35,11 +33,9 @@ class op_rel_lt_pre -class op_rel_lt_post +struct op_rel_lt_post : public traits_op_passthru { - public: - template inline static void apply(Mat& out, const mtOp& X); @@ -49,11 +45,9 @@ class op_rel_lt_post -class op_rel_gt_pre +struct op_rel_gt_pre : public traits_op_passthru { - public: - template inline static void apply(Mat& out, const mtOp& X); @@ -63,11 +57,9 @@ class op_rel_gt_pre -class op_rel_gt_post +struct op_rel_gt_post : public traits_op_passthru { - public: - template inline static void apply(Mat& out, const mtOp& X); @@ -77,11 +69,9 @@ class op_rel_gt_post -class op_rel_lteq_pre +struct op_rel_lteq_pre : public traits_op_passthru { - public: - template inline static void apply(Mat& out, const mtOp& X); @@ -91,11 +81,9 @@ class op_rel_lteq_pre -class op_rel_lteq_post +struct op_rel_lteq_post : public traits_op_passthru { - public: - template inline static void apply(Mat& out, const mtOp& X); @@ -105,11 +93,9 @@ class op_rel_lteq_post -class op_rel_gteq_pre +struct op_rel_gteq_pre : public traits_op_passthru { - public: - template inline static void apply(Mat& out, const mtOp& X); @@ -119,11 +105,9 @@ class op_rel_gteq_pre -class op_rel_gteq_post +struct op_rel_gteq_post : public traits_op_passthru { - public: - template inline static void apply(Mat& out, const mtOp& X); @@ -133,11 +117,9 @@ class op_rel_gteq_post -class op_rel_eq +struct op_rel_eq : public traits_op_passthru { - public: - template inline static void apply(Mat& out, const mtOp& X); @@ -147,11 +129,9 @@ class op_rel_eq -class op_rel_noteq +struct op_rel_noteq : public traits_op_passthru { - public: - template inline static void apply(Mat& out, const mtOp& X); diff --git a/include/armadillo_bits/op_repelem_bones.hpp b/include/armadillo_bits/op_repelem_bones.hpp index 52d20a41..0f3e10b5 100644 --- a/include/armadillo_bits/op_repelem_bones.hpp +++ b/include/armadillo_bits/op_repelem_bones.hpp @@ -22,11 +22,9 @@ -class op_repelem +struct op_repelem : public traits_op_default { - public: - template inline static void apply_noalias(Mat& out, const obj& X, const uword copies_per_row, const uword copies_per_col); template inline static void apply(Mat& out, const Op& in); diff --git a/include/armadillo_bits/op_repmat_bones.hpp b/include/armadillo_bits/op_repmat_bones.hpp index 100179ab..d42f3f36 100644 --- a/include/armadillo_bits/op_repmat_bones.hpp +++ b/include/armadillo_bits/op_repmat_bones.hpp @@ -22,11 +22,9 @@ -class op_repmat +struct op_repmat : public traits_op_default { - public: - template inline static void apply_noalias(Mat& out, const obj& X, const uword copies_per_row, const uword copies_per_col); template inline static void apply(Mat& out, const Op& in); diff --git a/include/armadillo_bits/op_reshape_bones.hpp b/include/armadillo_bits/op_reshape_bones.hpp index b27f22b8..a1bcf00e 100644 --- a/include/armadillo_bits/op_reshape_bones.hpp +++ b/include/armadillo_bits/op_reshape_bones.hpp @@ -22,11 +22,9 @@ -class op_reshape +struct op_reshape : public traits_op_default { - public: - template inline static void apply(Mat& out, const Op& in); template inline static void apply_mat_inplace(Mat& A, const uword new_n_rows, const uword new_n_cols); diff --git a/include/armadillo_bits/op_resize_bones.hpp b/include/armadillo_bits/op_resize_bones.hpp index d33273fa..2a860321 100644 --- a/include/armadillo_bits/op_resize_bones.hpp +++ b/include/armadillo_bits/op_resize_bones.hpp @@ -22,11 +22,9 @@ -class op_resize +struct op_resize : public traits_op_default { - public: - template inline static void apply(Mat& out, const Op& in); template inline static void apply_mat_inplace(Mat& A, const uword new_n_rows, const uword new_n_cols); diff --git a/include/armadillo_bits/op_reverse_bones.hpp b/include/armadillo_bits/op_reverse_bones.hpp index 8ec62176..fff32d07 100644 --- a/include/armadillo_bits/op_reverse_bones.hpp +++ b/include/armadillo_bits/op_reverse_bones.hpp @@ -21,22 +21,18 @@ -class op_reverse +struct op_reverse : public traits_op_default { - public: - template inline static void apply(Mat& out, const Op& in); }; -class op_reverse_vec +struct op_reverse_vec : public traits_op_passthru { - public: - template inline static void apply(Mat& out, const Op& in); }; diff --git a/include/armadillo_bits/op_roots_bones.hpp b/include/armadillo_bits/op_roots_bones.hpp index 6007d198..558f6533 100644 --- a/include/armadillo_bits/op_roots_bones.hpp +++ b/include/armadillo_bits/op_roots_bones.hpp @@ -21,11 +21,9 @@ -class op_roots +struct op_roots : public traits_op_col { - public: - template inline static void apply(Mat< std::complex >& out, const mtOp, T1, op_roots>& expr); diff --git a/include/armadillo_bits/op_row_as_mat_bones.hpp b/include/armadillo_bits/op_row_as_mat_bones.hpp index a8430927..aaf44320 100644 --- a/include/armadillo_bits/op_row_as_mat_bones.hpp +++ b/include/armadillo_bits/op_row_as_mat_bones.hpp @@ -20,11 +20,9 @@ //! @{ -class op_row_as_mat +struct op_row_as_mat : public traits_op_default { - public: - template inline static void apply(Mat& out, const CubeToMatOp& expr); }; diff --git a/include/armadillo_bits/op_shuffle_bones.hpp b/include/armadillo_bits/op_shuffle_bones.hpp index 8150d130..b1308baf 100644 --- a/include/armadillo_bits/op_shuffle_bones.hpp +++ b/include/armadillo_bits/op_shuffle_bones.hpp @@ -22,11 +22,9 @@ -class op_shuffle +struct op_shuffle : public traits_op_default { - public: - template inline static void apply_direct(Mat& out, const Mat& X, const uword dim); template inline static void apply(Mat& out, const Op& in); @@ -34,11 +32,9 @@ class op_shuffle -class op_shuffle_vec +struct op_shuffle_vec : public traits_op_passthru { - public: - template inline static void apply(Mat& out, const Op& in); }; diff --git a/include/armadillo_bits/op_sort_bones.hpp b/include/armadillo_bits/op_sort_bones.hpp index d21d9c31..8efd32dd 100644 --- a/include/armadillo_bits/op_sort_bones.hpp +++ b/include/armadillo_bits/op_sort_bones.hpp @@ -21,11 +21,9 @@ -class op_sort +struct op_sort : public traits_op_default { - public: - template inline static void direct_sort(eT* X, const uword N, const uword sort_mode = 0); @@ -41,11 +39,9 @@ class op_sort -class op_sort_vec +struct op_sort_vec : public traits_op_passthru { - public: - template inline static void apply(Mat& out, const Op& in); }; diff --git a/include/armadillo_bits/op_sort_index_bones.hpp b/include/armadillo_bits/op_sort_index_bones.hpp index 513d565b..d95eafaf 100644 --- a/include/armadillo_bits/op_sort_index_bones.hpp +++ b/include/armadillo_bits/op_sort_index_bones.hpp @@ -21,11 +21,9 @@ -class op_sort_index +struct op_sort_index : public traits_op_col { - public: - template static inline bool apply_helper(Mat& out, const Proxy& P, const uword sort_mode); diff --git a/include/armadillo_bits/op_sp_as_dense_bones.hpp b/include/armadillo_bits/op_sp_as_dense_bones.hpp index 2b59236e..968883b9 100644 --- a/include/armadillo_bits/op_sp_as_dense_bones.hpp +++ b/include/armadillo_bits/op_sp_as_dense_bones.hpp @@ -20,11 +20,9 @@ //! @{ -class op_sp_as_dense +struct op_sp_as_dense : public traits_op_passthru { - public: - template inline static void apply(Mat& out, const SpToDOp& expr); }; diff --git a/include/armadillo_bits/op_sp_diagvec_bones.hpp b/include/armadillo_bits/op_sp_diagvec_bones.hpp index f5b6ad47..541eef8c 100644 --- a/include/armadillo_bits/op_sp_diagvec_bones.hpp +++ b/include/armadillo_bits/op_sp_diagvec_bones.hpp @@ -21,11 +21,9 @@ -class op_sp_diagvec +struct op_sp_diagvec : public traits_op_col { - public: - template inline static void apply(Mat& out, const mtSpReduceOp& in); }; diff --git a/include/armadillo_bits/op_sp_max_bones.hpp b/include/armadillo_bits/op_sp_max_bones.hpp index 1268a679..105c9b20 100644 --- a/include/armadillo_bits/op_sp_max_bones.hpp +++ b/include/armadillo_bits/op_sp_max_bones.hpp @@ -19,11 +19,9 @@ //! \addtogroup op_sp_max //! @{ -class op_sp_max +struct op_sp_max : public traits_op_xvec { - public: - template inline static void apply(Mat& out, const mtSpReduceOp& in); diff --git a/include/armadillo_bits/op_sp_mean_bones.hpp b/include/armadillo_bits/op_sp_mean_bones.hpp index 66358149..bc5a8644 100644 --- a/include/armadillo_bits/op_sp_mean_bones.hpp +++ b/include/armadillo_bits/op_sp_mean_bones.hpp @@ -21,11 +21,9 @@ //! Class for finding mean values of a sparse matrix -class op_sp_mean +struct op_sp_mean : public traits_op_xvec { - public: - // Apply mean into an output sparse matrix (or vector). template inline static void apply(Mat& out, const mtSpReduceOp& in); diff --git a/include/armadillo_bits/op_sp_min_bones.hpp b/include/armadillo_bits/op_sp_min_bones.hpp index 5dda6e87..9ae9d4b6 100644 --- a/include/armadillo_bits/op_sp_min_bones.hpp +++ b/include/armadillo_bits/op_sp_min_bones.hpp @@ -19,11 +19,9 @@ //! \addtogroup op_sp_min //! @{ -class op_sp_min +struct op_sp_min : public traits_op_xvec { - public: - template inline static void apply(Mat& out, const mtSpReduceOp& in); diff --git a/include/armadillo_bits/op_sp_minus_bones.hpp b/include/armadillo_bits/op_sp_minus_bones.hpp index fb1487b6..4b128415 100644 --- a/include/armadillo_bits/op_sp_minus_bones.hpp +++ b/include/armadillo_bits/op_sp_minus_bones.hpp @@ -22,11 +22,9 @@ // Subtract a sparse object from a scalar; the output will be a dense object. -class op_sp_minus_pre +struct op_sp_minus_pre : public traits_op_passthru { - public: - template inline static void apply(Mat& out, const SpToDOp& in); @@ -42,11 +40,9 @@ class op_sp_minus_pre // Subtract a scalar from a sparse object; the output will be a dense object. -class op_sp_minus_post +struct op_sp_minus_post : public traits_op_passthru { - public: - template inline static void apply(Mat& out, const SpToDOp& in); diff --git a/include/armadillo_bits/op_sp_nonzeros_bones.hpp b/include/armadillo_bits/op_sp_nonzeros_bones.hpp index 84603012..28ca2de3 100644 --- a/include/armadillo_bits/op_sp_nonzeros_bones.hpp +++ b/include/armadillo_bits/op_sp_nonzeros_bones.hpp @@ -22,11 +22,9 @@ -class op_sp_nonzeros +struct op_sp_nonzeros : public traits_op_col { - public: - template static inline void apply(Mat& out, const SpToDOp& X); }; diff --git a/include/armadillo_bits/op_sp_plus_bones.hpp b/include/armadillo_bits/op_sp_plus_bones.hpp index 684a7790..7636ada9 100644 --- a/include/armadillo_bits/op_sp_plus_bones.hpp +++ b/include/armadillo_bits/op_sp_plus_bones.hpp @@ -22,11 +22,9 @@ // Add a scalar to a sparse matrix; this will return a dense matrix. -class op_sp_plus +struct op_sp_plus : public traits_op_passthru { - public: - template inline static void apply(Mat& out, const SpToDOp& in); diff --git a/include/armadillo_bits/op_sp_stddev_bones.hpp b/include/armadillo_bits/op_sp_stddev_bones.hpp index 616130d4..9114360c 100644 --- a/include/armadillo_bits/op_sp_stddev_bones.hpp +++ b/include/armadillo_bits/op_sp_stddev_bones.hpp @@ -21,11 +21,9 @@ -class op_sp_stddev +struct op_sp_stddev : public traits_op_xvec { - public: - template inline static void apply(Mat& out, const mtSpReduceOp& in); diff --git a/include/armadillo_bits/op_sp_sum_bones.hpp b/include/armadillo_bits/op_sp_sum_bones.hpp index 1b524d72..06810d51 100644 --- a/include/armadillo_bits/op_sp_sum_bones.hpp +++ b/include/armadillo_bits/op_sp_sum_bones.hpp @@ -20,11 +20,9 @@ //! @{ -class op_sp_sum +struct op_sp_sum : public traits_op_xvec { - public: - template inline static void apply(Mat& out, const mtSpReduceOp& in); diff --git a/include/armadillo_bits/op_sp_var_bones.hpp b/include/armadillo_bits/op_sp_var_bones.hpp index bdcd9b24..f5e8321e 100644 --- a/include/armadillo_bits/op_sp_var_bones.hpp +++ b/include/armadillo_bits/op_sp_var_bones.hpp @@ -22,11 +22,9 @@ //! Class for finding variance values of a sparse matrix -class op_sp_var +struct op_sp_var : public traits_op_xvec { - public: - template inline static void apply(Mat& out, const mtSpReduceOp& in); diff --git a/include/armadillo_bits/op_sp_vecnorm_bones.hpp b/include/armadillo_bits/op_sp_vecnorm_bones.hpp index aadf943b..f0ea4718 100644 --- a/include/armadillo_bits/op_sp_vecnorm_bones.hpp +++ b/include/armadillo_bits/op_sp_vecnorm_bones.hpp @@ -20,11 +20,9 @@ //! @{ -class op_sp_vecnorm +struct op_sp_vecnorm : public traits_op_xvec { - public: - template inline static void apply(Mat& out, const mtSpReduceOp& expr); @@ -36,11 +34,9 @@ class op_sp_vecnorm // -class op_sp_vecnorm_ext +struct op_sp_vecnorm_ext : public traits_op_xvec { - public: - template inline static void apply(Mat& out, const mtSpReduceOp& expr); diff --git a/include/armadillo_bits/op_sqrtmat_bones.hpp b/include/armadillo_bits/op_sqrtmat_bones.hpp index a63ae4bb..d15e3286 100644 --- a/include/armadillo_bits/op_sqrtmat_bones.hpp +++ b/include/armadillo_bits/op_sqrtmat_bones.hpp @@ -21,11 +21,9 @@ -class op_sqrtmat +struct op_sqrtmat : public traits_op_default { - public: - template inline static void apply(Mat< std::complex >& out, const mtOp,T1,op_sqrtmat>& in); @@ -38,11 +36,9 @@ class op_sqrtmat -class op_sqrtmat_cx +struct op_sqrtmat_cx : public traits_op_default { - public: - template inline static void apply(Mat& out, const Op& in); @@ -61,11 +57,9 @@ class op_sqrtmat_cx -class op_sqrtmat_sympd +struct op_sqrtmat_sympd : public traits_op_default { - public: - template inline static void apply(Mat& out, const Op& in); diff --git a/include/armadillo_bits/op_stddev_bones.hpp b/include/armadillo_bits/op_stddev_bones.hpp index 08370f38..666b723e 100644 --- a/include/armadillo_bits/op_stddev_bones.hpp +++ b/include/armadillo_bits/op_stddev_bones.hpp @@ -21,11 +21,9 @@ -class op_stddev +struct op_stddev : public traits_op_xvec { - public: - template inline static void apply(Mat& out, const mtOp& in); diff --git a/include/armadillo_bits/op_strans_bones.hpp b/include/armadillo_bits/op_strans_bones.hpp index 42534bfe..6e885b1a 100644 --- a/include/armadillo_bits/op_strans_bones.hpp +++ b/include/armadillo_bits/op_strans_bones.hpp @@ -22,10 +22,8 @@ //! 'matrix transpose' operation (simple transpose, ie. without taking the conjugate of the elements) -class op_strans +struct op_strans { - public: - template struct traits { @@ -72,10 +70,8 @@ class op_strans -class op_strans_cube +struct op_strans_cube { - public: - template inline static void apply_noalias(Cube& out, const Cube& X); }; diff --git a/include/armadillo_bits/op_sum_bones.hpp b/include/armadillo_bits/op_sum_bones.hpp index c580a204..3a7cc1a6 100644 --- a/include/armadillo_bits/op_sum_bones.hpp +++ b/include/armadillo_bits/op_sum_bones.hpp @@ -20,11 +20,9 @@ //! @{ -class op_sum +struct op_sum : public traits_op_xvec { - public: - // dense matrices template diff --git a/include/armadillo_bits/op_symmat_bones.hpp b/include/armadillo_bits/op_symmat_bones.hpp index 1e07f0e2..3973a1b9 100644 --- a/include/armadillo_bits/op_symmat_bones.hpp +++ b/include/armadillo_bits/op_symmat_bones.hpp @@ -21,44 +21,36 @@ -class op_symmatu +struct op_symmatu : public traits_op_default { - public: - template inline static void apply(Mat& out, const Op& in); }; -class op_symmatl +struct op_symmatl : public traits_op_default { - public: - template inline static void apply(Mat& out, const Op& in); }; -class op_symmatu_cx +struct op_symmatu_cx : public traits_op_default { - public: - template inline static void apply(Mat& out, const Op& in); }; -class op_symmatl_cx +struct op_symmatl_cx : public traits_op_default { - public: - template inline static void apply(Mat& out, const Op& in); }; diff --git a/include/armadillo_bits/op_toeplitz_bones.hpp b/include/armadillo_bits/op_toeplitz_bones.hpp index c9676f70..f12e4c14 100644 --- a/include/armadillo_bits/op_toeplitz_bones.hpp +++ b/include/armadillo_bits/op_toeplitz_bones.hpp @@ -21,22 +21,18 @@ -class op_toeplitz +struct op_toeplitz : public traits_op_default { - public: - template inline static void apply(Mat& out, const Op& in); }; -class op_toeplitz_c +struct op_toeplitz_c : public traits_op_default { - public: - template inline static void apply(Mat& out, const Op& in); }; diff --git a/include/armadillo_bits/op_trimat_bones.hpp b/include/armadillo_bits/op_trimat_bones.hpp index dc1d1979..7205cd95 100644 --- a/include/armadillo_bits/op_trimat_bones.hpp +++ b/include/armadillo_bits/op_trimat_bones.hpp @@ -23,11 +23,9 @@ // NOTE: don't split op_trimat into separate op_trimatu and op_trimatl classes, // NOTE: as several instances elsewhere rely on trimatu() and trimatl() producing the same type -class op_trimat +struct op_trimat : public traits_op_default { - public: - template inline static void fill_zeros(Mat& A, const bool upper); @@ -45,11 +43,9 @@ class op_trimat -class op_trimatu_ext +struct op_trimatu_ext : public traits_op_default { - public: - template inline static void apply(Mat& out, const Op& in); @@ -59,11 +55,9 @@ class op_trimatu_ext -class op_trimatl_ext +struct op_trimatl_ext : public traits_op_default { - public: - template inline static void apply(Mat& out, const Op& in); diff --git a/include/armadillo_bits/op_unique_bones.hpp b/include/armadillo_bits/op_unique_bones.hpp index 7e7bb692..176b7f3d 100644 --- a/include/armadillo_bits/op_unique_bones.hpp +++ b/include/armadillo_bits/op_unique_bones.hpp @@ -22,11 +22,9 @@ -class op_unique +struct op_unique : public traits_op_col { - public: - template inline static bool apply_helper(Mat& out, const Proxy& P, const bool P_is_row); @@ -36,10 +34,10 @@ class op_unique -class op_unique_vec +struct op_unique_vec : public traits_op_passthru { - public: + template inline static void apply(Mat& out, const Op& in); diff --git a/include/armadillo_bits/op_var_bones.hpp b/include/armadillo_bits/op_var_bones.hpp index 690a71cb..64705a2a 100644 --- a/include/armadillo_bits/op_var_bones.hpp +++ b/include/armadillo_bits/op_var_bones.hpp @@ -21,11 +21,9 @@ -class op_var +struct op_var : public traits_op_xvec { - public: - template inline static void apply(Mat& out, const mtOp& in); diff --git a/include/armadillo_bits/op_vecnorm_bones.hpp b/include/armadillo_bits/op_vecnorm_bones.hpp index 7640aa42..6b8b3ba2 100644 --- a/include/armadillo_bits/op_vecnorm_bones.hpp +++ b/include/armadillo_bits/op_vecnorm_bones.hpp @@ -20,11 +20,9 @@ //! @{ -class op_vecnorm +struct op_vecnorm : public traits_op_xvec { - public: - template inline static void apply(Mat& out, const mtOp& in); @@ -36,11 +34,9 @@ class op_vecnorm }; -class op_vecnorm_ext +struct op_vecnorm_ext : public traits_op_xvec { - public: - template inline static void apply(Mat& out, const mtOp& in); diff --git a/include/armadillo_bits/op_vectorise_bones.hpp b/include/armadillo_bits/op_vectorise_bones.hpp index 91f7df7c..22f3b953 100644 --- a/include/armadillo_bits/op_vectorise_bones.hpp +++ b/include/armadillo_bits/op_vectorise_bones.hpp @@ -22,11 +22,9 @@ -class op_vectorise_col +struct op_vectorise_col : public traits_op_col { - public: - template inline static void apply(Mat& out, const Op& in); template inline static void apply_direct(Mat& out, const T1& expr); @@ -38,11 +36,9 @@ class op_vectorise_col -class op_vectorise_row +struct op_vectorise_row : public traits_op_row { - public: - template inline static void apply(Mat& out, const Op& in); template inline static void apply_direct(Mat& out, const T1& expr); @@ -52,21 +48,17 @@ class op_vectorise_row -class op_vectorise_all +struct op_vectorise_all : public traits_op_xvec { - public: - template inline static void apply(Mat& out, const Op& in); }; -class op_vectorise_cube_col +struct op_vectorise_cube_col : public traits_op_col { - public: - template inline static void apply(Mat& out, const CubeToMatOp& in); template inline static void apply_subview(Mat& out, const subview_cube& sv); diff --git a/include/armadillo_bits/op_wishrnd_bones.hpp b/include/armadillo_bits/op_wishrnd_bones.hpp index b85a72d4..7d47af90 100644 --- a/include/armadillo_bits/op_wishrnd_bones.hpp +++ b/include/armadillo_bits/op_wishrnd_bones.hpp @@ -20,11 +20,9 @@ //! @{ -class op_wishrnd +struct op_wishrnd : public traits_op_default { - public: - template inline static void apply(Mat& out, const Op& expr); @@ -40,11 +38,9 @@ class op_wishrnd -class op_iwishrnd +struct op_iwishrnd : public traits_op_default { - public: - template inline static void apply(Mat& out, const Op& expr);