Script 'mail_helper' called by obssrc
Hello community,

here is the log from the commit of package armadillo for openSUSE:Factory 
checked in at 2021-12-27 16:07:30
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/armadillo (Old)
 and      /work/SRC/openSUSE:Factory/.armadillo.new.2520 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "armadillo"

Mon Dec 27 16:07:30 2021 rev:156 rq:942789 version:10.7.5

Changes:
--------
--- /work/SRC/openSUSE:Factory/armadillo/armadillo.changes      2021-11-18 
10:33:52.343909568 +0100
+++ /work/SRC/openSUSE:Factory/.armadillo.new.2520/armadillo.changes    
2021-12-27 16:07:42.753713888 +0100
@@ -1,0 +2,6 @@
+Fri Dec 24 21:29:45 UTC 2021 - Atri Bhattacharya <badshah...@gmail.com>
+
+- Update to version 10.7.5:
+  * Undocumented bug fixes.
+
+-------------------------------------------------------------------

Old:
----
  armadillo-10.7.3.tar.xz

New:
----
  armadillo-10.7.5.tar.xz

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ armadillo.spec ++++++
--- /var/tmp/diff_new_pack.LIXSPp/_old  2021-12-27 16:07:43.285714266 +0100
+++ /var/tmp/diff_new_pack.LIXSPp/_new  2021-12-27 16:07:43.289714268 +0100
@@ -18,7 +18,7 @@
 
 %define soname libarmadillo10
 Name:           armadillo
-Version:        10.7.3
+Version:        10.7.5
 Release:        0
 Summary:        C++ matrix library with interfaces to LAPACK and ATLAS
 License:        Apache-2.0

++++++ armadillo-10.7.3.tar.xz -> armadillo-10.7.5.tar.xz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/armadillo-10.7.3/CMakeLists.txt 
new/armadillo-10.7.5/CMakeLists.txt
--- old/armadillo-10.7.3/CMakeLists.txt 2016-06-16 18:24:03.000000000 +0200
+++ new/armadillo-10.7.5/CMakeLists.txt 2016-06-16 18:24:05.000000000 +0200
@@ -61,17 +61,6 @@
 set(ARMA_USE_EXTERN_RNG false)
 set(ARMA_USE_SUPERLU    false)  # Caveat: only SuperLU version 5.x can be used!
 
-## NOTE: OpenBLAS appears to have its own LAPACK functions,
-## NOTE: but on some systems the installed version of OpenBLAS
-## NOTE: has been modified not to include LAPACK functions.
-## NOTE: As the presence of LAPACK functions in OpenBLAS can't be guaranteed,
-## NOTE: this installer script requires LAPACK to be present on the system
-## NOTE: in order to enable the use of LAPACK functions by Armadillo.
-## NOTE: This installer will link with OpenBLAS first,
-## NOTE: so if a full version of OpenBLAS is actually present on the system,
-## NOTE: the linker should make use of LAPACK functions from OpenBLAS
-## NOTE: instead of standard LAPACK.
-
 
 ## extract version from sources
 
@@ -209,6 +198,10 @@
 ## you can also disable HDF5 detection directly on the command line:
 ## cmake -D DETECT_HDF5=false .
 
