Hello community,

here is the log from the commit of package armadillo for openSUSE:Factory 
checked in at 2015-11-16 18:52:00
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/armadillo (Old)
 and      /work/SRC/openSUSE:Factory/.armadillo.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "armadillo"

Changes:
--------
--- /work/SRC/openSUSE:Factory/armadillo/armadillo.changes      2015-11-12 
19:40:33.000000000 +0100
+++ /work/SRC/openSUSE:Factory/.armadillo.new/armadillo.changes 2015-11-16 
18:52:02.000000000 +0100
@@ -1,0 +2,6 @@
+Sun Nov 15 10:11:08 UTC 2015 - badshah...@gmail.com
+
+- Update to version 6.200.4:
+  + Bug fixes (undocumented by upstream).
+
+-------------------------------------------------------------------

Old:
----
  armadillo-6.200.3.tar.gz

New:
----
  armadillo-6.200.4.tar.gz

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

Other differences:
------------------
++++++ armadillo.spec ++++++
--- /var/tmp/diff_new_pack.bfOtwe/_old  2015-11-16 18:52:03.000000000 +0100
+++ /var/tmp/diff_new_pack.bfOtwe/_new  2015-11-16 18:52:03.000000000 +0100
@@ -19,7 +19,7 @@
 %define soname libarmadillo6
 
 Name:           armadillo
-Version:        6.200.3
+Version:        6.200.4
 Release:        0
 Summary:        Fast C++ matrix library with interfaces to LAPACK and ATLAS
 License:        MPL-2.0

++++++ armadillo-6.200.3.tar.gz -> armadillo-6.200.4.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/armadillo-6.200.3/CMakeLists.txt 
new/armadillo-6.200.4/CMakeLists.txt
--- old/armadillo-6.200.3/CMakeLists.txt        2015-11-10 05:42:43.000000000 
+0100
+++ new/armadillo-6.200.4/CMakeLists.txt        2015-11-11 12:04:09.000000000 
+0100
@@ -16,7 +16,7 @@
 
 set(ARMA_MAJOR 6)
 set(ARMA_MINOR 200)
-set(ARMA_PATCH 3)
+set(ARMA_PATCH 4)
 set(ARMADILLO_VERSION ${ARMA_MAJOR}.${ARMA_MINOR}.${ARMA_PATCH})
 
 message(STATUS "Configuring Armadillo ${ARMADILLO_VERSION}")
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/armadillo-6.200.3/README.txt 
new/armadillo-6.200.4/README.txt
--- old/armadillo-6.200.3/README.txt    2015-11-10 05:42:43.000000000 +0100
+++ new/armadillo-6.200.4/README.txt    2015-11-11 12:29:42.000000000 +0100
@@ -192,7 +192,7 @@
 If you want to use Armadillo without installation,
 or you're getting linking errors, compile along these lines:
   
-  g++ example1.cpp -o example1 -O2 -I /home/blah/armadillo-6.200.3/include 
-DARMA_DONT_USE_WRAPPER -lblas -llapack
+  g++ example1.cpp -o example1 -O2 -I /home/blah/armadillo-6.200.4/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,
@@ -434,76 +434,20 @@
 Main developers:
 - Conrad Sanderson - http://conradsanderson.id.au
 - Ryan Curtin      - http://www.ratml.org
-- Ian Cullinan
-- Dimitrios Bouzas
-- Stanislav Funiak
 
-Contributors:
+Notable contributors:
 - Matthew Amidon
-- Eric R. Anderson
-- Kipton Barros
-- BenoƮt Bayol
-- Salim Bcoin
-- Justin Bedo
-- Evan Bollig
-- Darius Braziunas
-- Filip Bruman
-- Ted Campbell
-- James Cline
-- Chris Cooper
+- Dimitrios Bouzas
+- Ian Cullinan
 - Clement Creusot
-- Chris Davey
-- Patrick Dondl
 - Alexandre Drouin
