Skip to content

RcppArmadillo 14.6.0 #468

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 4 commits into from
Jul 2, 2025
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
35 changes: 35 additions & 0 deletions ChangeLog
Original file line number Diff line number Diff line change
@@ -1,3 +1,38 @@
2025-07-02 Dirk Eddelbuettel <[email protected]>

* DESCRIPTION (Version, Date): RcppArmadillo 14.6.0-1
* inst/NEWS.Rd: Idem
* configure.ac: Idem
* configure: Idem

* inst/include/armadillo/: Armadillo 14.6.0
* inst/include/armadillo_bits/: Idem

2025-07-01 Dirk Eddelbuettel <[email protected]>

* DESCRIPTION (Version, Date): RcppArmadillo 14.5.92-1
* inst/NEWS.Rd: Idem
* configure.ac: Idem
* configure: Idem

* inst/include/armadillo/: Armadillo 14.5.92 as RC2 for 14.6.0
* inst/include/armadillo_bits/: Idem

2025-06-30 Dirk Eddelbuettel <[email protected]>

* DESCRIPTION (Version, Date): RcppArmadillo 14.5.91-1
* inst/NEWS.Rd: Idem
* configure.ac: Idem
* configure: Idem

* inst/include/armadillo/: Armadillo 14.5.91 as RC1 for 14.6.0
* inst/include/armadillo_bits/: Idem

2025-06-21 Dirk Eddelbuettel <[email protected]>

* man/fastLm.Rd: Update discussion of rank-deficient systems to note
that newer Armadillo versions warn and fall back to approx solution

2025-05-21 Dirk Eddelbuettel <[email protected]>

* DESCRIPTION (Version, Date): RcppArmadillo 14.4.3-1
Expand Down
4 changes: 2 additions & 2 deletions DESCRIPTION
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
Package: RcppArmadillo
Type: Package
Title: 'Rcpp' Integration for the 'Armadillo' Templated Linear Algebra Library
Version: 14.4.3-1
Date: 2025-05-21
Version: 14.6.0-1
Date: 2025-07-02
Authors@R: c(person("Dirk", "Eddelbuettel", role = c("aut", "cre"), email = "[email protected]",
comment = c(ORCID = "0000-0001-6419-907X")),
person("Romain", "Francois", role = "aut",
Expand Down
18 changes: 9 additions & 9 deletions configure
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
#! /bin/sh
# Guess values for system-dependent variables and create Makefiles.
# Generated by GNU Autoconf 2.72 for RcppArmadillo 14.4.3-1.
# Generated by GNU Autoconf 2.72 for RcppArmadillo 14.6.0-1.
#
# Report bugs to <[email protected]>.
#
Expand Down Expand Up @@ -603,8 +603,8 @@ MAKEFLAGS=
# Identity of this package.
PACKAGE_NAME='RcppArmadillo'
PACKAGE_TARNAME='rcpparmadillo'
PACKAGE_VERSION='14.4.3-1'
PACKAGE_STRING='RcppArmadillo 14.4.3-1'
PACKAGE_VERSION='14.6.0-1'
PACKAGE_STRING='RcppArmadillo 14.6.0-1'
PACKAGE_BUGREPORT='[email protected]'
PACKAGE_URL=''

Expand Down Expand Up @@ -1222,7 +1222,7 @@ if test "$ac_init_help" = "long"; then
# Omit some internal or obsolete options to make the list less imposing.
# This message is too long to be a string in the A/UX 3.1 sh.
cat <<_ACEOF
'configure' configures RcppArmadillo 14.4.3-1 to adapt to many kinds of systems.
'configure' configures RcppArmadillo 14.6.0-1 to adapt to many kinds of systems.

Usage: $0 [OPTION]... [VAR=VALUE]...

Expand Down Expand Up @@ -1284,7 +1284,7 @@ fi

if test -n "$ac_init_help"; then
case $ac_init_help in
short | recursive ) echo "Configuration of RcppArmadillo 14.4.3-1:";;
short | recursive ) echo "Configuration of RcppArmadillo 14.6.0-1:";;
esac
cat <<\_ACEOF