+option(OPENBLAS_PROVIDES_LAPACK "Assume that OpenBLAS provides LAPACK 
functions" OFF)
+## Example use on the command line:
+## cmake -D OPENBLAS_PROVIDES_LAPACK=true .
+
 option(ALLOW_FLEXIBLAS_LINUX "Allow detection of FlexiBLAS on Linux" ON)
 # set(ALLOW_FLEXIBLAS_LINUX false)
 ## uncomment the above line to disable the detection of FlexiBLAS;
@@ -250,8 +243,10 @@
 message(STATUS "CMAKE_CXX_COMPILER_ID      = ${CMAKE_CXX_COMPILER_ID}"     )
 message(STATUS "CMAKE_CXX_COMPILER_VERSION = ${CMAKE_CXX_COMPILER_VERSION}")
 message(STATUS "CMAKE_COMPILER_IS_GNUCXX   = ${CMAKE_COMPILER_IS_GNUCXX}"  )
+message(STATUS ""                                                          )
 message(STATUS "BUILD_SHARED_LIBS          = ${BUILD_SHARED_LIBS}"         )
 message(STATUS "DETECT_HDF5                = ${DETECT_HDF5}"               )
+message(STATUS "OPENBLAS_PROVIDES_LAPACK   = ${OPENBLAS_PROVIDES_LAPACK}"  )
 message(STATUS "ALLOW_FLEXIBLAS_LINUX      = ${ALLOW_FLEXIBLAS_LINUX}"     )
 message(STATUS "ALLOW_OPENBLAS_MACOS       = ${ALLOW_OPENBLAS_MACOS}"      )
 message(STATUS "ALLOW_BLAS_LAPACK_MACOS    = ${ALLOW_BLAS_LAPACK_MACOS}"   )
@@ -399,6 +394,10 @@
       set(ARMA_USE_BLAS true)
       set(ARMA_LIBS ${ARMA_LIBS} ${OpenBLAS_LIBRARIES})
       
+      if(OPENBLAS_PROVIDES_LAPACK)
+        set(ARMA_USE_LAPACK true)
+      endif()
+      
       message(STATUS "")
       message(STATUS "*** If the OpenBLAS library is installed in")
       message(STATUS "*** /usr/local/lib or /usr/local/lib64")
@@ -499,6 +498,34 @@
   set(ARMA_SUPERLU_INCLUDE_DIR ${SuperLU_INCLUDE_DIR})
 endif()
 
+
+if(NOT ARMA_USE_LAPACK)
+  message(STATUS "")
+  message(STATUS "*** WARNING: Use of LAPACK is not enabled, as no LAPACK 
compatible library has been found.")
+  message(STATUS "*** WARNING: This will materially degrade the available 
functionality in Armadillo.")
+
+  if(OpenBLAS_FOUND)
+    message(STATUS "")
+    message(STATUS "*** NOTE: OpenBLAS found but LAPACK not found.")
+    message(STATUS "*** NOTE: OpenBLAS may have been built without LAPACK 
functions,")
+    message(STATUS "*** NOTE: so cannot assume that LAPACK functions are 
available.")
+    message(STATUS "*** NOTE: To forcefully assume that OpenBLAS provides 
LAPACK functions,")
+    message(STATUS "*** NOTE: rerun cmake with the OPENBLAS_PROVIDES_LAPACK 
option enabled:")
+    message(STATUS "*** NOTE: cmake -D OPENBLAS_PROVIDES_LAPACK=true .")
+  endif()
+endif()
+
+
+message(STATUS "")
+message(STATUS "*** Result of configuration:")
+message(STATUS "*** ARMA_USE_WRAPPER    = ${ARMA_USE_WRAPPER}")
+message(STATUS "*** ARMA_USE_LAPACK     = ${ARMA_USE_LAPACK}")
+message(STATUS "*** ARMA_USE_BLAS       = ${ARMA_USE_BLAS}")
+message(STATUS "*** ARMA_USE_ATLAS      = ${ARMA_USE_ATLAS}")
+message(STATUS "*** ARMA_USE_HDF5_ALT   = ${ARMA_USE_HDF5_ALT}")
+message(STATUS "*** ARMA_USE_ARPACK     = ${ARMA_USE_ARPACK}")
+message(STATUS "*** ARMA_USE_EXTERN_RNG = ${ARMA_USE_EXTERN_RNG}")
+message(STATUS "*** ARMA_USE_SUPERLU    = ${ARMA_USE_SUPERLU}")
 message(STATUS "")
 message(STATUS "*** Armadillo wrapper library will use the following 
libraries:")
 message(STATUS "*** ARMA_LIBS = ${ARMA_LIBS}")
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/armadillo-10.7.3/README.md 
new/armadillo-10.7.5/README.md
--- old/armadillo-10.7.3/README.md      2016-06-16 18:24:03.000000000 +0200
+++ new/armadillo-10.7.5/README.md      2016-06-16 18:24:05.000000000 +0200
@@ -21,7 +21,7 @@
 2.  [Citation Details](#2-citation-details)
 3.  [Distribution License](#3-distribution-license)
 
-4.  [Prerequisites](#4-prerequisites)
+4.  [Prerequisites and Dependencies](#4-prerequisites-and-dependencies)
 
 5.  [Linux and macOS: Installation](#5-linux-and-macos-installation)
 6.  [Linux and macOS: Compiling and 
Linking](#6-linux-and-macos-compiling-and-linking)
@@ -103,7 +103,14 @@
 
 ---
 
-### 4: Prerequisites
+### 4: Prerequisites and Dependencies
+
+The functionality of Armadillo is partly dependent on other libraries:
+OpenBLAS (or standard BLAS) and LAPACK (for dense matrices),
+as well as ARPACK and SuperLU (for sparse matrices).
+Caveat: only SuperLU versions 5.2.x can be used.
+On macOS, the Accelerate framework can be used for BLAS and LAPACK functions.
+Use of OpenBLAS is strongly recommended on all systems.
 
 Armadillo 10.x requires a C++ compiler that supports at least the C++11 
standard.
 Use Armadillo 9.900 if your compiler only supports the old C++98/C++03 
standards.
@@ -118,17 +125,6 @@
 
 On Windows systems, the MinGW toolset or Visual Studio C++ 2019 (MSVC) can be 
used.
 
-The functionality of Armadillo is partly dependent on other libraries:
-OpenBLAS (or standard BLAS) and LAPACK (for dense matrices),
-as well as ARPACK and SuperLU (for sparse matrices).
-Caveat: only SuperLU versions 5.2.x can be used.
-On macOS, the Accelerate framework can be used for BLAS and LAPACK functions.
-
-Armadillo can work without the above libraries, but its functionality will be 
reduced.
-Basic functionality will be available (eg. matrix addition and multiplication),
-but operations such as eigen decomposition and system solvers will not be.
-Matrix multiplication may not be as fast (mainly for large matrices).
-
 ---
 
 ### 5: Linux and macOS: Installation
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/armadillo-10.7.3/docs.html 
new/armadillo-10.7.5/docs.html
--- old/armadillo-10.7.3/docs.html      2016-06-16 18:24:03.000000000 +0200
+++ new/armadillo-10.7.5/docs.html      2016-06-16 18:24:05.000000000 +0200
@@ -1789,7 +1789,7 @@
 </li>
 <br>
 <li>
-Each element can have an arbitrary size (eg. in a field of matrices, each 
matrix can have a different size)
+Each element can have an arbitrary size (eg. in a field of matrices, each 
matrix can have a unique size)
 </li>
 <br>
 <li>
@@ -5957,7 +5957,7 @@
 <br>
 <li>
 This function should be used sparingly and only in cases where it is 
absolutely necessary;
-indiscriminate use can cause performance degradations
+indiscriminate use can degrade performance
 </li>
 <br>
 <li>
@@ -5974,6 +5974,7 @@
 <br>
 <li>See also:
 <ul>
+<li><a href="#as_scalar">as_scalar()</a></li>
 <li><a href="#Mat">Mat class</a></li>
 </ul>
 </li>
@@ -14888,7 +14889,7 @@
 </li>
 <br>
 <li>
-For matrix <i>X</i>, produce a matrix with the quantiles for each column 
vector (<i>dim&thinsp;=&thinsp;0</i>) or each row vector 
(<i>dim&thinsp;=&thinsp;0</i>)
+For matrix <i>X</i>, produce a matrix with the quantiles for each column 
vector (<i>dim&thinsp;=&thinsp;0</i>) or each row vector 
(<i>dim&thinsp;=&thinsp;1</i>)
 </li>
 <br>
 <li>
@@ -18475,9 +18476,8 @@
     </td>
     <td style="vertical-align: top;">
 Enable use of SuperLU, which is used by <a href="#spsolve">spsolve()</a> for 
finding the solutions of sparse systems,
-and by <a href="#eigs_sym">eigs_sym()</a>&nbsp;&amp;&nbsp;<a 
href="#eigs_gen">eigs_gen()</a> in shift-invert mode.
+as well as <a href="#eigs_sym">eigs_sym()</a> and <a 
href="#eigs_gen">eigs_gen()</a> in shift-invert mode.
 You will need to link with the superlu library, for example 
<code><i>-lsuperlu</i></code>
-<br><b>Caveat:</b> Armadillo&nbsp;7.x and later versions require 
SuperLU&nbsp;5.2
     </td>
   </tr>
   <tr>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/armadillo-10.7.3/include/armadillo_bits/GlueCube_bones.hpp 
new/armadillo-10.7.5/include/armadillo_bits/GlueCube_bones.hpp
--- old/armadillo-10.7.3/include/armadillo_bits/GlueCube_bones.hpp      
2016-06-16 18:24:03.000000000 +0200
+++ new/armadillo-10.7.5/include/armadillo_bits/GlueCube_bones.hpp      
2016-06-16 18:24:05.000000000 +0200
@@ -30,8 +30,8 @@
   typedef typename T1::elem_type                   elem_type;
   typedef typename get_pod_type<elem_type>::result pod_type;
   
-  arma_inline  GlueCube(const BaseCube<typename T1::elem_type, T1>& in_A, 
const BaseCube<typename T1::elem_type, T2>& in_B);
-  arma_inline ~GlueCube();
+  inline  GlueCube(const BaseCube<typename T1::elem_type, T1>& in_A, const 
BaseCube<typename T1::elem_type, T2>& in_B);
+  inline ~GlueCube();
   
   const T1& A;  //!< first operand;  must be derived from BaseCube
   const T2& B;  //!< second operand; must be derived from BaseCube
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/armadillo-10.7.3/include/armadillo_bits/Glue_bones.hpp 
new/armadillo-10.7.5/include/armadillo_bits/Glue_bones.hpp
--- old/armadillo-10.7.3/include/armadillo_bits/Glue_bones.hpp  2016-06-16 
18:24:03.000000000 +0200
+++ new/armadillo-10.7.5/include/armadillo_bits/Glue_bones.hpp  2016-06-16 
18:24:05.000000000 +0200
@@ -52,9 +52,9 @@
   typedef typename T1::elem_type                   elem_type;
   typedef typename get_pod_type<elem_type>::result pod_type;
   
-  arma_inline  Glue(const T1& in_A, const T2& in_B);
-  arma_inline  Glue(const T1& in_A, const T2& in_B, const uword in_aux_uword);
-  arma_inline ~Glue();
+  inline  Glue(const T1& in_A, const T2& in_B);
+  inline  Glue(const T1& in_A, const T2& in_B, const uword in_aux_uword);
+  inline ~Glue();
   
   const T1&   A;          //!< first operand;  must be derived from Base
   const T2&   B;          //!< second operand; must be derived from Base
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/armadillo-10.7.3/include/armadillo_bits/arma_version.hpp 
new/armadillo-10.7.5/include/armadillo_bits/arma_version.hpp
--- old/armadillo-10.7.3/include/armadillo_bits/arma_version.hpp        
2016-06-16 18:24:03.000000000 +0200
+++ new/armadillo-10.7.5/include/armadillo_bits/arma_version.hpp        
2016-06-16 18:24:05.000000000 +0200
@@ -23,7 +23,7 @@
 
 #define ARMA_VERSION_MAJOR 10
 #define ARMA_VERSION_MINOR 7
-#define ARMA_VERSION_PATCH 3
+#define ARMA_VERSION_PATCH 5
 #define ARMA_VERSION_NAME  "Entropy Maximiser"
 
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/armadillo-10.7.3/include/armadillo_bits/config.hpp.cmake 
new/armadillo-10.7.5/include/armadillo_bits/config.hpp.cmake
--- old/armadillo-10.7.3/include/armadillo_bits/config.hpp.cmake        
2016-06-16 18:24:03.000000000 +0200
+++ new/armadillo-10.7.5/include/armadillo_bits/config.hpp.cmake        
2016-06-16 18:24:05.000000000 +0200
@@ -1,3 +1,5 @@
+// SPDX-License-Identifier: Apache-2.0
+// 
 // Copyright 2008-2016 Conrad Sanderson (http://conradsanderson.id.au)
 // Copyright 2008-2016 National ICT Australia (NICTA)
 // 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/armadillo-10.7.3/include/armadillo_bits/diagmat_proxy.hpp 
new/armadillo-10.7.5/include/armadillo_bits/diagmat_proxy.hpp
--- old/armadillo-10.7.3/include/armadillo_bits/diagmat_proxy.hpp       
2016-06-16 18:24:03.000000000 +0200
+++ new/armadillo-10.7.5/include/armadillo_bits/diagmat_proxy.hpp       
2016-06-16 18:24:05.000000000 +0200
@@ -92,7 +92,7 @@
     }
   
   
-  constexpr bool is_alias(const Mat<elem_type>&) const { return false; }
+  inline bool is_alias(const Mat<elem_type>& X) const { return P.is_alias(X); }
   
   const Proxy<T1> P;
   const bool      P_is_vec;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/armadillo-10.7.3/include/armadillo_bits/diskio_meat.hpp 
new/armadillo-10.7.5/include/armadillo_bits/diskio_meat.hpp
--- old/armadillo-10.7.3/include/armadillo_bits/diskio_meat.hpp 2016-06-16 
18:24:03.000000000 +0200
+++ new/armadillo-10.7.5/include/armadillo_bits/diskio_meat.hpp 2016-06-16 
18:24:05.000000000 +0200
@@ -469,7 +469,20 @@
       {
       // unsigned integer
       
-      if(str[0] == '-')  { val = eT(0);  return true; }
+      if((str[0] == '-') && (N >= 2))
+        {
+        val = eT(0);  
+        
+        if((str[1] == '-') || (str[1] == '+')) { return false; }
+        
+        const char* str_offset1 = &(str[1]);
+        
+        std::strtoull(str_offset1, &endptr, 10);
+        
+        if(str_offset1 == endptr)  { return false; }
+        
+        return true;
+        }
       
       val = eT( std::strtoull(str, &endptr, 10) );
       }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/armadillo-10.7.3/include/armadillo_bits/fn_as_scalar.hpp 
new/armadillo-10.7.5/include/armadillo_bits/fn_as_scalar.hpp
--- old/armadillo-10.7.3/include/armadillo_bits/fn_as_scalar.hpp        
2016-06-16 18:24:03.000000000 +0200
+++ new/armadillo-10.7.5/include/armadillo_bits/fn_as_scalar.hpp        
2016-06-16 18:24:05.000000000 +0200
@@ -294,25 +294,20 @@
 
 template<typename T1, typename T2>
 arma_warn_unused
-arma_inline
+inline
 typename T1::elem_type
 as_scalar(const Glue<T1, T2, glue_times>& X, const typename 
arma_not_cx<typename T1::elem_type>::result* junk = nullptr)
   {
   arma_extra_debug_sigprint();
   arma_ignore(junk);
   
-  if(is_glue_times_diag<T1>::value == false)
-    {
-    constexpr uword N_mat = 1 + depth_lhs< glue_times, Glue<T1,T2,glue_times> 
>::num;
-    
-    arma_extra_debug_print(arma_str::format("N_mat = %u") % N_mat);
-    
-    return as_scalar_redirect<N_mat>::apply(X);
-    }
-  else
-    {
-    return as_scalar_diag(X);
-    }
+  if(is_glue_times_diag<T1>::value)  { return as_scalar_diag(X); }
+  
+  constexpr uword N_mat = 1 + depth_lhs< glue_times, Glue<T1,T2,glue_times> 
>::num;
+  
+  arma_extra_debug_print(arma_str::format("N_mat = %u") % N_mat);
+  
+  return as_scalar_redirect<N_mat>::apply(X);
   }
 
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/armadillo-10.7.3/include/armadillo_bits/fn_stddev.hpp 
new/armadillo-10.7.5/include/armadillo_bits/fn_stddev.hpp
--- old/armadillo-10.7.3/include/armadillo_bits/fn_stddev.hpp   2016-06-16 
18:24:03.000000000 +0200
+++ new/armadillo-10.7.5/include/armadillo_bits/fn_stddev.hpp   2016-06-16 
18:24:05.000000000 +0200
@@ -77,7 +77,7 @@
 
 template<typename T>
 arma_warn_unused
-arma_inline
+inline
 typename arma_scalar_only<T>::result
 stddev(const T&)
   {
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/armadillo-10.7.3/include/armadillo_bits/fn_var.hpp 
new/armadillo-10.7.5/include/armadillo_bits/fn_var.hpp
--- old/armadillo-10.7.3/include/armadillo_bits/fn_var.hpp      2016-06-16 
18:24:03.000000000 +0200
+++ new/armadillo-10.7.5/include/armadillo_bits/fn_var.hpp      2016-06-16 
18:24:05.000000000 +0200
@@ -77,7 +77,7 @@
 
 template<typename T>
 arma_warn_unused
-arma_inline
+inline
 typename arma_scalar_only<T>::result
 var(const T&)
   {
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/armadillo-10.7.3/include/armadillo_bits/op_expmat_meat.hpp 
new/armadillo-10.7.5/include/armadillo_bits/op_expmat_meat.hpp
--- old/armadillo-10.7.3/include/armadillo_bits/op_expmat_meat.hpp      
2016-06-16 18:24:03.000000000 +0200
+++ new/armadillo-10.7.5/include/armadillo_bits/op_expmat_meat.hpp      
2016-06-16 18:24:05.000000000 +0200
@@ -74,6 +74,8 @@
     
     if(A.is_diagmat())
       {
+      arma_extra_debug_print("op_expmat: detected diagonal matrix");
+      
       const uword N = (std::min)(A.n_rows, A.n_cols);
       
       out.zeros(N,N);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/armadillo-10.7.3/include/armadillo_bits/op_logmat_meat.hpp 
new/armadillo-10.7.5/include/armadillo_bits/op_logmat_meat.hpp
--- old/armadillo-10.7.3/include/armadillo_bits/op_logmat_meat.hpp      
2016-06-16 18:24:03.000000000 +0200
+++ new/armadillo-10.7.5/include/armadillo_bits/op_logmat_meat.hpp      
2016-06-16 18:24:05.000000000 +0200
@@ -111,6 +111,8 @@
   
   if(A.is_diagmat())
     {
+    arma_extra_debug_print("op_logmat: detected diagonal matrix");
+    
     const uword N = A.n_rows;
     
     out.zeros(N,N);  // aliasing can't happen as op_logmat is defined as 
cx_mat = op(mat)
@@ -294,6 +296,8 @@
   
   if(S.is_diagmat())
     {
+    arma_extra_debug_print("op_logmat_cx: detected diagonal matrix");
+    
     const uword N = S.n_rows;
     
     out.zeros(N,N);  // aliasing can't happen as S is generated
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/armadillo-10.7.3/include/armadillo_bits/op_pinv_meat.hpp 
new/armadillo-10.7.5/include/armadillo_bits/op_pinv_meat.hpp
--- old/armadillo-10.7.3/include/armadillo_bits/op_pinv_meat.hpp        
2016-06-16 18:24:03.000000000 +0200
+++ new/armadillo-10.7.5/include/armadillo_bits/op_pinv_meat.hpp        
2016-06-16 18:24:05.000000000 +0200
@@ -68,45 +68,6 @@
   
   if(A.is_empty())  { out.set_size(n_cols,n_rows); return true; }
   
-  if(A.is_diagmat())
-    {
-    arma_extra_debug_print("op_pinv: detected diagonal matrix");
-    
-    out.zeros(n_cols, n_rows);
-    
-    const uword N = (std::min)(n_rows, n_cols);
-    
-    podarray<T> diag_abs_vals(N);
-    
-    T max_abs_Aii = T(0);
-    
-    for(uword i=0; i<N; ++i)
-      {
-      const eT     Aii = A.at(i,i);
-      const  T abs_Aii = std::abs(Aii);
-      
-      if(arma_isnan(Aii))  { return false; }
-      
-      diag_abs_vals[i] = abs_Aii;
-      
-      max_abs_Aii = (abs_Aii > max_abs_Aii) ? abs_Aii : max_abs_Aii;
-      }
-    
-    if(tol == T(0))  { tol = (std::max)(n_rows, n_cols) * max_abs_Aii * 
std::numeric_limits<T>::epsilon(); }
-    
-    for(uword i=0; i<N; ++i)
-      {
-      if(diag_abs_vals[i] >= tol)
-        {
-        const eT Aii = A.at(i,i);
-        
-        if(Aii != eT(0))  { out.at(i,i) = eT(eT(1) / Aii); }
-        }
-      }
-    
-    return true;
-    }
-    
   #if defined(ARMA_OPTIMISE_SYMPD)
     const bool try_sympd = (auxlib::crippled_lapack(A) == false) && (tol == 
T(0)) && (method_id == uword(0)) && sympd_helper::guess_sympd_anysize(A);
   #else
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/armadillo-10.7.3/include/armadillo_bits/op_powmat_meat.hpp 
new/armadillo-10.7.5/include/armadillo_bits/op_powmat_meat.hpp
--- old/armadillo-10.7.3/include/armadillo_bits/op_powmat_meat.hpp      
2016-06-16 18:24:03.000000000 +0200
+++ new/armadillo-10.7.5/include/armadillo_bits/op_powmat_meat.hpp      
2016-06-16 18:24:05.000000000 +0200
@@ -96,6 +96,8 @@
   
   if(X.is_diagmat())
     {
+    arma_extra_debug_print("op_powmat: detected diagonal matrix");
+    
     podarray<eT> tmp(N);  // use temporary array in case we have aliasing
     
     for(uword i=0; i<N; ++i)  { tmp[i] = eop_aux::pow(X.at(i,i), int(y)); }
@@ -192,6 +194,8 @@
   
   if(A.is_diagmat())
     {
+    arma_extra_debug_print("op_powmat_cx: detected diagonal matrix");
+    
     podarray<out_eT> tmp(N);  // use temporary array in case we have aliasing
     
     for(uword i=0; i<N; ++i)  { tmp[i] = eop_aux::pow( 
std::complex<in_T>(A.at(i,i)), y) ; }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/armadillo-10.7.3/include/armadillo_bits/op_sqrtmat_meat.hpp 
new/armadillo-10.7.5/include/armadillo_bits/op_sqrtmat_meat.hpp
--- old/armadillo-10.7.3/include/armadillo_bits/op_sqrtmat_meat.hpp     
2016-06-16 18:24:03.000000000 +0200
+++ new/armadillo-10.7.5/include/armadillo_bits/op_sqrtmat_meat.hpp     
2016-06-16 18:24:05.000000000 +0200
@@ -116,6 +116,8 @@
   
   if(A.is_diagmat())
     {
+    arma_extra_debug_print("op_sqrtmat: detected diagonal matrix");
+    
     const uword N = A.n_rows;
     
     out.zeros(N,N);  // aliasing can't happen as op_sqrtmat is defined as 
cx_mat = op(mat)
@@ -327,6 +329,8 @@
   
   if(S.is_diagmat())
     {
+    arma_extra_debug_print("op_sqrtmat_cx: detected diagonal matrix");
+    
     const uword N = S.n_rows;
     
     out.zeros(N,N);  // aliasing can't happen as S is generated
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/armadillo-10.7.3/include/armadillo_bits/trimat_helper.hpp 
new/armadillo-10.7.5/include/armadillo_bits/trimat_helper.hpp
--- old/armadillo-10.7.3/include/armadillo_bits/trimat_helper.hpp       
2016-06-16 18:24:03.000000000 +0200
+++ new/armadillo-10.7.5/include/armadillo_bits/trimat_helper.hpp       
2016-06-16 18:24:05.000000000 +0200
@@ -39,19 +39,15 @@
   
   if(N < 2)  { return false; }
   
-  const eT*   A_mem   = A.memptr();
+  const eT*   A_col   = A.memptr();
   const eT    eT_zero = eT(0);
   
-  // quickly check bottom-left corner
-  const eT* A_col0 = A_mem;
-  const eT* A_col1 = A_col0 + N;
+  // quickly check element at bottom-left
   
-  if( (A_col0[N-2] != eT_zero) || (A_col0[Nm1] != eT_zero) || (A_col1[Nm1] != 
eT_zero) )  { return false; }
+  if(A_col[Nm1] != eT_zero)  { return false; }
   
   // if we got to this point, do a thorough check
   
-  const eT* A_col = A_mem;
-  
   for(uword j=0; j < Nm1; ++j)
     {
     for(uword i=(j+1); i < N; ++i)
@@ -84,11 +80,11 @@
   
   const eT eT_zero = eT(0);
   
-  // quickly check top-right corner
-  const eT* A_colNm2 = A.colptr(N-2);
-  const eT* A_colNm1 = A_colNm2 + N;
+  // quickly check element at top-right
+  
+  const eT* A_colNm1 = A.colptr(N-1);
   
-  if( (A_colNm2[0] != eT_zero) || (A_colNm1[0] != eT_zero) || (A_colNm1[1] != 
eT_zero) )  { return false; }
+  if(A_colNm1[0] != eT_zero)  { return false; }
   
   // if we got to this point, do a thorough check
   

Reply via email to