-- Dirk Eddelbuettel
-- Carles Fernandez
-- Romain Francois
 - Michael McNeil Forbes
-- Piotr Gawron
-- Charles Gretton
-- Franz Gritschneder
-- Benjamin Herzog
 - Szabolcs Horvat
-- Friedrich Hust
-- Ping-Keng Jao
-- Jacques-Henri Jourdan
-- Yaron Keren
-- Kshitij Kulshreshtha
-- Oka Kurniawan
-- Simen Kvaal
-- David Lawrence
-- Jussi Lehtola
-- Jeremy Mason
-- Nikolay Mayorov
-- Carlos Mendes
-- Sergey Nenakhov
-- Artem Novikov
 - Keith O'Hara
-- James Oldfield
-- Martin Orlob
-- Ken Panici
-- Adam Piatyszek
-- Jayden Platell
-- Vikas Reddy
-- Ola Rinta-Koski
-- Boris Sabanin
 - James Sanders
-- Pierre-Andre Savalle
-- Alexander Scherbatey
-- Gerhard Schreiber
-- Shane Stainsby
-- Petter Strandmark
 - Eric Jon Sundstrom
-- Paul Torfs
-- Martin Uhrin
-- Simon Urbanek
-- Unai Uribarri
-- Juergen Wiest
 - Arnold Wiliem
-- Yong Kang Wong
-- Buote Xu
 - George Yammine
-- Sean Young
 
 
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/armadillo-6.200.3/docs.html 
new/armadillo-6.200.4/docs.html
--- old/armadillo-6.200.3/docs.html     2015-11-10 06:20:04.000000000 +0100
+++ new/armadillo-6.200.4/docs.html     2015-11-12 16:48:19.000000000 +0100
@@ -1,4 +1,16 @@
 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+
+<!--
+Copyright (C) 2008-2015 National ICT Australia (NICTA)
+
+This Source Code Form is subject to the terms of the Mozilla Public
+License, v. 2.0. If a copy of the MPL was not distributed with this
+file, You can obtain one at http://mozilla.org/MPL/2.0/.
+===================================================================
+
+Written by Conrad Sanderson - http://conradsanderson.id.au
+-->
+
 <html>
 <head>
   <meta content="text/html;charset=ISO-8859-1" http-equiv="Content-Type">
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/armadillo-6.200.3/include/armadillo_bits/arma_version.hpp 
new/armadillo-6.200.4/include/armadillo_bits/arma_version.hpp
--- old/armadillo-6.200.3/include/armadillo_bits/arma_version.hpp       
2015-11-10 05:42:43.000000000 +0100
+++ new/armadillo-6.200.4/include/armadillo_bits/arma_version.hpp       
2015-11-11 12:04:09.000000000 +0100
@@ -15,7 +15,7 @@
 
 #define ARMA_VERSION_MAJOR 6
 #define ARMA_VERSION_MINOR 200
-#define ARMA_VERSION_PATCH 3
+#define ARMA_VERSION_PATCH 4
 #define ARMA_VERSION_NAME  "Midnight Blue Deluxe"
 
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/armadillo-6.200.3/include/armadillo_bits/diskio_bones.hpp 
new/armadillo-6.200.4/include/armadillo_bits/diskio_bones.hpp
--- old/armadillo-6.200.3/include/armadillo_bits/diskio_bones.hpp       
2015-11-10 05:42:43.000000000 +0100
+++ new/armadillo-6.200.4/include/armadillo_bits/diskio_bones.hpp       
2015-11-15 06:20:17.000000000 +0100
@@ -1,4 +1,4 @@
-// Copyright (C) 2008-2013 National ICT Australia (NICTA)
+// Copyright (C) 2008-2015 National ICT Australia (NICTA)
 // 
 // This Source Code Form is subject to the terms of the Mozilla Public
 // License, v. 2.0. If a copy of the MPL was not distributed with this
@@ -30,12 +30,9 @@
   
   inline static file_type guess_file_type(std::istream& f);
   