Expand Down Expand Up @@ -1365,7 +1365,7 @@ fi
test -n "$ac_init_help" && exit $ac_status
if $ac_init_version; then
cat <<\_ACEOF
RcppArmadillo configure 14.4.3-1
RcppArmadillo configure 14.6.0-1
generated by GNU Autoconf 2.72

Copyright (C) 2023 Free Software Foundation, Inc.
Expand Down Expand Up @@ -1481,7 +1481,7 @@ cat >config.log <<_ACEOF
This file contains any messages produced by compilers while
running configure, to aid debugging if configure makes a mistake.

It was created by RcppArmadillo $as_me 14.4.3-1, which was
It was created by RcppArmadillo $as_me 14.6.0-1, which was
generated by GNU Autoconf 2.72. Invocation command line was

$ $0$ac_configure_args_raw
Expand Down Expand Up @@ -3980,7 +3980,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
# report actual input values of CONFIG_FILES etc. instead of their
# values after options handling.
ac_log="
This file was extended by RcppArmadillo $as_me 14.4.3-1, which was
This file was extended by RcppArmadillo $as_me 14.6.0-1, which was
generated by GNU Autoconf 2.72. Invocation command line was

CONFIG_FILES = $CONFIG_FILES
Expand Down Expand Up @@ -4035,7 +4035,7 @@ ac_cs_config_escaped=`printf "%s\n" "$ac_cs_config" | sed "s/^ //; s/'/'\\\\\\\\
cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
ac_cs_config='$ac_cs_config_escaped'
ac_cs_version="\\
RcppArmadillo config.status 14.4.3-1
RcppArmadillo config.status 14.6.0-1
configured by $0, generated by GNU Autoconf 2.72,
with options \\"\$ac_cs_config\\"

Expand Down
2 changes: 1 addition & 1 deletion configure.ac
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@
AC_PREREQ([2.69])

## Process this file with autoconf to produce a configure script.
AC_INIT([RcppArmadillo],[14.4.3-1],[[email protected]])
AC_INIT([RcppArmadillo],[14.6.0-1],[[email protected]])

## Set R_HOME, respecting an environment variable if one is set
: ${R_HOME=$(R RHOME)}
Expand Down
20 changes: 17 additions & 3 deletions inst/NEWS.Rd
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,22 @@
\newcommand{\ghpr}{\href{https://github.com/RcppCore/RcppArmadillo/pull/#1}{##1}}
\newcommand{\ghit}{\href{https://github.com/RcppCore/RcppArmadillo/issues/#1}{##1}}

\section{Changes in RcppArmadillo version 14.6.0-1 (2025-07-02)}{
\itemize{
\item Upgraded to Armadillo release 14.6.0 (Caffe Mocha)
\itemize{
\item Added \code{balance()} to transform matrices so that column and
row norms are roughly the same
\item Added \code{omit_nan()} and \code{omit_nonfinite()} to extract
elements while omitting NaN and non-finite values
\item Added \code{find_nonnan()} for finding indices of non-NaN elements
\item Added standalone \code{replace()} function
}
\item The \code{fastLm()} help page now mentions that options to
\code{solve()} can control its behavior.
}
}

\section{Changes in RcppArmadillo version 14.4.3-1 (2025-05-21)}{
\itemize{
\item Upgraded to Armadillo release 14.4.3 (Filtered Espresso)
Expand All @@ -20,9 +36,7 @@
\item Fix for \code{expmat()}
\item Workaround for bugs in clang 20 compiler
}
\itemize{
\item Micro-cleanup in one test file
}
\item Micro-cleanup in one test file
}
}

Expand Down
6 changes: 6 additions & 0 deletions inst/include/armadillo
Original file line number Diff line number Diff line change
Expand Up @@ -304,6 +304,7 @@ namespace arma
#include "armadillo_bits/op_clamp_bones.hpp"
#include "armadillo_bits/op_expmat_bones.hpp"
#include "armadillo_bits/op_nonzeros_bones.hpp"
#include "armadillo_bits/op_omit_bones.hpp"
#include "armadillo_bits/op_diff_bones.hpp"
#include "armadillo_bits/op_norm_bones.hpp"
#include "armadillo_bits/op_vecnorm_bones.hpp"
Expand Down Expand Up @@ -377,6 +378,7 @@ namespace arma
#include "armadillo_bits/spop_norm_bones.hpp"
#include "armadillo_bits/spop_shift_bones.hpp"
#include "armadillo_bits/spop_relational_bones.hpp"
#include "armadillo_bits/spop_omit_bones.hpp"

#include "armadillo_bits/spglue_plus_bones.hpp"
#include "armadillo_bits/spglue_minus_bones.hpp"
Expand Down Expand Up @@ -564,6 +566,7 @@ namespace arma
#include "armadillo_bits/fn_clamp.hpp"
#include "armadillo_bits/fn_expmat.hpp"
#include "armadillo_bits/fn_nonzeros.hpp"
#include "armadillo_bits/fn_omit.hpp"
#include "armadillo_bits/fn_interp1.hpp"
#include "armadillo_bits/fn_interp2.hpp"
#include "armadillo_bits/fn_qz.hpp"
Expand All @@ -590,6 +593,7 @@ namespace arma
#include "armadillo_bits/fn_powmat.hpp"
#include "armadillo_bits/fn_powext.hpp"
#include "armadillo_bits/fn_diags_spdiags.hpp"
#include "armadillo_bits/fn_balance.hpp"

#include "armadillo_bits/fn_speye.hpp"
#include "armadillo_bits/fn_spones.hpp"
Expand Down Expand Up @@ -758,6 +762,7 @@ namespace arma
#include "armadillo_bits/op_clamp_meat.hpp"
#include "armadillo_bits/op_expmat_meat.hpp"
#include "armadillo_bits/op_nonzeros_meat.hpp"
#include "armadillo_bits/op_omit_meat.hpp"
#include "armadillo_bits/op_diff_meat.hpp"
#include "armadillo_bits/op_norm_meat.hpp"
#include "armadillo_bits/op_vecnorm_meat.hpp"
Expand Down Expand Up @@ -831,6 +836,7 @@ namespace arma
#include "armadillo_bits/spop_norm_meat.hpp"
#include "armadillo_bits/spop_shift_meat.hpp"
#include "armadillo_bits/spop_relational_meat.hpp"
#include "armadillo_bits/spop_omit_meat.hpp"

#include "armadillo_bits/spglue_plus_meat.hpp"
#include "armadillo_bits/spglue_minus_meat.hpp"
Expand Down
4 changes: 2 additions & 2 deletions inst/include/armadillo_bits/BaseCube_meat.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -328,7 +328,7 @@ BaseCube<elem_type,derived>::is_finite() const
for(uword c=0; c<n_c; ++c)
for(uword r=0; r<n_r; ++r)
{
if( arma_isfinite(P.at(r,c,s)) == false ) { return false; }
if( arma_isnonfinite(P.at(r,c,s)) ) { return false; }
}
}

Expand Down Expand Up @@ -436,7 +436,7 @@ BaseCube<elem_type,derived>::has_nonfinite() const
for(uword c=0; c<n_c; ++c)
for(uword r=0; r<n_r; ++r)
{
if(arma_isfinite(P.at(r,c,s)) == false) { return true; }
if(arma_isnonfinite(P.at(r,c,s))) { return true; }
}
}

Expand Down
8 changes: 4 additions & 4 deletions inst/include/armadillo_bits/Base_meat.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -685,7 +685,7 @@ Base<elem_type,derived>::is_finite() const

for(uword i=0; i<n_elem; ++i)
{
if(arma_isfinite(Pea[i]) == false) { return false; }
if(arma_isnonfinite(Pea[i])) { return false; }
}
}
else
Expand All @@ -696,7 +696,7 @@ Base<elem_type,derived>::is_finite() const
for(uword col=0; col<n_cols; ++col)
for(uword row=0; row<n_rows; ++row)
{
if(arma_isfinite(P.at(row,col)) == false) { return false; }
if(arma_isnonfinite(P.at(row,col))) { return false; }
}
}
}
Expand Down Expand Up @@ -829,7 +829,7 @@ Base<elem_type,derived>::has_nonfinite() const

for(uword i=0; i<n_elem; ++i)
{
if(arma_isfinite(Pea[i]) == false) { return true; }
if(arma_isnonfinite(Pea[i])) { return true; }
}
}
else
Expand All @@ -840,7 +840,7 @@ Base<elem_type,derived>::has_nonfinite() const
for(uword col=0; col<n_cols; ++col)
for(uword row=0; row<n_rows; ++row)
{
if(arma_isfinite(P.at(row,col)) == false) { return true; }
if(arma_isnonfinite(P.at(row,col))) { return true; }
}
}
}
Expand Down
4 changes: 4 additions & 0 deletions inst/include/armadillo_bits/Cube_meat.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -784,6 +784,10 @@ Cube<eT>::operator=(const Cube<eT>& x)

arrayops::copy( memptr(), x.mem, n_elem );
}
else
{
arma_debug_print("Cube::operator=(): copy omitted");
}

return *this;
}
Expand Down
7 changes: 6 additions & 1 deletion inst/include/armadillo_bits/MapMat_meat.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -106,7 +106,12 @@ MapMat<eT>::operator=(const MapMat<eT>& x)
{
arma_debug_sigprint();

if(this == &x) { return; }
if(this == &x)
{
arma_debug_print("MapMat::operator=(): copy omitted");

return;
}

access::rw(n_rows) = x.n_rows;
access::rw(n_cols) = x.n_cols;
Expand Down
4 changes: 4 additions & 0 deletions inst/include/armadillo_bits/Mat_meat.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -915,6 +915,10 @@ Mat<eT>::operator=(const Mat<eT>& in_mat)

arrayops::copy( memptr(), in_mat.mem, in_mat.n_elem );
}
else
{
arma_debug_print("Mat::operator=(): copy omitted");
}

return *this;
}
Expand Down
4 changes: 2 additions & 2 deletions inst/include/armadillo_bits/SpBase_meat.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -748,7 +748,7 @@ SpBase<elem_type,derived>::is_finite() const

while(it != it_end)
{
if(arma_isfinite(*it) == false) { return false; }
if(arma_isnonfinite(*it)) { return false; }
++it;
}
}
Expand Down Expand Up @@ -850,7 +850,7 @@ SpBase<elem_type,derived>::has_nonfinite() const

while(it != it_end)
{
if(arma_isfinite(*it) == false) { return true; }
if(arma_isnonfinite(*it)) { return true; }
++it;
}
}
Expand Down
7 changes: 6 additions & 1 deletion inst/include/armadillo_bits/SpMat_meat.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -5124,7 +5124,12 @@ SpMat<eT>::init(const SpMat<eT>& x)
{
arma_debug_sigprint();

if(this == &x) { return; }
if(this == &x)
{
arma_debug_print("SpMat::init(): copy omitted");

return;
}

bool init_done = false;

Expand Down
42 changes: 42 additions & 0 deletions inst/include/armadillo_bits/arma_cmath.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -65,6 +65,48 @@ arma_isfinite(const std::complex<T>& x)
}


//


template<typename eT>
inline
bool
arma_isnonfinite(eT)
{
return false;
}



template<>
inline
bool
arma_isnonfinite(float x)
{
return (std::isfinite(x) == false);
}



template<>
inline
bool
arma_isnonfinite(double x)
{
return (std::isfinite(x) == false);
}



template<typename T>
inline
bool
arma_isnonfinite(const std::complex<T>& x)
{
return ( (std::isfinite(x.real()) == false) || (std::isfinite(x.imag()) == false) );
}



//
// wrappers for isinf
Expand Down
Loading