Hello community,

here is the log from the commit of package armadillo for openSUSE:Factory 
checked in at 2020-09-08 22:50:57
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/armadillo (Old)
 and      /work/SRC/openSUSE:Factory/.armadillo.new.3399 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "armadillo"

Tue Sep  8 22:50:57 2020 rev:138 rq:832953 version:9.900.3

Changes:
--------
--- /work/SRC/openSUSE:Factory/armadillo/armadillo.changes      2020-07-24 
13:36:07.770725455 +0200
+++ /work/SRC/openSUSE:Factory/.armadillo.new.3399/armadillo.changes    
2020-09-08 22:51:04.743626048 +0200
@@ -1,0 +2,6 @@
+Sun Sep  6 10:02:06 UTC 2020 - Atri Bhattacharya <badshah...@gmail.com>
+
+- Update to version 9.900.3:
+  * Bug-fix release, no changelog from upstream.
+
+-------------------------------------------------------------------

Old:
----
  armadillo-9.900.2.tar.xz

New:
----
  armadillo-9.900.3.tar.xz

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

Other differences:
------------------
++++++ armadillo.spec ++++++
--- /var/tmp/diff_new_pack.tukHAk/_old  2020-09-08 22:51:05.419626386 +0200
+++ /var/tmp/diff_new_pack.tukHAk/_new  2020-09-08 22:51:05.423626388 +0200
@@ -18,7 +18,7 @@
 
 %define soname libarmadillo9
 Name:           armadillo
-Version:        9.900.2
+Version:        9.900.3
 Release:        0
 Summary:        C++ matrix library with interfaces to LAPACK and ATLAS
 License:        Apache-2.0

++++++ armadillo-9.900.2.tar.xz -> armadillo-9.900.3.tar.xz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/armadillo-9.900.2/CMakeLists.txt 
new/armadillo-9.900.3/CMakeLists.txt
--- old/armadillo-9.900.2/CMakeLists.txt        2016-06-16 18:21:12.000000000 
+0200
+++ new/armadillo-9.900.3/CMakeLists.txt        2016-06-16 18:21:13.000000000 
+0200
@@ -133,6 +133,14 @@
 endif()
 
 option(DETECT_HDF5 "Detect HDF5 and include HDF5 support, if found" ON)
+# set(DETECT_HDF5 false)
+## uncomment the above line to disable the detection of the HDF5 library;
+## you can also disable HDF5 detection directly on the command line:
+## cmake -D DETECT_HDF5=false .
+
+option(ALLOW_FLEXIBLAS_LINUX "Allow detection of FlexiBLAS on Linux 
(EXPERIMENTAL)" OFF)
+## Example use on the command line:
+## cmake -D ALLOW_FLEXIBLAS_LINUX=true .
 
 option(ALLOW_OPENBLAS_MACOS "Allow detection of OpenBLAS on macOS" OFF)
 ## Example use on the command line:
@@ -171,6 +179,7 @@
 message(STATUS "CMAKE_COMPILER_IS_GNUCXX   = ${CMAKE_COMPILER_IS_GNUCXX}"  )
 message(STATUS "BUILD_SHARED_LIBS          = ${BUILD_SHARED_LIBS}"         )
 message(STATUS "DETECT_HDF5                = ${DETECT_HDF5}"               )
+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}"   )
 message(STATUS "BUILD_SMOKE_TEST           = ${BUILD_SMOKE_TEST}"          )
@@ -259,15 +268,42 @@
   include(ARMA_FindBLAS)
   include(ARMA_FindLAPACK)
   
-  message(STATUS "     MKL_FOUND = ${MKL_FOUND}"     )
-  message(STATUS "  ACMLMP_FOUND = ${ACMLMP_FOUND}"  )
-  message(STATUS "    ACML_FOUND = ${ACML_FOUND}"    )
-  message(STATUS "OpenBLAS_FOUND = ${OpenBLAS_FOUND}")
-  message(STATUS "   ATLAS_FOUND = ${ATLAS_FOUND}"   )
-  message(STATUS "    BLAS_FOUND = ${BLAS_FOUND}"    )
-  message(STATUS "  LAPACK_FOUND = ${LAPACK_FOUND}"  )
+  if(ALLOW_FLEXIBLAS_LINUX AND (${CMAKE_SYSTEM_NAME} MATCHES "Linux"))
+    include(ARMA_FindFlexiBLAS)
+  endif()
   