-  inline static char conv_to_hex_char(const u8 x);
-  inline static void conv_to_hex(char* out, const u8 x);
+  inline arma_cold static std::string gen_tmp_name(const std::string& x);
   
-  inline static std::string gen_tmp_name(const std::string& x);
-  
-  inline static bool safe_rename(const std::string& old_name, const 
std::string& new_name);
+  inline arma_cold static bool safe_rename(const std::string& old_name, const 
std::string& new_name);
   
   template<typename eT> inline static bool convert_naninf(eT&              
val, const std::string& token);
   template<typename  T> inline static bool convert_naninf(std::complex<T>& 
val, const std::string& token);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/armadillo-6.200.3/include/armadillo_bits/diskio_meat.hpp 
new/armadillo-6.200.4/include/armadillo_bits/diskio_meat.hpp
--- old/armadillo-6.200.3/include/armadillo_bits/diskio_meat.hpp        
2015-11-10 05:42:43.000000000 +0100
+++ new/armadillo-6.200.4/include/armadillo_bits/diskio_meat.hpp        
2015-11-15 06:20:17.000000000 +0100
@@ -616,51 +616,6 @@
 
 
 
-inline
-char
-diskio::conv_to_hex_char(const u8 x)
-  {
-  char out;
-
-  switch(x)
-    {
-    case  0: out = '0'; break;
-    case  1: out = '1'; break;
-    case  2: out = '2'; break;
-    case  3: out = '3'; break;
-    case  4: out = '4'; break;
-    case  5: out = '5'; break;
-    case  6: out = '6'; break;
-    case  7: out = '7'; break;
-    case  8: out = '8'; break;
-    case  9: out = '9'; break;
-    case 10: out = 'a'; break;
-    case 11: out = 'b'; break;
-    case 12: out = 'c'; break;
-    case 13: out = 'd'; break;
-    case 14: out = 'e'; break;
-    case 15: out = 'f'; break;
-    default: out = '-'; break;
-    }
-
-  return out;  
-  }
-
-
-
-inline
-void
-diskio::conv_to_hex(char* out, const u8 x)
-  {
-  const u8 a = x / 16;
-  const u8 b = x - 16*a;
-
-  out[0] = conv_to_hex_char(a);
-  out[1] = conv_to_hex_char(b);
-  }
-
-
-
 //! Append a quasi-random string to the given filename.
 //! The rand() function is deliberately not used,
 //! as rand() has an internal state that changes
@@ -669,60 +624,20 @@
 //! results should be reproducable and not affected 
 //! by saving data.
 inline
+arma_cold
 std::string
 diskio::gen_tmp_name(const std::string& x)
   {
-  const std::string* ptr_x     = &x;
-  const u8*          ptr_ptr_x = reinterpret_cast<const u8*>(&ptr_x);
-  
-  const char* extra      = ".tmp_";
-  const uword extra_size = 5;
-  
-  const uword tmp_size   = 2*sizeof(u8*) + 2*2;
-        char  tmp[tmp_size];
-  
-  uword char_count = 0;
-  
-  for(uword i=0; i<sizeof(u8*); ++i)
-    {
-    conv_to_hex(&tmp[char_count], ptr_ptr_x[i]);
-    char_count += 2;
-    }
-  
-  const uword x_size = static_cast<uword>(x.size());
-  u8 sum = 0;
-  
-  for(uword i=0; i<x_size; ++i)
-    {
-    sum = (sum + u8(x[i])) & 0xff;
-    }
-  
-  conv_to_hex(&tmp[char_count], sum);
-  char_count += 2;
-  
-  conv_to_hex(&tmp[char_count], u8(x_size));
-  
-  
-  std::string out;
-  out.resize(x_size + extra_size + tmp_size);
-  
+  union { uword val; void* ptr; } u;
   
-  for(uword i=0; i<x_size; ++i)
-    {
-    out[i] = x[i];
-    }
+  u.val = uword(0);
+  u.ptr = const_cast<std::string*>(&x);
   
-  for(uword i=0; i<extra_size; ++i)
-    {
-    out[x_size + i] = extra[i];
-    }
+  std::stringstream ss;
   
-  for(uword i=0; i<tmp_size; ++i)
-    {
-    out[x_size + extra_size + i] = tmp[i];
-    }
+  ss << x << ".tmp_" << std::hex << std::noshowbase << (u.val) << 
(std::clock());
   
-  return out;
+  return ss.str();
   }
 
 
