commit armadillo for openSUSE:Factory
Hello community,
here is the log from the commit of package armadillo for openSUSE:Factory checked in at 2016-07-30 00:28:17
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
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 2016-07-14 09:44:57.000000000 +0200
+++ /work/SRC/openSUSE:Factory/.armadillo.new/armadillo.changes 2016-07-30 00:28:19.000000000 +0200
@@ -1,0 +2,8 @@
+Thu Jul 28 02:02:26 UTC 2016 - badshah400@gmail.com
+
+- Update to version 7.300.0:
+ + Added index_min() and index_max() standalone functions.
+ + Expanded .subvec() to accept size() arguments.
+ + More robust handling of non-square matrices by lu().
+
+-------------------------------------------------------------------
Old:
----
armadillo-7.200.2.tar.xz
New:
----
armadillo-7.300.0.tar.xz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ armadillo.spec ++++++
--- /var/tmp/diff_new_pack.v7B7i3/_old 2016-07-30 00:28:21.000000000 +0200
+++ /var/tmp/diff_new_pack.v7B7i3/_new 2016-07-30 00:28:21.000000000 +0200
@@ -19,7 +19,7 @@
%define soname libarmadillo7
Name: armadillo
-Version: 7.200.2
+Version: 7.300.0
Release: 0
Summary: Fast C++ matrix library with interfaces to LAPACK and ATLAS
License: MPL-2.0
++++++ armadillo-7.200.2.tar.xz -> armadillo-7.300.0.tar.xz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/armadillo-7.200.2/CMakeLists.txt new/armadillo-7.300.0/CMakeLists.txt
--- old/armadillo-7.200.2/CMakeLists.txt 2016-06-16 17:38:45.000000000 +0200
+++ new/armadillo-7.300.0/CMakeLists.txt 2016-06-16 18:16:00.000000000 +0200
@@ -15,8 +15,8 @@
cmake_minimum_required(VERSION 2.8 FATAL_ERROR)
set(ARMA_MAJOR 7)
-set(ARMA_MINOR 200)
-set(ARMA_PATCH 2)
+set(ARMA_MINOR 300)
+set(ARMA_PATCH 0)
set(ARMADILLO_VERSION ${ARMA_MAJOR}.${ARMA_MINOR}.${ARMA_PATCH})
message(STATUS "Configuring Armadillo ${ARMADILLO_VERSION}")
Files old/armadillo-7.200.2/armadillo_joss_2016.pdf and new/armadillo-7.300.0/armadillo_joss_2016.pdf differ
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/armadillo-7.200.2/docs.html new/armadillo-7.300.0/docs.html
--- old/armadillo-7.200.2/docs.html 2016-06-16 17:19:27.000000000 +0200
+++ new/armadillo-7.300.0/docs.html 2016-06-16 18:16:00.000000000 +0200
@@ -144,7 +144,7 @@
<!-- -->
<a class="noprint" style="display:scroll; position:fixed; bottom:5px; right:5px;" href="#top"><font size=-1>[top]</font></a>
-<big><b>API Documentation for Armadillo 7.200</b></big>
+<big><b>API Documentation for Armadillo 7.300</b></big>
<br>
<br>
<br>
@@ -294,7 +294,7 @@
<tr><td><a href="#t_st_members">.t / .st </a></td><td> </td><td>return matrix transpose</td></tr>
<tr><td><a href="#i_member">.i </a></td><td> </td><td>return inverse of square matrix</td></tr>
<tr><td><a href="#min_and_max_member">.min / .max</a></td><td> </td><td>return extremum value</td></tr>
-<tr><td><a href="#index_min_and_index_max">.index_min / .index_max</a></td><td> </td><td>return index of extremum value</td></tr>
+<tr><td><a href="#index_min_and_index_max_member">.index_min / .index_max</a></td><td> </td><td>return index of extremum value</td></tr>
<tr><td><a href="#eval_member">.eval</a></td><td> </td><td>force evaluation of delayed expression</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="#in_range">.in_range</a></td><td> </td><td>check whether given location or span is valid</td></tr>
@@ -372,39 +372,40 @@
<tr style="background-color: #F5F5F5;"><td><a href="#flip">fliplr / flipud</a></td><td> </td><td>reverse order of columns or rows</td></tr>
<tr style="background-color: #F5F5F5;"><td><a href="#imag_real">imag / real</a></td><td> </td><td>extract imaginary/real part</td></tr>
<tr style="background-color: #F5F5F5;"><td><a href="#ind2sub">ind2sub</a></td><td> </td><td>convert linear index to subscripts</td></tr>
+<tr><td><a href="#index_min_and_index_max_standalone">index_min / index_max</a></td><td> </td><td>indices of extremum values</td></tr>
<tr><td><a href="#inplace_trans">inplace_trans</a></td><td> </td><td>in-place transpose</td></tr>
<tr><td><a href="#is_finite">is_finite</a></td><td> </td><td>check whether all elements are finite</td></tr>
-<tr><td><a href="#join">join_rows / join_cols</a></td><td> </td><td>concatenation of matrices</td></tr>
+<tr style="background-color: #F5F5F5;"><td><a href="#join">join_rows / join_cols</a></td><td> </td><td>concatenation of matrices</td></tr>
<tr style="background-color: #F5F5F5;"><td><a href="#join_slices">join_slices</a></td><td> </td><td>concatenation of cubes</td></tr>
<tr style="background-color: #F5F5F5;"><td><a href="#kron">kron</a></td><td> </td><td>Kronecker tensor product</td></tr>
-<tr style="background-color: #F5F5F5;"><td><a href="#logmat">logmat</a></td><td> </td><td>matrix logarithm</td></tr>
+<tr><td><a href="#logmat">logmat</a></td><td> </td><td>matrix logarithm</td></tr>
<tr><td><a href="#min_and_max">min / max</a></td><td> </td><td>return extremum values</td></tr>
<tr><td><a href="#nonzeros">nonzeros</a></td><td> </td><td>return non-zero values</td></tr>
-<tr><td><a href="#norm">norm</a></td><td> </td><td>various norms of vectors and matrices</td></tr>
+<tr style="background-color: #F5F5F5;"><td><a href="#norm">norm</a></td><td> </td><td>various norms of vectors and matrices</td></tr>
<tr style="background-color: #F5F5F5;"><td><a href="#normalise">normalise</a></td><td> </td><td>normalise vectors to unit <i>p</i>-norm</td></tr>
<tr style="background-color: #F5F5F5;"><td><a href="#prod">prod</a></td><td> </td><td>product of elements</td></tr>
-<tr style="background-color: #F5F5F5;"><td><a href="#rank">rank</a></td><td> </td><td>rank of matrix</td></tr>
+<tr><td><a href="#rank">rank</a></td><td> </td><td>rank of matrix</td></tr>
<tr><td><a href="#rcond">rcond</a></td><td> </td><td>reciprocal of condition number</td></tr>
<tr><td><a href="#repmat">repmat</a></td><td> </td><td>replicate matrix in block-like fashion</td></tr>
-<tr><td><a href="#reshape">reshape</a></td><td> </td><td>change size while keeping elements</td></tr>
+<tr style="background-color: #F5F5F5;"><td><a href="#reshape">reshape</a></td><td> </td><td>change size while keeping elements</td></tr>
<tr style="background-color: #F5F5F5;"><td><a href="#resize">resize</a></td><td> </td><td>change size while keeping elements and preserving layout</td></tr>
<tr style="background-color: #F5F5F5;"><td><a href="#shift">shift</a></td><td> </td><td>shift elements</td></tr>
-<tr style="background-color: #F5F5F5;"><td><a href="#shuffle">shuffle</a></td><td> </td><td>randomly shuffle elements</td></tr>
+<tr><td><a href="#shuffle">shuffle</a></td><td> </td><td>randomly shuffle elements</td></tr>
<tr><td><a href="#size">size</a></td><td> </td><td>obtain dimensions of given object</td></tr>
<tr><td><a href="#sort">sort</a></td><td> </td><td>sort elements</td></tr>
-<tr><td><a href="#sort_index">sort_index</a></td><td> </td><td>vector describing sorted order of elements</td></tr>
+<tr style="background-color: #F5F5F5;"><td><a href="#sort_index">sort_index</a></td><td> </td><td>vector describing sorted order of elements</td></tr>
<tr style="background-color: #F5F5F5;"><td><a href="#sqrtmat">sqrtmat</a></td><td> </td><td>square root of matrix</td></tr>
<tr style="background-color: #F5F5F5;"><td><a href="#sum">sum</a></td><td> </td><td>sum of elements</td></tr>
-<tr style="background-color: #F5F5F5;"><td><a href="#sub2ind">sub2ind</a></td><td> </td><td>convert subscripts to linear index</td></tr>
+<tr><td><a href="#sub2ind">sub2ind</a></td><td> </td><td>convert subscripts to linear index</td></tr>
<tr><td><a href="#symmat">symmatu / symmatl</a></td><td> </td><td>generate symmetric matrix from given matrix</td></tr>
<tr><td><a href="#trace">trace</a></td><td> </td><td>sum of diagonal elements</td></tr>
-<tr><td><a href="#trans">trans</a></td><td> </td><td>transpose of matrix</td></tr>
+<tr style="background-color: #F5F5F5;"><td><a href="#trans">trans</a></td><td> </td><td>transpose of matrix</td></tr>
<tr style="background-color: #F5F5F5;"><td><a href="#trapz">trapz</a></td><td> </td><td>trapezoidal numerical integration</td></tr>
<tr style="background-color: #F5F5F5;"><td><a href="#trimat">trimatu / trimatl</a></td><td> </td><td>generate triangular matrix from given matrix</td></tr>
-<tr style="background-color: #F5F5F5;"><td><a href="#unique">unique</a></td><td> </td><td>return unique elements</td></tr>
+<tr><td><a href="#unique">unique</a></td><td> </td><td>return unique elements</td></tr>
<tr><td><a href="#vectorise">vectorise</a></td><td> </td><td>convert matrix to vector</td></tr>
<tr><td><a href="#misc_fns">misc functions</a></td><td> </td><td>miscellaneous element-wise functions: exp, log, pow, sqrt, round, sign, ...</td></tr>
-<tr><td><a href="#trig_fns">trig functions</a></td><td> </td><td>trigonometric element-wise functions: cos, sin, ...</td></tr>
+<tr style="background-color: #F5F5F5;"><td><a href="#trig_fns">trig functions</a></td><td> </td><td>trigonometric element-wise functions: cos, sin, ...</td></tr>
</tbody>
</table>
</ul>
@@ -3303,6 +3304,8 @@
V<b>( span(</b>first_index<b>,</b> last_index<b>) )</b><br>
V.<b>subvec( </b>first_index<b>,</b> last_index<b> )</b><br>
<br>
+V.<b>subvec( </b>first_index<b>, size(</b>W<b>) )</b> <i>(W is a vector)</i><br>
+<br>
V.<b>head( </b>number_of_elements<b> )</b><br>
V.<b>tail( </b>number_of_elements<b> )</b>
</ul>
@@ -4987,7 +4990,7 @@
<li>
See also:
<ul>
-<li><a href="#index_min_and_index_max">.index_min() & .index_max()</a></li>
+<li><a href="#index_min_and_index_max_member">.index_min() & .index_max()</a></li>
<li><a href="#min_and_max">min() & max()</a> (standalone functions)</li>
<li><a href="#clamp">clamp()</a>
<li><a href="#running_stat">running_stat</a></li>
@@ -4998,7 +5001,7 @@
</ul>
<div class="pagebreak"></div><div class="noprint"><hr class="greyline"><br></div>
-<a name="index_min_and_index_max"></a>
+<a name="index_min_and_index_max_member"></a>
<b>.index_min()</b>
<br><b>.index_max()</b>
<ul>
@@ -5031,6 +5034,7 @@
See also:
<ul>
<li><a href="#min_and_max_member">.min() & .max()</a></li>
+<li><a href="#index_min_and_index_max_standalone">index_min() & index_max()</a> (standalone functions)</li>
<li><a href="#ind2sub">ind2sub()</a></li>
<li><a href="#sort_index">sort_index()</a></li>
<li><a href="#element_access">element access</a></li>
@@ -6842,7 +6846,6 @@
<li>
<i>dim=0</i>, return a row vector (of type <a href="#Row">urowvec</a> or <a href="#Mat">umat</a>),
with each element (0 or 1) indicating whether the corresponding column of <i>X</i> has all non-zero elements</li>
-<br>
<li>
<i>dim=1</i>, return a column vector (of type <a href="#Col">ucolvec</a> or <a href="#Mat">umat</a>),
with each element (0 or 1) indicating whether the corresponding row of <i>X</i> has all non-zero elements</li>
@@ -6909,7 +6912,6 @@
<li>
<i>dim=0</i>, return a row vector (of type <a href="#Row">urowvec</a> or <a href="#Mat">umat</a>),
with each element (0 or 1) indicating whether the corresponding column of <i>X</i> has any non-zero elements</li>
-<br>
<li>
<i>dim=1</i>, return a column vector (of type <a href="#Col">ucolvec</a> or <a href="#Mat">umat</a>),
with each element (0 or 1) indicating whether the corresponding row of <i>X</i> has any non-zero elements</li>
@@ -7715,7 +7717,7 @@
<li><a href="#nonzeros">nonzeros()</a></li>
<li><a href="#unique">unique()</a></li>
<li><a href="#sort_index">sort_index()</a></li>
-<li><a href="#index_min_and_index_max">.index_min() & .index_max()</a></li>
+<li><a href="#index_min_and_index_max_member">.index_min() & .index_max()</a></li>
<li><a href="#submat">submatrix views</a></li>
<li><a href="#subcube">subcube views</a></li>
</ul>
@@ -7995,6 +7997,89 @@
</ul>
<div class="pagebreak"></div><div class="noprint"><hr class="greyline"><br></div>
+<a name="index_min_and_index_max_standalone"></a>
+<table>
+<tbody>
+<tr>
+<td>
+<b>index_min( V )</b>
+<br><b>index_min( M )</b>
+<br><b>index_min( M, dim )</b>
+</td>
+<td> </td>
+<td>
+<b>index_max( V )</b>
+<br><b>index_max( M )</b>
+<br><b>index_max( M, dim )</b>
+</td>
+</tr>
+</tbody>
+</table>
+<ul>
+<li>
+For vector <i>V</i>, return the linear index of the extremum value; the returned index is of type <a href="#uword">uword</a>
+</li>
+<br>
+<li>
+For matrix <i>M</i> and:
+<ul>
+<li>
+<i>dim=0</i>, return a row vector (of type <a href="#Row">urowvec</a> or <a href="#Mat">umat</a>),
+with each column containing the index of the extremum value in the corresponding column of <i>M</i>
+</li>
+<li>
+<i>dim=1</i>, return a column vector (of type <a href="#Col">uvec</a> or <a href="#Mat">umat</a>),
+with each row containing the index of the extremum value in the corresponding row of <i>M</i>
+</li>
+</ul>
+</li>
+<br>
+<li>
+For each column and row, the index starts at zero
+</li>
+<br>
+<li>
+The <i>dim</i> argument is optional; by default <i>dim=0</i> is used
+</li>
+<br>
+<li>
+For objects with complex numbers, absolute values are used for comparison
+</li>
+<br>
+<li>
+Examples:
+<ul>
+<pre>
+vec v = randu<vec>(10);
+uword i = index_max(v);
+
+double max_val_in_v = v(i);
+
+
+mat M = randu<mat>(5,6);
+
+urowvec ii = index_max(M);
+ucolvec jj = index_max(M,1);
+
+double max_val_in_col_2 = M( ii(2), 2 );
+
+double max_val_in_row_4 = M( 4, jj(4) );
+</pre>
+</ul>
+</li>
+<br>
+<li>
+See also:
+<ul>
+<li><a href="#min_and_max">min() & max()</a></li>
+<li><a href="#index_min_and_index_max_member">.index_min() & .index_max()</a> (member functions)</li>
+<li><a href="#sort_index">sort_index()</a></li>
+</ul>
+</li>
+<br>
+</ul>
+
+<div class="pagebreak"></div><div class="noprint"><hr class="greyline"><br></div>
<a name="inplace_trans"></a>
<b>inplace_trans( X )
<br>inplace_trans( X, method )
@@ -8358,7 +8443,7 @@
See also:
<ul>
<li><a href="#min_and_max_member">.min() & .max()</a> (member functions)</li>
-<li><a href="#index_min_and_index_max">.index_min() & .index_max()</a>
+<li><a href="#index_min_and_index_max_standalone">index_min() & index_max()</a>
<li><a href="#clamp">clamp()</a>
<li><a href="#running_stat">running_stat</a></li>
<li><a href="#running_stat_vec">running_stat_vec</a></li>
@@ -9036,7 +9121,7 @@
<ul>
<li><a href="#sort">sort()</a></li>
<li><a href="#find">find()</a></li>
-<li><a href="#index_min_and_index_max">.index_min() & .index_max()</a></li>
+<li><a href="#index_min_and_index_max_member">.index_min() & .index_max()</a></li>
<li><a href="#ind2sub">ind2sub()</a></li>
</ul>
</li>
@@ -15587,10 +15672,19 @@
<br>
<ul>
+<a name="version_7300"></a>
+<li>Version 7.300:
+<ul>
+<li>added <a href="#index_min_and_index_max_standalone">index_min()</a> and <a href="#index_min_and_index_max_standalone">index_max()</a> standalone functions</li>
+<li>expanded <a href="#submat">.subvec()</a> to accept <a href="#size">size()</a> arguments</li>
+<li>more robust handling of non-square matrices by <a href="#lu">lu()</a></li>
+</ul>
+</li>
+<br>
<a name="version_7200"></a>
<li>Version 7.200:
<ul>
-<li>added <a href="#index_min_and_index_max">.index_min()</a> and <a href="#index_min_and_index_max">.index_max()</a></li>
+<li>added <a href="#index_min_and_index_max_member">.index_min()</a> and <a href="#index_min_and_index_max_member">.index_max()</a> member functions</li>
<li>expanded <a href="#ind2sub">ind2sub()</a> to handle vectors of indices</li>
<li>expanded <a href="#sub2ind">sub2ind()</a> to handle matrix of subscripts</li>
<li>expanded <a href="#expmat">expmat()</a>, <a href="#logmat">logmat()</a> and <a href="#sqrtmat">sqrtmat()</a> to optionally return a bool indicating success</li>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/armadillo-7.200.2/include/armadillo new/armadillo-7.300.0/include/armadillo
--- old/armadillo-7.200.2/include/armadillo 2016-05-30 05:40:45.000000000 +0200
+++ new/armadillo-7.300.0/include/armadillo 2016-06-16 18:16:00.000000000 +0200
@@ -219,6 +219,8 @@
#include "armadillo_bits/op_htrans_bones.hpp"
#include "armadillo_bits/op_max_bones.hpp"
#include "armadillo_bits/op_min_bones.hpp"
+ #include "armadillo_bits/op_index_max_bones.hpp"
+ #include "armadillo_bits/op_index_min_bones.hpp"
#include "armadillo_bits/op_mean_bones.hpp"
#include "armadillo_bits/op_median_bones.hpp"
#include "armadillo_bits/op_sort_bones.hpp"
@@ -406,8 +408,10 @@
// as some files require functionality given in preceding files
#include "armadillo_bits/fn_conv_to.hpp"
- #include "armadillo_bits/fn_min.hpp"
#include "armadillo_bits/fn_max.hpp"
+ #include "armadillo_bits/fn_min.hpp"
+ #include "armadillo_bits/fn_index_max.hpp"
+ #include "armadillo_bits/fn_index_min.hpp"
#include "armadillo_bits/fn_accu.hpp"
#include "armadillo_bits/fn_sum.hpp"
#include "armadillo_bits/fn_diagmat.hpp"
@@ -577,6 +581,8 @@
#include "armadillo_bits/op_inv_meat.hpp"
#include "armadillo_bits/op_htrans_meat.hpp"
#include "armadillo_bits/op_max_meat.hpp"
+ #include "armadillo_bits/op_index_max_meat.hpp"
+ #include "armadillo_bits/op_index_min_meat.hpp"
#include "armadillo_bits/op_min_meat.hpp"
#include "armadillo_bits/op_mean_meat.hpp"
#include "armadillo_bits/op_median_meat.hpp"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/armadillo-7.200.2/include/armadillo_bits/Col_bones.hpp new/armadillo-7.300.0/include/armadillo_bits/Col_bones.hpp
--- old/armadillo-7.200.2/include/armadillo_bits/Col_bones.hpp 2016-05-30 05:38:11.000000000 +0200
+++ new/armadillo-7.300.0/include/armadillo_bits/Col_bones.hpp 2016-06-16 18:16:00.000000000 +0200
@@ -98,6 +98,9 @@
arma_inline subview_col<eT> operator()(const span& row_span);
arma_inline const subview_col<eT> operator()(const span& row_span) const;
+ arma_inline subview_col<eT> subvec(const uword start_row, const SizeMat& s);
+ arma_inline const subview_col<eT> subvec(const uword start_row, const SizeMat& s) const;
+
arma_inline subview_col<eT> head(const uword N);
arma_inline const subview_col<eT> head(const uword N) const;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/armadillo-7.200.2/include/armadillo_bits/Col_meat.hpp new/armadillo-7.300.0/include/armadillo_bits/Col_meat.hpp
--- old/armadillo-7.200.2/include/armadillo_bits/Col_meat.hpp 2016-05-30 05:38:11.000000000 +0200
+++ new/armadillo-7.300.0/include/armadillo_bits/Col_meat.hpp 2016-06-16 18:16:00.000000000 +0200
@@ -730,6 +730,38 @@
template<typename eT>
arma_inline
subview_col<eT>
+Col<eT>::subvec(const uword start_row, const SizeMat& s)
+ {
+ arma_extra_debug_sigprint();
+
+ arma_debug_check( (s.n_cols != 1), "Col::subvec(): given size does not specify a column vector" );
+
+ arma_debug_check( ( (start_row >= Mat<eT>::n_rows) || ((start_row + s.n_rows) > Mat<eT>::n_rows) ), "Col::subvec(): size out of bounds" );
+
+ return subview_col<eT>(*this, 0, start_row, s.n_rows);
+ }
+
+
+
+template<typename eT>
+arma_inline
+const subview_col<eT>
+Col<eT>::subvec(const uword start_row, const SizeMat& s) const
+ {
+ arma_extra_debug_sigprint();
+
+ arma_debug_check( (s.n_cols != 1), "Col::subvec(): given size does not specify a column vector" );
+
+ arma_debug_check( ( (start_row >= Mat<eT>::n_rows) || ((start_row + s.n_rows) > Mat<eT>::n_rows) ), "Col::subvec(): size out of bounds" );
+
+ return subview_col<eT>(*this, 0, start_row, s.n_rows);
+ }
+
+
+
+template<typename eT>
+arma_inline
+subview_col<eT>
Col<eT>::head(const uword N)
{
arma_extra_debug_sigprint();
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/armadillo-7.200.2/include/armadillo_bits/Row_bones.hpp new/armadillo-7.300.0/include/armadillo_bits/Row_bones.hpp
--- old/armadillo-7.200.2/include/armadillo_bits/Row_bones.hpp 2016-05-30 05:38:11.000000000 +0200
+++ new/armadillo-7.300.0/include/armadillo_bits/Row_bones.hpp 2016-06-16 18:16:00.000000000 +0200
@@ -98,6 +98,9 @@
arma_inline subview_row<eT> operator()(const span& col_span);
arma_inline const subview_row<eT> operator()(const span& col_span) const;
+ arma_inline subview_row<eT> subvec(const uword start_col, const SizeMat& s);
+ arma_inline const subview_row<eT> subvec(const uword start_col, const SizeMat& s) const;
+
arma_inline subview_row<eT> head(const uword N);
arma_inline const subview_row<eT> head(const uword N) const;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/armadillo-7.200.2/include/armadillo_bits/Row_meat.hpp new/armadillo-7.300.0/include/armadillo_bits/Row_meat.hpp
--- old/armadillo-7.200.2/include/armadillo_bits/Row_meat.hpp 2016-05-30 05:38:11.000000000 +0200
+++ new/armadillo-7.300.0/include/armadillo_bits/Row_meat.hpp 2016-06-16 18:16:00.000000000 +0200
@@ -696,6 +696,38 @@
template<typename eT>
arma_inline
subview_row<eT>
+Row<eT>::subvec(const uword start_col, const SizeMat& s)
+ {
+ arma_extra_debug_sigprint();
+
+ arma_debug_check( (s.n_rows != 1), "Row::subvec(): given size does not specify a row vector" );
+
+ arma_debug_check( ( (start_col >= Mat<eT>::n_cols) || ((start_col + s.n_cols) > Mat<eT>::n_cols) ), "Row::subvec(): size out of bounds" );
+
+ return subview_row<eT>(*this, 0, start_col, s.n_cols);
+ }
+
+
+
+template<typename eT>
+arma_inline
+const subview_row<eT>
+Row<eT>::subvec(const uword start_col, const SizeMat& s) const
+ {
+ arma_extra_debug_sigprint();
+
+ arma_debug_check( (s.n_rows != 1), "Row::subvec(): given size does not specify a row vector" );
+
+ arma_debug_check( ( (start_col >= Mat<eT>::n_cols) || ((start_col + s.n_cols) > Mat<eT>::n_cols) ), "Row::subvec(): size out of bounds" );
+
+ return subview_row<eT>(*this, 0, start_col, s.n_cols);
+ }
+
+
+
+template<typename eT>
+arma_inline
+subview_row<eT>
Row<eT>::head(const uword N)
{
arma_extra_debug_sigprint();
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/armadillo-7.200.2/include/armadillo_bits/arma_version.hpp new/armadillo-7.300.0/include/armadillo_bits/arma_version.hpp
--- old/armadillo-7.200.2/include/armadillo_bits/arma_version.hpp 2016-06-12 06:13:38.000000000 +0200
+++ new/armadillo-7.300.0/include/armadillo_bits/arma_version.hpp 2016-06-16 18:16:00.000000000 +0200
@@ -14,9 +14,9 @@
#define ARMA_VERSION_MAJOR 7
-#define ARMA_VERSION_MINOR 200
-#define ARMA_VERSION_PATCH 2
-#define ARMA_VERSION_NAME "Plutocratic Climate Change Denialist"
+#define ARMA_VERSION_MINOR 300
+#define ARMA_VERSION_PATCH 0
+#define ARMA_VERSION_NAME "Feral Winter"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/armadillo-7.200.2/include/armadillo_bits/auxlib_meat.hpp new/armadillo-7.300.0/include/armadillo_bits/auxlib_meat.hpp
--- old/armadillo-7.200.2/include/armadillo_bits/auxlib_meat.hpp 2016-06-12 06:13:38.000000000 +0200
+++ new/armadillo-7.300.0/include/armadillo_bits/auxlib_meat.hpp 2016-06-16 18:16:00.000000000 +0200
@@ -805,7 +805,7 @@
arma_extra_debug_print("atlas::clapack_getrf()");
int info = atlas::clapack_getrf(atlas::CblasColMajor, U_n_rows, U_n_cols, U.memptr(), U_n_rows, ipiv.memptr());
- status = (info == 0);
+ status = (info >= 0);
}
#elif defined(ARMA_USE_LAPACK)
{
@@ -824,7 +824,7 @@
// take into account that Fortran counts from 1
arrayops::inplace_minus(ipiv.memptr(), blas_int(1), ipiv.n_elem);
- status = (info == 0);
+ status = (info >= 0);
}
#endif
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/armadillo-7.200.2/include/armadillo_bits/compiler_setup.hpp new/armadillo-7.300.0/include/armadillo_bits/compiler_setup.hpp
--- old/armadillo-7.200.2/include/armadillo_bits/compiler_setup.hpp 2016-06-05 18:37:54.000000000 +0200
+++ new/armadillo-7.300.0/include/armadillo_bits/compiler_setup.hpp 2016-06-16 18:16:00.000000000 +0200
@@ -117,10 +117,13 @@
#endif
-#if defined(__APPLE__)
+#if defined(__APPLE__) || defined(__apple_build_version__)
#undef ARMA_BLAS_SDOT_BUG
#define ARMA_BLAS_SDOT_BUG
+
#undef ARMA_HAVE_POSIX_MEMALIGN
+ #undef ARMA_USE_EXTERN_CXX11_RNG
+ // TODO: thread local storage (TLS) (eg. "extern thread_local") appears currently broken on Mac OS X
#endif
@@ -144,7 +147,7 @@
#endif
-#if (defined(__GNUG__) || defined(__GNUC__)) && (defined(__clang__) || defined(__INTEL_COMPILER) || defined(__NVCC__) || defined(__CUDACC__) || defined(__PGI) || defined(__PATHSCALE__))
+#if (defined(__GNUG__) || defined(__GNUC__)) && (defined(__clang__) || defined(__INTEL_COMPILER) || defined(__NVCC__) || defined(__CUDACC__) || defined(__PGI) || defined(__PATHSCALE__) || defined(__ARMCC_VERSION) || defined(__IBMCPP__))
#undef ARMA_FAKE_GCC
#define ARMA_FAKE_GCC
#endif
@@ -231,7 +234,7 @@
#endif
-#if defined(__clang__) && (defined(__INTEL_COMPILER) || defined(__NVCC__) || defined(__CUDACC__) || defined(__PGI) || defined(__PATHSCALE__))
+#if defined(__clang__) && (defined(__INTEL_COMPILER) || defined(__NVCC__) || defined(__CUDACC__) || defined(__PGI) || defined(__PATHSCALE__) || defined(__ARMCC_VERSION) || defined(__IBMCPP__))
#undef ARMA_FAKE_CLANG
#define ARMA_FAKE_CLANG
#endif
@@ -296,11 +299,6 @@
#define ARMA_HAVE_GCC_ASSUME_ALIGNED
#endif
- #if defined(__apple_build_version__)
- #undef ARMA_USE_EXTERN_CXX11_RNG
- // TODO: check the status of support for "extern thread_local" in clang shipped with Mac OS X
- #endif
-
#if !defined(ARMA_USE_CXX11) && (defined(_POSIX_C_SOURCE) && (_POSIX_C_SOURCE >= 200112L))
#define ARMA_HAVE_SNPRINTF
#define ARMA_HAVE_ISFINITE
@@ -351,6 +349,7 @@
#pragma warning(push)
#pragma warning(disable: 4127) // conditional expression is constant
+ #pragma warning(disable: 4180) // qualifier has no meaning
#pragma warning(disable: 4244) // possible loss of data when converting types
#pragma warning(disable: 4510) // default constructor could not be generated
#pragma warning(disable: 4511) // copy constructor can't be generated
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/armadillo-7.200.2/include/armadillo_bits/fn_index_max.hpp new/armadillo-7.300.0/include/armadillo_bits/fn_index_max.hpp
--- old/armadillo-7.200.2/include/armadillo_bits/fn_index_max.hpp 1970-01-01 01:00:00.000000000 +0100
+++ new/armadillo-7.300.0/include/armadillo_bits/fn_index_max.hpp 2016-06-16 18:16:00.000000000 +0200
@@ -0,0 +1,138 @@
+// Copyright (C) 2016 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
+
+
+//! \addtogroup fn_index_max
+//! @{
+
+
+template<typename T1>
+arma_warn_unused
+arma_inline
+const mtOp
participants (1)
-
root@hilbert.suse.de