Skip to content
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
8 changes: 8 additions & 0 deletions ChangeLog
Original file line number Diff line number Diff line change
@@ -1,3 +1,11 @@
2026-10-16 Dirk Eddelbuettel <edd@debian.org>

* inst/include/armadillo_bits/*: Armadillo 15.6.2

* vignettes/rmd/RcppArmadillo.bib: Updated several references
* vignettes/RcppArmadillo-intro.pdf: Regenerated
* vignettes/RcppArmadillo-sparseMatrix.pdf: Idem

2026-10-02 Dirk Eddelbuettel <edd@debian.org>

* DESCRIPTION (Version, Date): RcppArmadillo 15.6.1-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: 15.6.1-1
Date: 2026-10-02
Version: 15.6.2-1
Date: 2026-10-16
Authors@R: c(person("Dirk", "Eddelbuettel", role = c("aut", "cre"), email = "edd@debian.org",
comment = c(ORCID = "0000-0001-6419-907X")),
person("Romain", "Francois", role = "aut",
Expand Down
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -152,4 +152,4 @@ GPL (>= 2)
[cran pkg]: https://cran.r-project.org/package=RcppArmadillo
[benchmark]: https://eddelbuettel.github.io/ldlasb2/benchmarks.html
[ldlasb2]: https://github.com/eddelbuettel/ldlasb2
[rcpparmapaper]: http://dx.doi.org/10.1016/j.csda.2013.02.005
[rcpparmapaper]: https://dx.doi.org/10.1016/j.csda.2013.02.005
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 15.6.1-1.
# Generated by GNU Autoconf 2.72 for RcppArmadillo 15.6.2-1.
#
# Report bugs to <edd@debian.org>.
#
Expand Down Expand Up @@ -603,8 +603,8 @@ MAKEFLAGS=
# Identity of this package.
PACKAGE_NAME='RcppArmadillo'
PACKAGE_TARNAME='rcpparmadillo'
PACKAGE_VERSION='15.6.1-1'
PACKAGE_STRING='RcppArmadillo 15.6.1-1'
PACKAGE_VERSION='15.6.2-1'
PACKAGE_STRING='RcppArmadillo 15.6.2-1'
PACKAGE_BUGREPORT='edd@debian.org'
PACKAGE_URL=''

Expand Down Expand Up @@ -1223,7 +1223,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 15.6.1-1 to adapt to many kinds of systems.
'configure' configures RcppArmadillo 15.6.2-1 to adapt to many kinds of systems.

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

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

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

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

Copyright (C) 2023 Free Software Foundation, Inc.
Expand Down Expand Up @@ -1482,7 +1482,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 15.6.1-1, which was
It was created by RcppArmadillo $as_me 15.6.2-1, which was
generated by GNU Autoconf 2.72. Invocation command line was

$ $0$ac_configure_args_raw
Expand Down Expand Up @@ -3946,7 +3946,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 15.6.1-1, which was
This file was extended by RcppArmadillo $as_me 15.6.2-1, which was
generated by GNU Autoconf 2.72. Invocation command line was

CONFIG_FILES = $CONFIG_FILES
Expand Down Expand Up @@ -4001,7 +4001,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 15.6.1-1
RcppArmadillo config.status 15.6.2-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],[15.6.1-1],[edd@debian.org])
AC_INIT([RcppArmadillo],[15.6.2-1],[edd@debian.org])

## Set R_HOME, respecting an environment variable if one is set
: ${R_HOME=$(R RHOME)}
Expand Down
11 changes: 10 additions & 1 deletion inst/NEWS.Rd
Original file line number Diff line number Diff line change
Expand Up @@ -3,9 +3,18 @@
\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 15.6.2-1 (2026-10-16)}{
\itemize{
\item Upgraded to Armadillo release 15.6.2 (Medium Roast Cortado)
\itemize{
\item Faster inplace addition of \code{eye()} expressions
}
}
}

\section{Changes in RcppArmadillo version 15.6.1-1 [github-only] (2026-10-02)}{
\itemize{
\item Upgraded to Armadillo release 15.6.1 (Medium Roast Agave)
\item Upgraded to Armadillo release 15.6.1 (Medium Roast Cortado)
\itemize{
\item Fix for failures in \code{pinv()} when using the (non-default)
"std" method
Expand Down
48 changes: 48 additions & 0 deletions inst/include/armadillo_bits/Mat_meat.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -5504,6 +5504,18 @@ Mat<eT>::Mat(const eOp<T1, eop_type>& X)
if(eT_ok && (X.aux == eT(0.5))) { eop_sqrt::apply(*this, reinterpret_cast< const eOp<T1, eop_sqrt >& >(X)); return; }
}

if(is_gen_eye<T1>::value && is_same_type<eop_type, eop_scalar_times>::value)
{
zeros();

const eT k = X.aux;
const uword N = (std::min)(n_rows, n_cols);

for(uword ii=0; ii < N; ++ii) { at(ii,ii) = k; }

return;
}

eop_type::apply(*this, X);
}

Expand Down Expand Up @@ -5534,6 +5546,18 @@ Mat<eT>::operator=(const eOp<T1, eop_type>& X)
if(eT_ok && (X.aux == eT(0.5))) { eop_sqrt::apply(*this, reinterpret_cast< const eOp<T1, eop_sqrt >& >(X)); return *this; }
}

if(is_gen_eye<T1>::value && is_same_type<eop_type, eop_scalar_times>::value)
{
zeros();

const eT k = X.aux;
const uword N = (std::min)(n_rows, n_cols);

for(uword ii=0; ii < N; ++ii) { at(ii,ii) = k; }

return *this;
}

eop_type::apply(*this, X);

return *this;
Expand Down Expand Up @@ -5563,6 +5587,18 @@ Mat<eT>::operator+=(const eOp<T1, eop_type>& X)
if(eT_ok && (X.aux == eT(0.5))) { eop_sqrt::apply_inplace_plus(*this, reinterpret_cast< const eOp<T1, eop_sqrt >& >(X)); return *this; }
}

if(is_gen_eye<T1>::value && is_same_type<eop_type, eop_scalar_times>::value)
{
arma_conform_assert_same_size(n_rows, n_cols, X.get_n_rows(), X.get_n_cols(), "addition");

const eT k = X.aux;
const uword N = (std::min)(n_rows, n_cols);

for(uword ii=0; ii < N; ++ii) { at(ii,ii) += k; }

return *this;
}

eop_type::apply_inplace_plus(*this, X);

return *this;
Expand Down Expand Up @@ -5592,6 +5628,18 @@ Mat<eT>::operator-=(const eOp<T1, eop_type>& X)
if(eT_ok && (X.aux == eT(0.5))) { eop_sqrt::apply_inplace_minus(*this, reinterpret_cast< const eOp<T1, eop_sqrt >& >(X)); return *this; }
}

if(is_gen_eye<T1>::value && is_same_type<eop_type, eop_scalar_times>::value)
{
arma_conform_assert_same_size(n_rows, n_cols, X.get_n_rows(), X.get_n_cols(), "subtraction");

const eT k = X.aux;
const uword N = (std::min)(n_rows, n_cols);

for(uword ii=0; ii < N; ++ii) { at(ii,ii) -= k; }

return *this;
}

eop_type::apply_inplace_minus(*this, X);

return *this;
Expand Down
2 changes: 1 addition & 1 deletion inst/include/armadillo_bits/arma_version.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@

#define ARMA_VERSION_MAJOR 15
#define ARMA_VERSION_MINOR 6
#define ARMA_VERSION_PATCH 1
#define ARMA_VERSION_PATCH 2
#define ARMA_VERSION_NAME "Medium Roast Cortado"


Expand Down
13 changes: 13 additions & 0 deletions inst/include/armadillo_bits/traits.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -444,6 +444,19 @@ struct is_op_diagmat< const Op<T1,op_diagmat> >
{ static constexpr bool value = true; };


template<typename T>
struct is_gen_eye
{ static constexpr bool value = false; };

template<typename eT>
struct is_gen_eye< Gen<Mat<eT>, gen_eye> >
{ static constexpr bool value = true; };

template<typename eT>
struct is_gen_eye< const Gen<Mat<eT>, gen_eye> >
{ static constexpr bool value = true; };


//
//

Expand Down
Binary file modified vignettes/RcppArmadillo-intro.pdf
Binary file not shown.
Binary file modified vignettes/RcppArmadillo-sparseMatrix.pdf
Binary file not shown.
16 changes: 8 additions & 8 deletions vignettes/rmd/RcppArmadillo.bib
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ @String{CRAN
@String{manuals = CRAN # "doc/manuals/" }
@String{RCoreTeam = "{R Development Core Team}" }
@String{RFoundation = "R Foundation for Statistical Computing" }
@String{R-Forge = "https://R-Forge.R-Project.org/" }
@String{R-Forge = "https://R-Forge.R-Project.org" }
@String{DOI = "10.32614/CRAN.package." }


Expand All @@ -11,7 +11,7 @@ @manual{Abrahams+Grosse-Kunstleve:2003:Boost.Python
organization = "Boost Consulting",
title = "Building Hybrid Systems with Boost.Python",
year = 2003,
url = "http://www.boostpro.com/writing/bpl.pdf"
url = "https://www.boost.org/doc/libs/latest/libs/python/doc/html/article.html"
}

@Book{Abrahams+Gurtovoy:2004:TemplateMetaprogramming,
Expand All @@ -28,7 +28,7 @@ @Manual{Armstrong:2009:RAbstraction
author = {Whit Armstrong},
year = 2009,
note = {Code repository last updated July 22, 2009.},
url = {http://github.com/armstrtw/rabstraction}
url = {https://github.com/armstrtw/rabstraction}
}

@Manual{Armstrong:2009:RObjects,
Expand All @@ -37,7 +37,7 @@ @Manual{Armstrong:2009:RObjects
author = {Whit Armstrong},
year = 2009,
note = {Code repository last updated November 28, 2009.},
url = {http://github.com/armstrtw/RObjects}
url = {https://github.com/armstrtw/RObjects}
}

@InProceedings{Bates+DebRoy:2001:C++Classes,
Expand All @@ -56,7 +56,7 @@ @Misc{Brokken:2011:Cpp
title = {C++ Annotations},
howpublished = {Electronic book, University of Groningen},
year = 2012,
url = {http://www.icce.rug.nl/documents/cplusplus/},
url = {https://fbb-git.gitlab.io/cppannotations/cppannotations/html/},
note = {Version 9.3.0, accessed 2012-04-13.},
}

Expand Down Expand Up @@ -334,7 +334,7 @@ @Manual{GSL
year = {2010},
edition = {3rd},
note = {Version 1.14. {ISBN} 0954612078},
url = {http://www.gnu.org/software/gsl}
url = {http://www.gnu.org/software/gsl/}
}

@Unpublished{Java+Gaile+Manly:2007:RCpp,
Expand Down Expand Up @@ -456,7 +456,7 @@ @manual{R:Main
year = 2026,
note = {{ISBN} 3-900051-07-0},
doi = "10.32614/R.manuals",
oldurl = {http://www.R-project.org/},
oldurl = {https://www.R-project.org/},
}

@manual{R:Language,
Expand Down Expand Up @@ -551,7 +551,7 @@ @article{Tusell:2010:Kalman
number = 2,
pages = "1--27",
year = 2011,
oldurl = "http://www.jstatsoft.org/v39/i02",
oldurl = "https://www.jstatsoft.org/v39/i02",
doi = {10.18637/jss.v039.i02}
}

Expand Down
Loading