@@ -733,6 +648,7 @@
 //! (i)  overwriting files that are write protected,
 //! (ii) overwriting directories.
 inline
+arma_cold
 bool
 diskio::safe_rename(const std::string& old_name, const std::string& new_name)
   {
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/armadillo-6.200.3/include/armadillo_bits/memory.hpp 
new/armadillo-6.200.4/include/armadillo_bits/memory.hpp
--- old/armadillo-6.200.3/include/armadillo_bits/memory.hpp     2015-11-10 
05:42:43.000000000 +0100
+++ new/armadillo-6.200.4/include/armadillo_bits/memory.hpp     2015-11-11 
12:25:21.000000000 +0100
@@ -1,4 +1,4 @@
-// Copyright (C) 2012-2014 National ICT Australia (NICTA)
+// Copyright (C) 2012-2015 National ICT Australia (NICTA)
 // 
 // This Source Code Form is subject to the terms of the Mozilla Public
 // License, v. 2.0. If a copy of the MPL was not distributed with this
@@ -16,14 +16,12 @@
   {
   public:
   
-                        arma_inline             static uword 
enlarge_to_mult_of_chunksize(const uword n_elem);
+  arma_inline static uword enlarge_to_mult_of_chunksize(const uword n_elem);
   
-  template<typename eT>      inline arma_malloc static eT*   acquire(const 
uword n_elem);
-  
-  template<typename eT>      inline arma_malloc static eT*   
acquire_chunked(const uword n_elem);
-  
-  template<typename eT> arma_inline             static void  release(eT* mem);
+  template<typename eT> inline arma_malloc static eT*         acquire(const 
uword n_elem);
+  template<typename eT> inline arma_malloc static eT* acquire_chunked(const 
uword n_elem);
   
+  template<typename eT> arma_inline static void release(eT* mem);
   
   template<typename eT> arma_inline static bool      is_aligned(const eT*  
mem);
   template<typename eT> arma_inline static void mark_as_aligned(      eT*& 
mem);
@@ -80,6 +78,7 @@
     }
   #elif defined(_MSC_VER)
     {
+    //out_memptr = (eT *) malloc(sizeof(eT)*n_elem);
     out_memptr = (eT *) _aligned_malloc( sizeof(eT)*n_elem, 16 );  // lives in 
malloc.h
     }
   #else
@@ -134,6 +133,7 @@
     }
   #elif defined(_MSC_VER)
     {
+    //free( (void *)(mem) );
     _aligned_free( (void *)(mem) );
     }
   #else
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/armadillo-6.200.3/include/armadillo_bits/op_symmat_meat.hpp 
new/armadillo-6.200.4/include/armadillo_bits/op_symmat_meat.hpp
--- old/armadillo-6.200.3/include/armadillo_bits/op_symmat_meat.hpp     
2015-11-10 05:42:43.000000000 +0100
+++ new/armadillo-6.200.4/include/armadillo_bits/op_symmat_meat.hpp     
2015-11-10 11:34:35.000000000 +0100
@@ -25,7 +25,7 @@
   const unwrap<T1>   tmp(in.m);
   const Mat<eT>& A = tmp.M;
   