-  if(MKL_FOUND OR ACMLMP_FOUND OR ACML_FOUND)
+  message(STATUS "      MKL_FOUND = ${MKL_FOUND}"       )
+  message(STATUS "   ACMLMP_FOUND = ${ACMLMP_FOUND}"    )
+  message(STATUS "     ACML_FOUND = ${ACML_FOUND}"      )
+  message(STATUS " OpenBLAS_FOUND = ${OpenBLAS_FOUND}"  )
+  message(STATUS "    ATLAS_FOUND = ${ATLAS_FOUND}"     )
+  message(STATUS "     BLAS_FOUND = ${BLAS_FOUND}"      )
+  message(STATUS "   LAPACK_FOUND = ${LAPACK_FOUND}"    )
+  
+  if(FlexiBLAS_FOUND)
+    
+    message(STATUS "FlexiBLAS_FOUND = ${FlexiBLAS_FOUND}" )
+    
+    set(ARMA_USE_LAPACK true)
+    set(ARMA_USE_BLAS   true)
+    
+    set(ARMA_LIBS ${ARMA_LIBS} ${FlexiBLAS_LIBRARIES})
+    
+    message(STATUS "")
+    message(STATUS "*** Using FlexiBLAS to access BLAS and LAPACK functions.")
+    message(STATUS "*** WARNING:")
+    message(STATUS "*** if SuperLU and/or ARPACK are used, they must also be 
linked with FlexiBLAS.")
+    message(STATUS "")
+    message(STATUS "*** If using FlexiBLAS causes problems, please file a bug")
+    message(STATUS "*** report with the FlexiBLAS developers:")
+    message(STATUS "*** https://www.mpi-magdeburg.mpg.de/projects/flexiblas";)
+    message(STATUS "")
+    message(STATUS "*** To disable detection of FlexiBLAS,")
+    message(STATUS "*** rerun cmake with FlexiBLAS detection disabled:")
+    message(STATUS "*** cmake -D ALLOW_FLEXIBLAS_LINUX=false .")
+    message(STATUS "")
+    
+  elseif(MKL_FOUND OR ACMLMP_FOUND OR ACML_FOUND)
     
     set(ARMA_USE_LAPACK true)
     set(ARMA_USE_BLAS   true)
@@ -366,12 +402,6 @@
 find_package(PkgConfig)
 
 
-# set(DETECT_HDF5 false)
-
-## uncomment the above line to disable the detection of the HDF5 library;
-## you can also disable HDF5 detection directly on the command line:
-## cmake -D DETECT_HDF5=false .
-
 if(DETECT_HDF5)
   find_package(HDF5 QUIET COMPONENTS C)
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/armadillo-9.900.2/README.md 
new/armadillo-9.900.3/README.md
--- old/armadillo-9.900.2/README.md     2016-06-16 18:21:12.000000000 +0200
+++ new/armadillo-9.900.3/README.md     2016-06-16 18:21:13.000000000 +0200
@@ -131,26 +131,28 @@
 * Step 1:
   Ensure a C++ compiler is installed on your system.
 
-   - On macOS systems you will need to install Xcode (version 8 or later)
-     and then type the following command in a terminal window:  
-     xcode-select --install
+  - On macOS systems install Xcode (version 8 or later)
+    and then type the following command in a terminal window:  
+
+    xcode-select --install
 
 * Step 2:
   Ensure the CMake tool is installed on your system.
-  You can download it from http://www.cmake.org
-  or (preferably) install it using your package manager.
 
-  - On Linux-based systems, you can get CMake using dnf, yum, apt, aptitude, 
...
-  - On macOS systems, you can get CMake through MacPorts or Homebrew.
+  - Cmake can be downloaded from http://www.cmake.org
+    or (preferably) installed using the package manager on your system.
+
+  - On Linux-based systems, CMake can be installed using dnf, yum, apt, 
aptitude, ...
+
+  - On macOS systems, CMake can be installed through MacPorts or Homebrew.
 
 * Step 3:
-  Ensure LAPACK and BLAS (or preferably OpenBLAS) are installed on your system.
-  On macOS this is not necessary.
+  Ensure that OpenBLAS (or standard BLAS and LAPACK) is installed on your 
system.
+  On macOS, the Accelerate framework can be used for BLAS/LAPACK.
 
-  - For better performance, we recommend installing the OpenBLAS library.
-    See http://www.openblas.net/  
+  - On macOS, optionally install OpenBLAS for better performance.
 
-  - If you are using sparse matrices, also install ARPACK and SuperLU.
+  - If support for sparse matrices is required, also install ARPACK and 
SuperLU.
     Caveat: only SuperLU version 5.2 can be used!
 
   - On Linux-based systems, the following libraries are recommended
@@ -160,12 +162,41 @@
     package, also install the "lapack-devel" or "lapack-dev" package.
   
 * Step 4:
-  Open a terminal window, change into the directory that was created
-  by unpacking the armadillo archive, and type the following command:
+  Run the cmake installer.
+
+  - Open a terminal window and change into the directory that was created
+    by unpacking the armadillo archive.
+  
+  - The simplest case is to run cmake using:
 
     cmake .
 
-  - The full stop separated from "cmake" by a space is important.
+  - NOTE: the full stop separated from "cmake" by a space is important.
+  
+  - Options to the cmake installer:
+  
+    - On Linux, to enable the detection of FlexiBLAS, 
+      use the additional ALLOW_FLEXIBLAS_LINUX option when running cmake:
+
+      cmake -DALLOW_FLEXIBLAS_LINUX=ON .
+
+    - On macOS, to enable the detection of OpenBLAS, 
+      use the additional ALLOW_OPENBLAS_MACOS option when running cmake:
+
+      cmake -DALLOW_OPENBLAS_MACOS=ON .
+
+      Note: depending on your installation, OpenBLAS may masquerade as 
standard BLAS.
+      To detect standard BLAS and LAPACK, use the ALLOW_BLAS_LAPACK_MACOS 
option:
+
+      cmake -DALLOW_BLAS_LAPACK_MACOS=ON .
+
+    - By default, cmake assumes that the Armadillo library and the
+      corresponding header files will be installed in the default 
+      system directory (eg. in the /usr hierarchy in Linux-based systems).
+      To install the library and headers in an alternative directory,
+      use the additional option CMAKE_INSTALL_PREFIX in this form:
+
+      cmake . -DCMAKE_INSTALL_PREFIX:PATH=alternative_directory
 
   - CMake will detect which relevant libraries are installed on your system
     (eg. OpenBLAS, LAPACK, SuperLU, ARPACK, etc)
@@ -173,34 +204,21 @@
     CMake will also generate the Armadillo run-time library,
     which is a wrapper for all the detected libraries.
 
-  - By default, cmake assumes that the Armadillo library and the
-    corresponding header files are going to be installed in the default 
-    system directory (eg. in the /usr hierarchy in Linux-based systems).
-    If you wish to install the library and headers in an alternative directory,
-    use the additional option CMAKE_INSTALL_PREFIX in this form:
-
-    cmake . -DCMAKE_INSTALL_PREFIX:PATH=alternative_directory
-
-  - If you need to re-run cmake, it's a good idea to first delete the
+  - If cmake needs to re-run, it's a good idea to first delete the
     "CMakeCache.txt" file (not "CMakeLists.txt").
 
   - Caveat: out-of-tree builds are currently not fully supported;
-     eg, creating a sub-directory called "build" and running cmake ..
-     from within "build" is currently not supported.
+    ie. creating a sub-directory called "build" and running cmake ..
+    from within "build" is currently not supported.
 
-  - Caveat: if you are installing Armadillo in a non-system directory,
-    make sure your C++ compiler is configured to use the "lib" and "include"
+  - Caveat: if Armadillo is installed in a non-system directory,
+    make sure that the C++ compiler is configured to use the "lib" and 
"include"
     sub-directories present within this directory.  Note that the "lib"
     directory might be named differently on your system.
     On recent 64 bit Debian & Ubuntu systems it is "lib/x86_64-linux-gnu".
     On recent 64 bit Fedora & RHEL systems it is "lib64".
 
 * Step 5:
-  To generate the run-time armadillo library, type the following command:
-
-    make
-
-* Step 6:
   If you and have access to root/administrator/superuser privileges
   (ie. able to use "sudo") and didn't use the CMAKE_INSTALL_PREFIX option,
   type the following command:
@@ -217,25 +235,30 @@
 
 ### 6: Linux and macOS: Compiling and Linking
 
-The "examples" directory contains several quick example programs
-that use the Armadillo library.
-
-In general, programs which use Armadillo are compiled along these lines:
+To compile and link a program which uses Armadillo,
+use the following command:
 
-    g++ example1.cpp -o example1 -O2 -larmadillo
+    g++ prog.cpp -o prog -O2 -larmadillo
 
-If you want to use Armadillo without installation
-(ie. without the runtime library generated by CMake during installation),
-compile along these lines:
+To use Armadillo without installation (ie. without the Armadillo runtime 
library),
+compile programs with the ARMA_DONT_USE_WRAPPER option enabled,
+and directly link with BLAS (or preferably OpenBLAS) and LAPACK.
+For example:
 
-    g++ example1.cpp -o example1 -O2 -I /home/blah/armadillo-7.200.3/include 
-DARMA_DONT_USE_WRAPPER -lblas -llapack
+    g++ prog.cpp -o prog -O2 -I /home/blah/armadillo-7.200.3/include 
-DARMA_DONT_USE_WRAPPER -lblas -llapack
 
-The above command line assumes that you have unpacked the armadillo archive 
into /home/blah/  
-You will need to adjust this for later versions of Armadillo (ie. change the 
7.200.3 part)
-and/or if you have unpacked the armadillo archive into a different directory.
+On Linux, Replace -lblas with -lopenblas if OpenBLAS is installed.
 
-Replace -lblas with -lopenblas if you have OpenBLAS.
 On macOS, replace -lblas -llapack with -framework Accelerate
+or optionally with -lopenblas if OpenBLAS is installed.
+
+The above command line assumes that the armadillo archive was unpacked into 
/home/blah/  
+The command needs to be adjusted for each specific version of Armadillo
+(ie. "7.200.3" part needs to be changed)
+and if the archive was unpacked into a different directory.
+
+The "examples" directory contains several short example programs
+that use the Armadillo library.
 
 ---
 
@@ -247,12 +270,12 @@
   Copy the entire "include" folder to a convenient location
   and tell your compiler to use that location for header files
   (in addition to the locations it uses already).
-  Alternatively, you can use the "include" folder directly.
+  Alternatively, the "include" folder can be used directly.
 
 * Step 2:
   Modify "include/armadillo_bits/config.hpp" to indicate which
   libraries are currently available on your system. For example,
-  if you have LAPACK, BLAS (or OpenBLAS), ARPACK and SuperLU present,
+  if LAPACK, BLAS (or OpenBLAS), ARPACK and SuperLU present,
   uncomment the following lines:
 
     #define ARMA_USE_LAPACK  
@@ -260,7 +283,8 @@
     #define ARMA_USE_ARPACK  
     #define ARMA_USE_SUPERLU  
 
-  If you don't need sparse matrices, don't worry about ARPACK or SuperLU.
+  If support for sparse matrices is not required,
+  don't worry about ARPACK or SuperLU.
 
 * Step 3:
   Configure your compiler to link with LAPACK and BLAS
@@ -275,9 +299,9 @@
 64 bit program: the active solution platform must be set to x64, instead of 
win32.
 
 The MSVC project was tested on 64 bit Windows 7 with Visual C++ 2012.
-You may need to make adaptations for 32 bit systems, later versions of Windows
-and/or the compiler. For example, you may have to enable or disable
-ARMA_BLAS_LONG and ARMA_BLAS_UNDERSCORE defines in "armadillo_bits/config.hpp".
+Adaptations may need to be made for 32 bit systems, later versions of Windows
+and/or the compiler. For example, options such as ARMA_BLAS_LONG and 
ARMA_BLAS_UNDERSCORE,
+defined in "armadillo_bits/config.hpp", may need to be either enabled or 
disabled.
 
 The folder "examples/lib_win64" contains baseline (unoptimised) LAPACK and BLAS
 libraries compiled for 64 bit Windows. The compilation was done by a third 
party.
@@ -306,10 +330,10 @@
 replacements for BLAS and LAPACK. In essence this involves linking with the
 replacement libraries instead of BLAS and LAPACK.
 
-You may need to make minor modifications to include/armadillo_bits/config.hpp
-to make sure Armadillo uses the same integer sizes and style of function names
-as used by the replacement libraries. Specifically, you may need comment or 
uncomment
-the following defines:
+Minor modifications to include/armadillo_bits/config.hpp may be required
+to ensure Armadillo uses the same integer sizes and style of function names
+as used by the replacement libraries. Specifically, the following defines
+may need to be enabled or disabled:
 
     ARMA_USE_WRAPPER  
     ARMA_BLAS_CAPITALS  
@@ -326,9 +350,8 @@
 the LD_LIBRARY_PATH environment variable, or for a more permanent solution,
 adding the directory locations to /etc/ld.so.conf.  It may also be possible
 to store a text file with the locations in the /etc/ld.so.conf.d directory.
-For example, /etc/ld.so.conf.d/mkl.conf.  If you modify /etc/ld.so.conf
-or create /etc/ld.so.conf.d/mkl.conf, you will need to run /sbin/ldconfig
-afterwards.
+For example, /etc/ld.so.conf.d/mkl.conf.  If /etc/ld.so.conf is modified
+or /etc/ld.so.conf.d/mkl.conf is created, /sbin/ldconfig must be run 
afterwards.
 
 Below is an example of /etc/ld.so.conf.d/mkl.conf
 where Intel MKL is installed in /opt/intel
@@ -336,10 +359,10 @@
     /opt/intel/lib/intel64  
     /opt/intel/mkl/lib/intel64  
 
-If you have MKL installed and it is persistently giving problems
-during linking, you can disable Armadillo's support for MKL by editing
-the CMakeLists.txt file, deleting CMakeCache.txt and re-running
-the CMake based installation. Comment out the lines containing:
+If MKL is installed and it is persistently giving problems during linking,
+Support for MKL can be disabled by editing the CMakeLists.txt file,
+deleting CMakeCache.txt and re-running the CMake based installation.
+Comment out the lines containing:
 
     INCLUDE(ARMA_FindMKL)  
     INCLUDE(ARMA_FindACMLMP)  
Binary files old/armadillo-9.900.2/armadillo_solver_2020.pdf and 
new/armadillo-9.900.3/armadillo_solver_2020.pdf differ
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/armadillo-9.900.2/cmake_aux/Modules/ARMA_FindFlexiBLAS.cmake 
new/armadillo-9.900.3/cmake_aux/Modules/ARMA_FindFlexiBLAS.cmake
--- old/armadillo-9.900.2/cmake_aux/Modules/ARMA_FindFlexiBLAS.cmake    
1970-01-01 01:00:00.000000000 +0100
+++ new/armadillo-9.900.3/cmake_aux/Modules/ARMA_FindFlexiBLAS.cmake    
2016-06-16 18:21:13.000000000 +0200
@@ -0,0 +1,48 @@
+set(FlexiBLAS_NAMES)
+set(FlexiBLAS_NAMES ${FlexiBLAS_NAMES} flexiblas)
+
+set(FlexiBLAS_TMP_LIBRARY)
+set(FlexiBLAS_TMP_LIBRARIES)
+
+
+foreach (FlexiBLAS_NAME ${FlexiBLAS_NAMES})
+  find_library(${FlexiBLAS_NAME}_LIBRARY
+    NAMES ${FlexiBLAS_NAME}
+    PATHS ${CMAKE_SYSTEM_LIBRARY_PATH} /lib64 /lib /usr/lib64 /usr/lib 
/usr/local/lib64 /usr/local/lib /opt/local/lib64 /opt/local/lib
+    )
+  
+  set(FlexiBLAS_TMP_LIBRARY ${${FlexiBLAS_NAME}_LIBRARY})
+  
+  if(FlexiBLAS_TMP_LIBRARY)
+    set(FlexiBLAS_TMP_LIBRARIES ${FlexiBLAS_TMP_LIBRARIES} 
${FlexiBLAS_TMP_LIBRARY})
+  endif()
+endforeach()
+
+
+# use only one library
+
+if(FlexiBLAS_TMP_LIBRARIES)
+  list(GET FlexiBLAS_TMP_LIBRARIES 0 FlexiBLAS_LIBRARY)
+endif()
+
+
+if(FlexiBLAS_LIBRARY)
+  set(FlexiBLAS_LIBRARIES ${FlexiBLAS_LIBRARY})
+  set(FlexiBLAS_FOUND "YES")
+else()
+  set(FlexiBLAS_FOUND "NO")
+endif()
+
+
+if(FlexiBLAS_FOUND)
+  if (NOT FlexiBLAS_FIND_QUIETLY)
+    message(STATUS "Found FlexiBLAS: ${FlexiBLAS_LIBRARIES}")
+  endif()
+else()
+  if(FlexiBLAS_FIND_REQUIRED)
+    message(FATAL_ERROR "Could not find FlexiBLAS")
+  endif()
+endif()
+
+
+# mark_as_advanced(FlexiBLAS_LIBRARY)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/armadillo-9.900.2/docs.html 
new/armadillo-9.900.3/docs.html
--- old/armadillo-9.900.2/docs.html     2016-06-16 18:21:12.000000000 +0200
+++ new/armadillo-9.900.3/docs.html     2016-06-16 18:21:13.000000000 +0200
@@ -244,7 +244,7 @@
 <tr><td><a 
href="#field">field&lt;<i>object&nbsp;type</i>&gt;</a></td><td>&nbsp;</td><td>class
 for storing arbitrary objects in matrix-like or cube-like layouts</td></tr>
 <tr><td><a href="#SpMat">SpMat&lt;<i>type</i>&gt;, sp_mat, 
sp_cx_mat</a></td><td>&nbsp;</td><td>sparse matrix class</td></tr>
 <tr><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td></tr>
-<tr><td><a 
href="#operators">operators</a></td><td>&nbsp;</td><td><code><big>+</big>&nbsp; 
<big>-</big>&nbsp; <big>*</big>&nbsp; /&nbsp; %&nbsp; ==&nbsp; !=&nbsp; 
&lt;=&nbsp; &gt;=&nbsp; &lt;&nbsp; &gt;</code></td></tr>
+<tr><td><a 
href="#operators">operators</a></td><td>&nbsp;</td><td><code><big>+</big>&nbsp; 
<big>&minus;</big>&nbsp; <big>*</big>&nbsp; %&nbsp; /&nbsp; ==&nbsp; !=&nbsp; 
&lt;=&nbsp; &gt;=&nbsp; &lt;&nbsp; &gt;&nbsp; &amp;&amp;&nbsp; 
||</code></td></tr>
 </tbody>
 </table>
 </ul>
@@ -2072,14 +2072,14 @@
 
 <div class="pagebreak"></div><div class="noprint"><hr 
class="greyline"><br></div>
 <a name="operators"></a>
-<b>operators:&nbsp; <code><big>+</big>&nbsp; <big>&minus;</big>&nbsp; 
<big>*</big>&nbsp; /&nbsp; %&nbsp; ==&nbsp; !=&nbsp; &lt;=&nbsp; &gt;=&nbsp; 
&lt;&nbsp; &gt;</code></b>
+<b>operators:&nbsp; <code><big>+</big>&nbsp; <big>&minus;</big>&nbsp; 
<big>*</big>&nbsp; %&nbsp; /&nbsp; ==&nbsp; !=&nbsp; &lt;=&nbsp; &gt;=&nbsp; 
&lt;&nbsp; &gt;&nbsp; &amp;&amp;&nbsp; ||</code></b>
 <ul>
 <li>
 Overloaded operators for <i>Mat</i>, <i>Col</i>, <i>Row</i> and <i>Cube</i> 
classes
 </li>
 <br>
 <li>
-Meanings:
+Operations:
 <br>
 <br>
 <ul>
@@ -2089,13 +2089,13 @@
       <td style="vertical-align: top;"><code><b><big>+</big></b></code></td>
       <td style="vertical-align: top;">&nbsp;&nbsp;&nbsp;<br>
       </td>
-      <td style="vertical-align: top;">Addition of two objects</td>
+      <td style="vertical-align: top;">addition of two objects</td>
     </tr>
     <tr>
       <td style="vertical-align: 
top;"><code><b><big>&minus;</big></b></code></td>
       <td style="vertical-align: top;"><br>
       </td>
-      <td style="vertical-align: top;">Subtraction of one object from another 
or negation of an object</td>
+      <td style="vertical-align: top;">subtraction of one object from another 
or negation of an object</td>
     </tr>
     <tr>
       <td style="vertical-align: top;">&nbsp;</td>
@@ -2103,16 +2103,10 @@
       <td style="vertical-align: top;">&nbsp;</td>
     </tr>
     <tr>
-      <td style="vertical-align: top;"><code><b>/</b></code></td>
-      <td style="vertical-align: top;"><br>
-      </td>
-      <td style="vertical-align: top;">Element-wise division of an object by 
another object or a scalar</td>
-    </tr>
-    <tr>
       <td style="vertical-align: top;"><code><b><big>*</big></b></code></td>
       <td style="vertical-align: top;"><br>
       </td>
-      <td style="vertical-align: top;">Matrix multiplication of two objects; 
not applicable to the <i>Cube</i> class unless multiplying a cube by a 
scalar</td>
+      <td style="vertical-align: top;">matrix multiplication of two objects; 
not applicable to the <i>Cube</i> class unless multiplying by a scalar</td>
     </tr>
     <tr>
       <td style="vertical-align: top;">&nbsp;</td>
@@ -2123,7 +2117,13 @@
       <td style="vertical-align: top;"><code><b>%</b></code></td>
       <td style="vertical-align: top;"><br>
       </td>
-      <td style="vertical-align: top;"><a name="schur_product"></a>Schur 
product: element-wise multiplication of two objects</td>
+      <td style="vertical-align: top;"><a 
name="schur_product"></a>element-wise multiplication of two objects (Schur 
product)</td>
+    </tr>
+    <tr>
+      <td style="vertical-align: top;"><code><b>/</b></code></td>
+      <td style="vertical-align: top;"><br>
+      </td>
+      <td style="vertical-align: top;">element-wise division of an object by 
another object or a scalar</td>
     </tr>
     <tr>
       <td style="vertical-align: top;">&nbsp;</td>
@@ -2134,13 +2134,13 @@
       <td style="vertical-align: top;"><code><b>==</b></code></td>
       <td style="vertical-align: top;"><br>
       </td>
-      <td style="vertical-align: top;">Element-wise equality evaluation of two 
objects; generates a matrix of type <i>umat</i> with entries that indicate 
whether at a given position the two elements from the two objects are equal (1) 
or not equal (0)</td>
+      <td style="vertical-align: top;">element-wise equality evaluation of two 
objects; generates a matrix/cube of type <i>umat</i>/<i>ucube</i></td>
     </tr>
     <tr>
       <td style="vertical-align: top;"><code><b>!=</b></code></td>
       <td style="vertical-align: top;"><br>
       </td>
-      <td style="vertical-align: top;">Element-wise non-equality evaluation of 
two objects</td>
+      <td style="vertical-align: top;">element-wise non-equality evaluation of 
two objects; generates a matrix/cube of type <i>umat</i>/<i>ucube</i></td>
     </tr>
     <tr>
       <td style="vertical-align: top;">&nbsp;</td>
@@ -2151,13 +2151,13 @@
       <td style="vertical-align: top;"><code><b>&gt;=</b></code></td>
       <td style="vertical-align: top;"><br>
       </td>
-      <td style="vertical-align: top;">As for <code>==</code>, but the check 
is for "greater than or equal to"</td>
+      <td style="vertical-align: top;">element-wise "greater than or equal to" 
evaluation of two objects; generates a matrix/cube of type 
<i>umat</i>/<i>ucube</i></td>
     </tr>
     <tr>
       <td style="vertical-align: top;"><code><b>&lt;=</b></code></td>
       <td style="vertical-align: top;"><br>
       </td>
-      <td style="vertical-align: top;">As for <code>==</code>, but the check 
is for "less than or equal to"</td>
+      <td style="vertical-align: top;">element-wise "less than or equal to" 
evaluation of two objects; generates a matrix/cube of type 
<i>umat</i>/<i>ucube</i></td>
     </tr>
     <tr>
       <td style="vertical-align: top;">&nbsp;</td>
@@ -2168,13 +2168,30 @@
       <td style="vertical-align: top;"><code><b>&gt;</b></code></td>
       <td style="vertical-align: top;"><br>
       </td>
-      <td style="vertical-align: top;">As for <code>==</code>, but the check 
is for "greater than"</td>
+      <td style="vertical-align: top;">element-wise "greater than" evaluation 
of two objects; generates a matrix/cube of type <i>umat</i>/<i>ucube</i></td>
     </tr>
     <tr>
       <td style="vertical-align: top;"><code><b>&lt;</b></code></td>
       <td style="vertical-align: top;"><br>
       </td>
-      <td style="vertical-align: top;">As for <code>==</code>, but the check 
is for "less than"</td>
+      <td style="vertical-align: top;">element-wise "less than" evaluation of 
two objects; generates a matrix/cube of type <i>umat</i>/<i>ucube</i></td>
+    </tr>
+    <tr>
+      <td style="vertical-align: top;">&nbsp;</td>
+      <td style="vertical-align: top;">&nbsp;</td>
+      <td style="vertical-align: top;">&nbsp;</td>
+    </tr>
+    <tr>
+      <td style="vertical-align: top;"><code><b>&amp;&amp;</b></code></td>
+      <td style="vertical-align: top;"><br>
+      </td>
+      <td style="vertical-align: top;">element-wise logical AND evaluation of 
two objects; generates a matrix/cube of type <i>umat</i>/<i>ucube</i></td>
+    </tr>
+    <tr>
+      <td style="vertical-align: top;"><code><b>||</b></code></td>
+      <td style="vertical-align: top;"><br>
+      </td>
+      <td style="vertical-align: top;">element-wise logical OR evaluation of 
two objects; generates a matrix/cube of type <i>umat</i>/<i>ucube</i></td>
     </tr>
   </tbody>
 </table>
@@ -2182,6 +2199,12 @@
 </li>
 <br>
 <li>
+For element-wise relational and logical operations
+(ie. <code><b>==</b></code>, <code><b>!=</b></code>, 
<code><b>&gt;=</b></code>, <code><b>&lt;=</b></code>, <code><b>&gt;</b></code>, 
<code><b>&lt;</b></code>, <code><b>&amp;&amp;</b></code>, 
<code><b>||</b></code>)
+each element in the generated object is either 0 or 1, depending on the result 
of the operation
+</li>
+<br>
+<li>
 <b>Caveat:</b> operators involving an equality comparison (ie. 
<code><b>==</b></code>, <code><b>!=</b></code>, <code><b>&gt;=</b></code>, 
<code><b>&lt;=</b></code>)
 are not recommended for matrices of type <i>mat</i> or <i>fmat</i>, due to the 
necessarily <a href="https://en.wikipedia.org/wiki/Floating_point";>limited 
precision</a> of the underlying element types;
 consider using <a href="#approx_equal">approx_equal()</a> instead
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/armadillo-9.900.2/include/armadillo_bits/Cube_meat.hpp 
new/armadillo-9.900.3/include/armadillo_bits/Cube_meat.hpp
--- old/armadillo-9.900.2/include/armadillo_bits/Cube_meat.hpp  2016-06-16 
18:21:12.000000000 +0200
+++ new/armadillo-9.900.3/include/armadillo_bits/Cube_meat.hpp  2016-06-16 
18:21:13.000000000 +0200
@@ -199,10 +199,10 @@
   {
   arma_extra_debug_sigprint( arma_str::format("n_rows = %d, n_cols = %d, 
n_slices = %d") % n_rows % n_cols % n_slices );
   
-  #if (defined(ARMA_USE_CXX11) || defined(ARMA_64BIT_WORD))
+  #if defined(ARMA_64BIT_WORD)
     const char* error_message = "Cube::init(): requested size is too large";
   #else
-    const char* error_message = "Cube::init(): requested size is too large; 
suggest to compile in C++11 mode or enable ARMA_64BIT_WORD";
+    const char* error_message = "Cube::init(): requested size is too large; 
suggest to compile in C++11 mode and/or enable ARMA_64BIT_WORD";
   #endif
   
   arma_debug_check
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/armadillo-9.900.2/include/armadillo_bits/MapMat_meat.hpp 
new/armadillo-9.900.3/include/armadillo_bits/MapMat_meat.hpp
--- old/armadillo-9.900.2/include/armadillo_bits/MapMat_meat.hpp        
2016-06-16 18:21:12.000000000 +0200
+++ new/armadillo-9.900.3/include/armadillo_bits/MapMat_meat.hpp        
2016-06-16 18:21:13.000000000 +0200
@@ -744,10 +744,10 @@
   
   // ensure that n_elem can hold the result of (n_rows * n_cols)
   
-  #if (defined(ARMA_USE_CXX11) || defined(ARMA_64BIT_WORD))
+  #if defined(ARMA_64BIT_WORD)
     const char* error_message = "MapMat(): requested size is too large";
   #else
-    const char* error_message = "MapMat(): requested size is too large; 
suggest to compile in C++11 mode or enable ARMA_64BIT_WORD";
+    const char* error_message = "MapMat(): requested size is too large; 
suggest to compile in C++11 mode and/or enable ARMA_64BIT_WORD";
   #endif
   
   arma_debug_check
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/armadillo-9.900.2/include/armadillo_bits/Mat_meat.hpp 
new/armadillo-9.900.3/include/armadillo_bits/Mat_meat.hpp
--- old/armadillo-9.900.2/include/armadillo_bits/Mat_meat.hpp   2016-06-16 
18:21:12.000000000 +0200
+++ new/armadillo-9.900.3/include/armadillo_bits/Mat_meat.hpp   2016-06-16 
18:21:13.000000000 +0200
@@ -186,10 +186,10 @@
   
   // ensure that n_elem can hold the result of (n_rows * n_cols)
   
-  #if (defined(ARMA_USE_CXX11) || defined(ARMA_64BIT_WORD))
+  #if defined(ARMA_64BIT_WORD)
     const char* error_message = "Mat::init(): requested size is too large";
   #else
-    const char* error_message = "Mat::init(): requested size is too large; 
suggest to compile in C++11 mode or enable ARMA_64BIT_WORD";
+    const char* error_message = "Mat::init(): requested size is too large; 
suggest to compile in C++11 mode and/or enable ARMA_64BIT_WORD";
   #endif
   
   arma_debug_check
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/armadillo-9.900.2/include/armadillo_bits/SpMat_meat.hpp 
new/armadillo-9.900.3/include/armadillo_bits/SpMat_meat.hpp
--- old/armadillo-9.900.2/include/armadillo_bits/SpMat_meat.hpp 2016-06-16 
18:21:12.000000000 +0200
+++ new/armadillo-9.900.3/include/armadillo_bits/SpMat_meat.hpp 2016-06-16 
18:21:13.000000000 +0200
@@ -5113,10 +5113,10 @@
       }
     }
   
-  #if(defined(ARMA_USE_CXX11) || defined(ARMA_64BIT_WORD))
+  #if defined(ARMA_64BIT_WORD)
     const char* error_message = "SpMat::init(): requested size is too large";
   #else
-    const char* error_message = "SpMat::init(): requested size is too large; 
suggest to compile in C++11 mode or enable ARMA_64BIT_WORD";
+    const char* error_message = "SpMat::init(): requested size is too large; 
suggest to compile in C++11 mode and/or enable ARMA_64BIT_WORD";
   #endif
   
   // Ensure that n_elem can hold the result of (n_rows * n_cols)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/armadillo-9.900.2/include/armadillo_bits/SpSubview_bones.hpp 
new/armadillo-9.900.3/include/armadillo_bits/SpSubview_bones.hpp
--- old/armadillo-9.900.2/include/armadillo_bits/SpSubview_bones.hpp    
2016-06-16 18:21:12.000000000 +0200
+++ new/armadillo-9.900.3/include/armadillo_bits/SpSubview_bones.hpp    
2016-06-16 18:21:13.000000000 +0200
@@ -43,8 +43,8 @@
   
   protected:
 
-  arma_inline SpSubview(const SpMat<eT>& in_m, const uword in_row1, const 
uword in_col1, const uword in_n_rows, const uword in_n_cols);
-  arma_inline SpSubview(      SpMat<eT>& in_m, const uword in_row1, const 
uword in_col1, const uword in_n_rows, const uword in_n_cols);
+  inline SpSubview(const SpMat<eT>& in_m, const uword in_row1, const uword 
in_col1, const uword in_n_rows, const uword in_n_cols);
+  inline SpSubview(      SpMat<eT>& in_m, const uword in_row1, const uword 
in_col1, const uword in_n_rows, const uword in_n_cols);
 
   public:
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/armadillo-9.900.2/include/armadillo_bits/SpSubview_meat.hpp 
new/armadillo-9.900.3/include/armadillo_bits/SpSubview_meat.hpp
--- old/armadillo-9.900.2/include/armadillo_bits/SpSubview_meat.hpp     
2016-06-16 18:21:12.000000000 +0200
+++ new/armadillo-9.900.3/include/armadillo_bits/SpSubview_meat.hpp     
2016-06-16 18:21:13.000000000 +0200
@@ -19,7 +19,7 @@
 
 
 template<typename eT>
-arma_inline
+inline
 SpSubview<eT>::SpSubview(const SpMat<eT>& in_m, const uword in_row1, const 
uword in_col1, const uword in_n_rows, const uword in_n_cols)
   : m(in_m)
   , aux_row1(in_row1)
@@ -53,7 +53,7 @@
 
 
 template<typename eT>
-arma_inline
+inline
 SpSubview<eT>::SpSubview(SpMat<eT>& in_m, const uword in_row1, const uword 
in_col1, const uword in_n_rows, const uword in_n_cols)
   : m(in_m)
   , aux_row1(in_row1)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/armadillo-9.900.2/include/armadillo_bits/arma_version.hpp 
new/armadillo-9.900.3/include/armadillo_bits/arma_version.hpp
--- old/armadillo-9.900.2/include/armadillo_bits/arma_version.hpp       
2016-06-16 18:21:12.000000000 +0200
+++ new/armadillo-9.900.3/include/armadillo_bits/arma_version.hpp       
2016-06-16 18:21:13.000000000 +0200
@@ -21,7 +21,7 @@
 
 #define ARMA_VERSION_MAJOR 9
 #define ARMA_VERSION_MINOR 900
-#define ARMA_VERSION_PATCH 2
+#define ARMA_VERSION_PATCH 3
 #define ARMA_VERSION_NAME  "Nocturnal Misbehaviour"
 
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/armadillo-9.900.2/include/armadillo_bits/arrayops_bones.hpp 
new/armadillo-9.900.3/include/armadillo_bits/arrayops_bones.hpp
--- old/armadillo-9.900.2/include/armadillo_bits/arrayops_bones.hpp     
2016-06-16 18:21:12.000000000 +0200
+++ new/armadillo-9.900.3/include/armadillo_bits/arrayops_bones.hpp     
2016-06-16 18:21:13.000000000 +0200
@@ -33,7 +33,7 @@
   
   
   template<typename eT>
-  arma_hot inline static void
+  inline static void
   fill_zeros(eT* dest, const uword n_elem);
   
   
@@ -131,6 +131,11 @@
   
   template<typename eT>
   arma_hot inline static
+  void
+  inplace_set_simple(eT* dest, const eT val, const uword n_elem);
+  
+  template<typename eT>
+  arma_hot inline static
   void
   inplace_set_base(eT* dest, const eT val, const uword n_elem);
   
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/armadillo-9.900.2/include/armadillo_bits/arrayops_meat.hpp 
new/armadillo-9.900.3/include/armadillo_bits/arrayops_meat.hpp
--- old/armadillo-9.900.2/include/armadillo_bits/arrayops_meat.hpp      
2016-06-16 18:21:12.000000000 +0200
+++ new/armadillo-9.900.3/include/armadillo_bits/arrayops_meat.hpp      
2016-06-16 18:21:13.000000000 +0200
@@ -77,12 +77,20 @@
 
 
 template<typename eT>
-arma_hot
 inline
 void
 arrayops::fill_zeros(eT* dest, const uword n_elem)
   {
-  arrayops::inplace_set(dest, eT(0), n_elem);
+  typedef typename get_pod_type<eT>::result pod_type;
+  
+  if(std::numeric_limits<eT>::is_integer || 
std::numeric_limits<pod_type>::is_iec559)
+    {
+    if(n_elem > 0)  { std::memset((void*)dest, 0, sizeof(eT)*n_elem); }
+    }
+  else
+    {
+    arrayops::inplace_set_simple(dest, eT(0), n_elem);
+    }
   }
 
 
@@ -595,34 +603,43 @@
 void
 arrayops::inplace_set(eT* dest, const eT val, const uword n_elem)
   {
-  typedef typename get_pod_type<eT>::result pod_type;
-  
-  if( (n_elem <= 9) && (is_cx<eT>::no) )
+  if(val == eT(0))
     {
-    arrayops::inplace_set_small(dest, val, n_elem);
+    arrayops::fill_zeros(dest, n_elem);
     }
   else
     {
-    if( (val == eT(0)) && (std::numeric_limits<eT>::is_integer || 
(std::numeric_limits<pod_type>::is_iec559 && is_real<pod_type>::value)) )
+    if( (n_elem <= 9) && (is_cx<eT>::no) )
       {
-      if(n_elem > 0)  { std::memset((void*)dest, 0, sizeof(eT)*n_elem); }
+      arrayops::inplace_set_small(dest, val, n_elem);
       }
     else
       {
-      if(memory::is_aligned(dest))
-        {
-        memory::mark_as_aligned(dest);
-        
-        arrayops::inplace_set_base(dest, val, n_elem);
-        }
-      else
-        {
-        arrayops::inplace_set_base(dest, val, n_elem);
-        }
+      arrayops::inplace_set_simple(dest, val, n_elem);
       }
     }
   }
 
+
+
+template<typename eT>
+arma_hot
+inline
+void
+arrayops::inplace_set_simple(eT* dest, const eT val, const uword n_elem)
+  {
+  if(memory::is_aligned(dest))
+    {
+    memory::mark_as_aligned(dest);
+    
+    arrayops::inplace_set_base(dest, val, n_elem);
+    }
+  else
+    {
+    arrayops::inplace_set_base(dest, val, n_elem);
+    }
+  }
+
 
 
 template<typename eT>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/armadillo-9.900.2/include/armadillo_bits/band_helper.hpp 
new/armadillo-9.900.3/include/armadillo_bits/band_helper.hpp
--- old/armadillo-9.900.2/include/armadillo_bits/band_helper.hpp        
2016-06-16 18:21:12.000000000 +0200
+++ new/armadillo-9.900.3/include/armadillo_bits/band_helper.hpp        
2016-06-16 18:21:13.000000000 +0200
@@ -37,7 +37,7 @@
   
   if(N < N_min)  { return false; }
   
-  // first, quickly check bottom-right and top-left corners
+  // first, quickly check bottom-left and top-right corners
   
   const eT eT_zero = eT(0);
   
@@ -115,7 +115,7 @@
   
   if(N < N_min)  { return false; }
   
-  // first, quickly check bottom-right corner
+  // first, quickly check bottom-left corner
   
   const eT eT_zero = eT(0);
   
@@ -178,7 +178,7 @@
   
   if(N < N_min)  { return false; }
   
-  // first, quickly check top-left corner
+  // first, quickly check top-right corner
   
   const eT eT_zero = eT(0);
   
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/armadillo-9.900.2/include/armadillo_bits/diskio_bones.hpp 
new/armadillo-9.900.3/include/armadillo_bits/diskio_bones.hpp
--- old/armadillo-9.900.2/include/armadillo_bits/diskio_bones.hpp       
2016-06-16 18:21:12.000000000 +0200
+++ new/armadillo-9.900.3/include/armadillo_bits/diskio_bones.hpp       
2016-06-16 18:21:13.000000000 +0200
@@ -23,6 +23,21 @@
   {
   public:
   
+  inline arma_deprecated static file_type guess_file_type(std::istream& f);
+  
+  
+  private:
+  
+  template<typename eT> friend class   Mat;
+  template<typename eT> friend class  Cube;
+  template<typename eT> friend class SpMat;
+  template<typename oT> friend class field;
+  
+  friend class   Mat_aux;
+  friend class  Cube_aux;
+  friend class SpMat_aux;
+  friend class field_aux;
+  
   template<typename eT> inline arma_cold static std::string 
gen_txt_header(const Mat<eT>&);
   template<typename eT> inline arma_cold static std::string 
gen_bin_header(const Mat<eT>&);
   
@@ -31,8 +46,6 @@
   template<typename eT> inline arma_cold static std::string 
gen_txt_header(const Cube<eT>&);
   template<typename eT> inline arma_cold static std::string 
gen_bin_header(const Cube<eT>&);
   
-  inline arma_deprecated static file_type guess_file_type(std::istream& f);
-  
   inline arma_cold static file_type guess_file_type_internal(std::istream& f);
   
   inline arma_cold static std::string gen_tmp_name(const std::string& x);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/armadillo-9.900.2/include/armadillo_bits/field_meat.hpp 
new/armadillo-9.900.3/include/armadillo_bits/field_meat.hpp
--- old/armadillo-9.900.2/include/armadillo_bits/field_meat.hpp 2016-06-16 
18:21:12.000000000 +0200
+++ new/armadillo-9.900.3/include/armadillo_bits/field_meat.hpp 2016-06-16 
18:21:13.000000000 +0200
@@ -1943,10 +1943,10 @@
   {
   arma_extra_debug_sigprint( arma_str::format("n_rows_in = %d, n_cols_in = %d, 
n_slices_in = %d") % n_rows_in % n_cols_in % n_slices_in );
   
-  #if (defined(ARMA_USE_CXX11) || defined(ARMA_64BIT_WORD))
+  #if defined(ARMA_64BIT_WORD)
     const char* error_message = "field::init(): requested size is too large";
   #else
-    const char* error_message = "field::init(): requested size is too large; 
suggest to compile in C++11 mode or enable ARMA_64BIT_WORD";
+    const char* error_message = "field::init(): requested size is too large; 
suggest to compile in C++11 mode and/or enable ARMA_64BIT_WORD";
   #endif
   
   arma_debug_check
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/armadillo-9.900.2/include/armadillo_bits/sp_auxlib_meat.hpp 
new/armadillo-9.900.3/include/armadillo_bits/sp_auxlib_meat.hpp
--- old/armadillo-9.900.2/include/armadillo_bits/sp_auxlib_meat.hpp     
2016-06-16 18:21:12.000000000 +0200
+++ new/armadillo-9.900.3/include/armadillo_bits/sp_auxlib_meat.hpp     
2016-06-16 18:21:13.000000000 +0200
@@ -1152,6 +1152,8 @@
     
     if(nc == NULL)  { return false; }
     
+    A.sync();
+    
     nc->nnz    = A.n_nonzero;
     nc->nzval  = (void*)          superlu::malloc(sizeof(eT)             * 
A.n_nonzero   );
     nc->colptr = (superlu::int_t*)superlu::malloc(sizeof(superlu::int_t) * 
(A.n_cols + 1));
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/armadillo-9.900.2/index.html 
new/armadillo-9.900.3/index.html
--- old/armadillo-9.900.2/index.html    2016-06-16 18:21:12.000000000 +0200
+++ new/armadillo-9.900.3/index.html    2016-06-16 18:21:13.000000000 +0200
@@ -31,7 +31,15 @@
 </li>
 </ul>
 <ul>
-<li>Paper with details on Gaussian Mixture Models in Armadillo:
+<li>Paper with details on the linear solver in Armadillo
+<ul>
+<li><a 
href="http://arma.sourceforge.net/armadillo_solver_2020.pdf";>armadillo_solver_2020.pdf</a>
 (online copy)</li>
+<li><a href="armadillo_solver_2020.pdf">armadillo_solver_2020.pdf</a> (local 
copy)</li>
+</ul>
+</li>
+</ul>
+<ul>
+<li>Paper with details on Gaussian Mixture Models in Armadillo
 <ul>
 <li><a 
href="http://arma.sourceforge.net/armadillo_spcs_2017.pdf";>armadillo_spcs_2017.pdf</a>
 (online copy)</li>
 <li><a href="armadillo_spcs_2017.pdf">armadillo_spcs_2017.pdf</a> (local 
copy)</li>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/armadillo-9.900.2/misc/armadillo.spec 
new/armadillo-9.900.3/misc/armadillo.spec
--- old/armadillo-9.900.2/misc/armadillo.spec   2016-06-16 18:21:12.000000000 
+0200
+++ new/armadillo-9.900.3/misc/armadillo.spec   2016-06-16 18:21:13.000000000 
+0200
@@ -95,6 +95,7 @@
 %doc armadillo_joss_2016.pdf
 %doc armadillo_lncs_2018.pdf
 %doc armadillo_nicta_2010.pdf
+%doc armadillo_solver_2020.pdf
 %doc armadillo_spcs_2017.pdf
 %doc rcpp_armadillo_csda_2014.pdf
 %doc mex_interface


Reply via email to