Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package armadillo for openSUSE:Factory checked in at 2022-02-09 20:39:34 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/armadillo (Old) and /work/SRC/openSUSE:Factory/.armadillo.new.1898 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "armadillo" Wed Feb 9 20:39:34 2022 rev:160 rq:952825 version:10.8.2 Changes: -------- --- /work/SRC/openSUSE:Factory/armadillo/armadillo.changes 2022-01-31 22:57:29.081515813 +0100 +++ /work/SRC/openSUSE:Factory/.armadillo.new.1898/armadillo.changes 2022-02-09 20:40:49.830609970 +0100 @@ -1,0 +2,6 @@ +Tue Feb 8 17:33:05 UTC 2022 - Atri Bhattacharya <badshah...@gmail.com> + +- Update to version 10.8.2: + * Bug fix release. + +------------------------------------------------------------------- Old: ---- armadillo-10.8.1.tar.xz New: ---- armadillo-10.8.2.tar.xz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ armadillo.spec ++++++ --- /var/tmp/diff_new_pack.zuutk4/_old 2022-02-09 20:40:50.498611568 +0100 +++ /var/tmp/diff_new_pack.zuutk4/_new 2022-02-09 20:40:50.506611587 +0100 @@ -18,7 +18,7 @@ %define soname libarmadillo10 Name: armadillo -Version: 10.8.1 +Version: 10.8.2 Release: 0 Summary: C++ matrix library with interfaces to LAPACK and ATLAS License: Apache-2.0 ++++++ armadillo-10.8.1.tar.xz -> armadillo-10.8.2.tar.xz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/armadillo-10.8.1/docs.html new/armadillo-10.8.2/docs.html --- old/armadillo-10.8.1/docs.html 2016-06-16 18:24:21.000000000 +0200 +++ new/armadillo-10.8.2/docs.html 2016-06-16 18:24:22.000000000 +0200 @@ -301,7 +301,7 @@ <tr><td><a href="#iterators_cube">iterators (cubes)</a></td><td> </td><td>iterators and associated member functions for cubes</td></tr> <tr><td><a href="#iterators_spmat">iterators (sparse matrices)</a></td><td> </td><td>iterators and associated member functions for sparse matrices</td></tr> <tr><td><a href="#iterators_submat">iterators (submatrices)</a></td><td> </td><td>iterators and associated member functions for submatrices & subcubes</td></tr> -<tr><td><a href="#compat_container_fns">compat. container functions</a></td><td> </td><td>compatibility container functions</td></tr> +<tr><td><a href="#compat_container_fns">compat. container functions</a></td><td> </td><td>compatibility container functions</td></tr> <tr><td><small><small> </small></small></td><td><small><small> </small></small></td><td><small><small> </small></small></td></tr> <tr><td><a href="#as_col_row">.as_col / .as_row </a></td><td> </td><td>return flattened matrix as column or row vector</td></tr> <tr><td><a href="#t_st_members">.t / .st </a></td><td> </td><td>return matrix transpose</td></tr> @@ -331,7 +331,7 @@ <tr><td><a href="#raw_print">.raw_print</a></td><td> </td><td>print object without formatting</td></tr> <tr><td><a href="#brief_print">.brief_print</a></td><td> </td><td>print object in abridged form</td></tr> <tr><td><small><small> </small></small></td><td><small><small> </small></small></td><td><small><small> </small></small></td></tr> -<tr><td><a href="#save_load_mat">.save/.load (matrices & cubes)</a></td><td> </td><td>save/load matrices and cubes in files or streams</td></tr> +<tr><td><a href="#save_load_mat">.save/.load (matrices & cubes)</a></td><td> </td><td>save/load matrices and cubes in files or streams</td></tr> <tr><td><a href="#save_load_field">.save/.load (fields)</a></td><td> </td><td>save/load fields in files or streams</td></tr> </tbody> </table> @@ -2268,7 +2268,7 @@ </li> <br> <li> -For "broadcasting" operations, use <a href="#each_colrow">.each_col()</a> and <a href="#each_colrow">.each_row()</a> +Broadcasting operations are available via <a href="#each_colrow">.each_col()</a>, <a href="#each_colrow">.each_row()</a>, <a href="#each_slice">.each_slice()</a> </li> <br> <li> @@ -17192,7 +17192,37 @@ <b>wall_clock</b> <ul> <li> -Simple wall clock timer class for measuring the number of elapsed seconds +A simple timer class for measuring the number of elapsed seconds +</li> +<br> +<li> +An instance of the class has two member functions: +<br> +<br> +<table style="text-align: left;" border="0" cellpadding="2" cellspacing="2"> + <tbody> + <tr> + <td style="vertical-align: top;"> + <b><code>.tic()</code></b> + </td> + <td style="vertical-align: top;"> <br> + </td> + <td style="vertical-align: top;"> + start the timer + </td> + </tr> + <tr> + <td style="vertical-align: top;"> + <b><code>.toc()</code></b> + </td> + <td style="vertical-align: top;"> <br> + </td> + <td style="vertical-align: top;"> + return the number of seconds since the last call to <code>.tic()</code> + </td> + </tr> + </tbody> +</table> </li> <br> <li> @@ -17201,16 +17231,9 @@ <pre> wall_clock timer; -mat A(100, 100, fill::randu); -mat B(100, 100, fill::randu); -mat C; - timer.tic(); -for(uword i=0; i<100000; ++i) - { - C = A + B + A + B; - } +// ... do something ... double n = timer.toc(); @@ -17218,6 +17241,12 @@ </pre> </ul> </li> +<li> +See also: +<ul> +<li><a href="https://en.wikipedia.org/wiki/Elapsed_real_time">elapsed real time</a> in Wikipedia</li> +</ul> +</li> </ul> <br> diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/armadillo-10.8.1/include/armadillo_bits/arma_version.hpp new/armadillo-10.8.2/include/armadillo_bits/arma_version.hpp --- old/armadillo-10.8.1/include/armadillo_bits/arma_version.hpp 2016-06-16 18:24:21.000000000 +0200 +++ new/armadillo-10.8.2/include/armadillo_bits/arma_version.hpp 2016-06-16 18:24:22.000000000 +0200 @@ -23,7 +23,7 @@ #define ARMA_VERSION_MAJOR 10 #define ARMA_VERSION_MINOR 8 -#define ARMA_VERSION_PATCH 1 +#define ARMA_VERSION_PATCH 2 #define ARMA_VERSION_NAME "Realm Raider" diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/armadillo-10.8.1/include/armadillo_bits/op_cond_meat.hpp new/armadillo-10.8.2/include/armadillo_bits/op_cond_meat.hpp --- old/armadillo-10.8.1/include/armadillo_bits/op_cond_meat.hpp 2016-06-16 18:24:21.000000000 +0200 +++ new/armadillo-10.8.2/include/armadillo_bits/op_cond_meat.hpp 2016-06-16 18:24:22.000000000 +0200 @@ -96,12 +96,16 @@ if(try_sympd) { + arma_extra_debug_print("op_cond::rcond(): attempting sympd optimisation"); + bool calc_ok = false; const T out_val = auxlib::rcond_sympd(A, calc_ok); if(calc_ok) { return out_val; } + arma_extra_debug_print("op_cond::rcond(): sympd optimisation failed"); + // auxlib::rcond_sympd() may have failed because A isn't really sympd // restore A, as auxlib::rcond_sympd() may have destroyed it A = X.get_ref(); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/armadillo-10.8.1/include/armadillo_bits/op_inv_meat.hpp new/armadillo-10.8.2/include/armadillo_bits/op_inv_meat.hpp --- old/armadillo-10.8.1/include/armadillo_bits/op_inv_meat.hpp 2016-06-16 18:24:21.000000000 +0200 +++ new/armadillo-10.8.2/include/armadillo_bits/op_inv_meat.hpp 2016-06-16 18:24:22.000000000 +0200 @@ -72,12 +72,16 @@ if((out.n_rows <= 4) && is_cx<eT>::no) { + arma_extra_debug_print("op_inv: attempting tinymatrix optimisation"); + Mat<eT> tmp(out.n_rows, out.n_rows, arma_nozeros_indicator()); const bool status = op_inv::apply_tiny_noalias(tmp, out); if(status) { arrayops::copy(out.memptr(), tmp.memptr(), tmp.n_elem); return true; } + arma_extra_debug_print("op_inv: tinymatrix optimisation failed"); + // fallthrough if optimisation failed } @@ -320,12 +324,16 @@ if((out.n_rows <= 4) && is_cx<eT>::no) { + arma_extra_debug_print("op_inv_sympd: attempting tinymatrix optimisation"); + Mat<eT> tmp(out.n_rows, out.n_rows, arma_nozeros_indicator()); const bool status = op_inv::apply_tiny_noalias(tmp, out); if(status) { arrayops::copy(out.memptr(), tmp.memptr(), tmp.n_elem); return true; } + arma_extra_debug_print("op_inv_sympd: tinymatrix optimisation failed"); + // fallthrough if optimisation failed } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/armadillo-10.8.1/include/armadillo_bits/op_pinv_meat.hpp new/armadillo-10.8.2/include/armadillo_bits/op_pinv_meat.hpp --- old/armadillo-10.8.1/include/armadillo_bits/op_pinv_meat.hpp 2016-06-16 18:24:21.000000000 +0200 +++ new/armadillo-10.8.2/include/armadillo_bits/op_pinv_meat.hpp 2016-06-16 18:24:22.000000000 +0200 @@ -79,15 +79,18 @@ bool do_sym = false; bool do_sympd = false; - if(auxlib::crippled_lapack(A) == false) + const bool is_sym_size_ok = (n_rows > (is_cx<eT>::yes ? uword(20) : uword(40))); + const bool is_arg_default = ((tol == T(0)) && (method_id == uword(0))); + + if( (auxlib::crippled_lapack(A) == false) && (is_arg_default || is_sym_size_ok) ) { bool is_approx_sym = false; bool is_approx_sympd = false; sympd_helper::analyse_matrix(is_approx_sym, is_approx_sympd, A); - do_sym = (is_cx<eT>::no) ? (is_approx_sym) : (is_approx_sym && is_approx_sympd); - do_sympd = is_approx_sympd && (tol == T(0)) && (method_id == uword(0)); + do_sym = is_sym_size_ok && ((is_cx<eT>::no) ? (is_approx_sym) : (is_approx_sym && is_approx_sympd)); + do_sympd = is_arg_default && is_approx_sympd; } #else const bool do_sym = false; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/armadillo-10.8.1/include/armadillo_bits/op_rank_meat.hpp new/armadillo-10.8.2/include/armadillo_bits/op_rank_meat.hpp --- old/armadillo-10.8.1/include/armadillo_bits/op_rank_meat.hpp 2016-06-16 18:24:21.000000000 +0200 +++ new/armadillo-10.8.2/include/armadillo_bits/op_rank_meat.hpp 2016-06-16 18:24:22.000000000 +0200 @@ -45,7 +45,7 @@ #if defined(ARMA_OPTIMISE_SYMPD) bool do_sym = false; - if(auxlib::crippled_lapack(A) == false) + if((auxlib::crippled_lapack(A) == false) && (A.n_rows >= (is_cx<eT>::yes ? uword(64) : uword(128)))) { bool is_approx_sym = false; bool is_approx_sympd = false; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/armadillo-10.8.1/include/armadillo_bits/spglue_max_meat.hpp new/armadillo-10.8.2/include/armadillo_bits/spglue_max_meat.hpp --- old/armadillo-10.8.1/include/armadillo_bits/spglue_max_meat.hpp 2016-06-16 18:24:21.000000000 +0200 +++ new/armadillo-10.8.2/include/armadillo_bits/spglue_max_meat.hpp 2016-06-16 18:24:22.000000000 +0200 @@ -58,7 +58,7 @@ { arma_extra_debug_sigprint(); - arma_debug_assert_same_size(pa.get_n_rows(), pa.get_n_cols(), pb.get_n_rows(), pb.get_n_cols(), "element-wise max"); + arma_debug_assert_same_size(pa.get_n_rows(), pa.get_n_cols(), pb.get_n_rows(), pb.get_n_cols(), "element-wise max()"); const uword max_n_nonzero = pa.get_n_nonzero() + pb.get_n_nonzero(); @@ -184,7 +184,7 @@ const uword n_rows = pa.get_n_rows(); const uword n_cols = pa.get_n_cols(); - arma_debug_assert_same_size( n_rows, n_cols, pb.get_n_rows(), pb.get_n_cols(), "element-wise maximum" ); + arma_debug_assert_same_size( n_rows, n_cols, pb.get_n_rows(), pb.get_n_cols(), "element-wise max()" ); out.set_size(n_rows, n_cols); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/armadillo-10.8.1/include/armadillo_bits/spglue_min_meat.hpp new/armadillo-10.8.2/include/armadillo_bits/spglue_min_meat.hpp --- old/armadillo-10.8.1/include/armadillo_bits/spglue_min_meat.hpp 2016-06-16 18:24:21.000000000 +0200 +++ new/armadillo-10.8.2/include/armadillo_bits/spglue_min_meat.hpp 2016-06-16 18:24:22.000000000 +0200 @@ -58,7 +58,7 @@ { arma_extra_debug_sigprint(); - arma_debug_assert_same_size(pa.get_n_rows(), pa.get_n_cols(), pb.get_n_rows(), pb.get_n_cols(), "element-wise minimum"); + arma_debug_assert_same_size(pa.get_n_rows(), pa.get_n_cols(), pb.get_n_rows(), pb.get_n_cols(), "element-wise min()"); const uword max_n_nonzero = pa.get_n_nonzero() + pb.get_n_nonzero(); @@ -184,7 +184,7 @@ const uword n_rows = pa.get_n_rows(); const uword n_cols = pa.get_n_cols(); - arma_debug_assert_same_size( n_rows, n_cols, pb.get_n_rows(), pb.get_n_cols(), "element-wise minimum" ); + arma_debug_assert_same_size( n_rows, n_cols, pb.get_n_rows(), pb.get_n_cols(), "element-wise min()" ); out.set_size(n_rows, n_cols); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/armadillo-10.8.1/include/armadillo_bits/sympd_helper.hpp new/armadillo-10.8.2/include/armadillo_bits/sympd_helper.hpp --- old/armadillo-10.8.1/include/armadillo_bits/sympd_helper.hpp 2016-06-16 18:24:21.000000000 +0200 +++ new/armadillo-10.8.2/include/armadillo_bits/sympd_helper.hpp 2016-06-16 18:24:22.000000000 +0200 @@ -215,6 +215,8 @@ bool guess_sympd(const Mat<eT>& A) { + arma_extra_debug_sigprint(); + // analyse matrices with size >= 4x4 if((A.n_rows != A.n_cols) || (A.n_rows < uword(4))) { return false; } @@ -229,6 +231,8 @@ bool guess_sympd(const Mat<eT>& A, const uword min_n_rows) { + arma_extra_debug_sigprint(); + if((A.n_rows != A.n_cols) || (A.n_rows < min_n_rows)) { return false; } return guess_sympd_worker(A);