-  arma_debug_check( (A.is_square() == false), "symmatu()/symmatl(): given 
matrix must be square" );
+  arma_debug_check( (A.is_square() == false), "symmatu()/symmatl(): given 
matrix must be square sized" );
   
   const uword N     = A.n_rows;
   const bool  upper = (in.aux_uword_a == 0);
@@ -105,7 +105,7 @@
   const unwrap<T1>   tmp(in.m);
   const Mat<eT>& A = tmp.M;
   
-  arma_debug_check( (A.is_square() == false), "symmatu()/symmatl(): given 
matrix must be square" );
+  arma_debug_check( (A.is_square() == false), "symmatu()/symmatl(): given 
matrix must be square sized" );
   
   const uword N  = A.n_rows;
   
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/armadillo-6.200.3/include/armadillo_bits/op_trimat_meat.hpp 
new/armadillo-6.200.4/include/armadillo_bits/op_trimat_meat.hpp
--- old/armadillo-6.200.3/include/armadillo_bits/op_trimat_meat.hpp     
2015-11-10 05:42:43.000000000 +0100
+++ new/armadillo-6.200.4/include/armadillo_bits/op_trimat_meat.hpp     
2015-11-12 15:43:28.000000000 +0100
@@ -61,7 +61,7 @@
   const unwrap<T1>   tmp(in.m);
   const Mat<eT>& A = tmp.M;
   
-  arma_debug_check( (A.is_square() == false), "trimatu()/trimatl(): given 
matrix must be square" );
+  arma_debug_check( (A.is_square() == false), "trimatu()/trimatl(): given 
matrix must be square sized" );
   
   const uword N     = A.n_rows;
   const bool  upper = (in.aux_uword_a == 0);
@@ -141,7 +141,7 @@
   // triangular (respectively) and then set the rest to 0, so overwriting 
issues
   // aren't present.
   
-  arma_debug_check( (A.is_square() == false), "trimatu()/trimatl(): given 
matrix must be square" );
+  arma_debug_check( (A.is_square() == false), "trimatu()/trimatl(): given 
matrix must be square sized" );
   
   const uword N = A.n_rows;
   
@@ -200,7 +200,7 @@
   arma_extra_debug_sigprint();
   arma_ignore(junk);
   
-  arma_debug_check( (A.is_square() == false), "trimatu()/trimatl(): given 
matrix must be square" );
+  arma_debug_check( (A.is_square() == false), "trimatu()/trimatl(): given 
matrix must be square sized" );
   
   const uword N = A.n_rows;
   
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/armadillo-6.200.3/include/armadillo_bits/sp_auxlib_meat.hpp 
new/armadillo-6.200.4/include/armadillo_bits/sp_auxlib_meat.hpp
--- old/armadillo-6.200.3/include/armadillo_bits/sp_auxlib_meat.hpp     
2015-11-10 05:42:43.000000000 +0100
+++ new/armadillo-6.200.4/include/armadillo_bits/sp_auxlib_meat.hpp     
2015-11-15 05:10:54.000000000 +0100
@@ -81,10 +81,11 @@
     SpProxy<T1> p(X.get_ref());
     
     // Make sure it's square.
-    arma_debug_check( (p.get_n_rows() != p.get_n_cols()), "eigs_sym(): given 
matrix must be square sized");
+    arma_debug_check( (p.get_n_rows() != p.get_n_cols()), "eigs_sym(): given 
matrix must be square sized" );
     
     // Make sure we aren't asking for every eigenvalue.
-    arma_debug_check( (n_eigvals + 1 >= p.get_n_rows()), "eigs_sym(): 
n_eigvals + 1 must be less than the number of rows in the matrix");
+    // The _saupd() functions allow asking for one more eigenvalue than the 
_naupd() functions.
+    arma_debug_check( (n_eigvals >= p.get_n_rows()), "eigs_sym(): n_eigvals 
must be less than the number of rows in the matrix" );
     
     // If the matrix is empty, the case is trivial.
     if(p.get_n_cols() == 0) // We already know n_cols == n_rows.
@@ -190,10 +191,10 @@
     SpProxy<T1> p(X.get_ref());
     
     // Make sure it's square.
-    arma_debug_check( (p.get_n_rows() != p.get_n_cols()), "eigs_gen(): given 
matrix must be square sized");
+    arma_debug_check( (p.get_n_rows() != p.get_n_cols()), "eigs_gen(): given 
matrix must be square sized" );
     
     // Make sure we aren't asking for every eigenvalue.
-    arma_debug_check( (n_eigvals + 1 >= p.get_n_rows()), "eigs_gen(): 
n_eigvals + 1 must be less than the number of rows in the matrix");
+    arma_debug_check( (n_eigvals + 1 >= p.get_n_rows()), "eigs_gen(): 
n_eigvals + 1 must be less than the number of rows in the matrix" );
     
     // If the matrix is empty, the case is trivial.
     if(p.get_n_cols() == 0) // We already know n_cols == n_rows.
@@ -258,7 +259,7 @@
         {
         for (uword j = 0; j < uword(n); ++j)
           {
-          eigvec.at(j, i)     = std::complex<T>(z[n * i + j], z[n * (i + 1) + 
j]);
+          eigvec.at(j, i)     = std::complex<T>(z[n * i + j],  z[n * (i + 1) + 
j]);
           eigvec.at(j, i + 1) = std::complex<T>(z[n * i + j], -z[n * (i + 1) + 
j]);
           }
         ++i; // Skip the next one.
@@ -342,10 +343,10 @@
     SpProxy<T1> p(X.get_ref());
     
     // Make sure it's square.
-    arma_debug_check( (p.get_n_rows() != p.get_n_cols()), "eigs_gen(): given 
matrix must be square sized");
+    arma_debug_check( (p.get_n_rows() != p.get_n_cols()), "eigs_gen(): given 
matrix must be square sized" );
     
     // Make sure we aren't asking for every eigenvalue.
-    arma_debug_check( (n_eigvals + 1 >= p.get_n_rows()), "eigs_gen(): 
n_eigvals + 1 must be less than the number of rows in the matrix");
+    arma_debug_check( (n_eigvals + 1 >= p.get_n_rows()), "eigs_gen(): 
n_eigvals + 1 must be less than the number of rows in the matrix" );
     
     // If the matrix is empty, the case is trivial.
     if(p.get_n_cols() == 0) // We already know n_cols == n_rows.
@@ -621,7 +622,7 @@
     // We have to actually create the object which stores the data.
     // This gets cleaned by destroy_supermatrix().
     // We have to use SuperLU's stupid memory allocation routines since they 
are
-    // not guaranteed to be new and delete.  See the comments in 
superlu_bones.hpp
+    // not guaranteed to be new and delete.  See the comments in 
def_superlu.hpp
     superlu::NCformat* nc = 
(superlu::NCformat*)superlu::malloc(sizeof(superlu::NCformat));
     
     if(nc == NULL)  { return false; }
@@ -786,11 +787,18 @@
     
     resid.set_size(n);
     
-    // "NCV must satisfy the two inequalities 2 <= NCV-NEV and NCV <= N".
-    // "It is recommended that NCV >= 2 * NEV".
-    ncv = 2 + nev;
-    if (ncv < 2 * nev) { ncv = 2 * nev; }
-    if (ncv > n)       { ncv = n; }
+    // Two contraints on NCV: (NCV > NEV + 2) and (NCV <= N)
+    // 
+    // We're calling either arpack::saupd() or arpack::naupd(),
+    // which have slighly different minimum constraint and recommended value 
for NCV:
+    // http://www.caam.rice.edu/software/ARPACK/UG/node136.html
+    // http://www.caam.rice.edu/software/ARPACK/UG/node138.html
+    
+    ncv = nev + 2 + 1;
+    
+    if (ncv < (2 * nev + 1)) { ncv = 2 * nev + 1; }
+    if (ncv > n            ) { ncv = n;           }
+    
     v.set_size(n * ncv); // Array N by NCV (output).
     rwork.set_size(ncv); // Work array of size NCV for complex calls.
     ldv = n; // "Leading dimension of V exactly as declared in the calling 
program."


Reply via email to