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
9 changes: 9 additions & 0 deletions ChangeLog
Original file line number Diff line number Diff line change
@@ -1,3 +1,12 @@
2025-10-28 Dirk Eddelbuettel <edd@debian.org>

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

* inst/include/current/: Sync with Armadillo 15.2.1

2025-10-21 Dirk Eddelbuettel <edd@debian.org>

* inst/tinytest/test_misc.R: Tests for armadillo_version_typed()
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.2.0-0
Date: 2025-10-20
Version: 15.2.1-0
Date: 2025-10-28
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
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.2.0-0.
# Generated by GNU Autoconf 2.72 for RcppArmadillo 15.2.1-0.
#
# 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.2.0-0'
PACKAGE_STRING='RcppArmadillo 15.2.0-0'
PACKAGE_VERSION='15.2.1-0'
PACKAGE_STRING='RcppArmadillo 15.2.1-0'
PACKAGE_BUGREPORT='edd@debian.org'
PACKAGE_URL=''

Expand Down Expand Up @@ -1221,7 +1221,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.2.0-0 to adapt to many kinds of systems.
'configure' configures RcppArmadillo 15.2.1-0 to adapt to many kinds of systems.

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

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

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

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

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

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

CONFIG_FILES = $CONFIG_FILES
Expand Down Expand Up @@ -3917,7 +3917,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.2.0-0
RcppArmadillo config.status 15.2.1-0
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.2.0-0],[edd@debian.org])
AC_INIT([RcppArmadillo],[15.2.1-0],[edd@debian.org])

## Set R_HOME, respecting an environment variable if one is set
: ${R_HOME=$(R RHOME)}
Expand Down
9 changes: 9 additions & 0 deletions inst/NEWS.Rd
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,15 @@
\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.2.1-0 (2025-10-28) (GitHub Only)}{
\itemize{
\item Upgraded to Armadillo release 15.2.1 (Medium Roast Deluxe)
\itemize{
\item Faster handling of submatrices with one row
}
}
}

\section{Changes in RcppArmadillo version 15.2.0-0 (2025-10-20) (GitHub Only)}{
\itemize{
\item Upgraded to Armadillo release 15.2.0 (Medium Roast Deluxe)
Expand Down
2 changes: 1 addition & 1 deletion inst/include/current/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 2
#define ARMA_VERSION_PATCH 0
#define ARMA_VERSION_PATCH 1
#define ARMA_VERSION_NAME "Medium Roast Deluxe"


Expand Down
33 changes: 28 additions & 5 deletions inst/include/current/armadillo_bits/op_accu_meat.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -602,7 +602,30 @@ op_accu_mat::apply(const subview<eT>& X)
const uword X_n_rows = X.n_rows;
const uword X_n_cols = X.n_cols;

if(X_n_rows == 1) { return op_accu_mat::apply( static_cast< const subview_row<eT>& >(X) ); }
if(X_n_rows == 1)
{
const uword X_m_n_rows = X.m.n_rows;

const eT* mem_ptr = X.colptr(0);

eT val1 = eT(0);
eT val2 = eT(0);

uword j;

for(j=1; j < X_n_cols; j+=2)
{
val1 += (*mem_ptr); mem_ptr += X_m_n_rows;
val2 += (*mem_ptr); mem_ptr += X_m_n_rows;
}

if((j-1) < X_n_cols)
{
val1 += (*mem_ptr);
}

return val1 + val2;
}

if(X_n_cols == 1) { return arrayops::accumulate( X.colptr(0), X_n_rows ); }

Expand Down Expand Up @@ -640,7 +663,7 @@ op_accu_mat::apply(const subview_row<eT>& X)
const uword X_m_n_rows = X.m.n_rows;
const uword X_n_cols = X.n_cols;

const eT* row_mem = &(X.m.at(X.aux_row1,X.aux_col1));
const eT* mem_ptr = X.rowmem;

eT val1 = eT(0);
eT val2 = eT(0);
Expand All @@ -649,13 +672,13 @@ op_accu_mat::apply(const subview_row<eT>& X)

for(j=1; j < X_n_cols; j+=2)
{
val1 += (*row_mem); row_mem += X_m_n_rows;
val2 += (*row_mem); row_mem += X_m_n_rows;
val1 += (*mem_ptr); mem_ptr += X_m_n_rows;
val2 += (*mem_ptr); mem_ptr += X_m_n_rows;
}

if((j-1) < X_n_cols)
{
val1 += (*row_mem);
val1 += (*mem_ptr);
}

return val1 + val2;
Expand Down
18 changes: 17 additions & 1 deletion inst/include/current/armadillo_bits/subview_bones.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -85,7 +85,7 @@ class subview : public Base< eT, subview<eT> >
template<typename T1> inline void operator-= (const SpBase<eT,T1>& x);
template<typename T1> inline void operator%= (const SpBase<eT,T1>& x);
template<typename T1> inline void operator/= (const SpBase<eT,T1>& x);

template<typename T1, typename gen_type>
inline typename enable_if2< is_same_type<typename T1::elem_type, eT>::value, void>::result operator=(const Gen<T1,gen_type>& x);

Expand Down Expand Up @@ -396,6 +396,11 @@ class subview_col : public subview<eT>
inline void zeros();
inline void ones();

arma_warn_unused inline bool is_finite() const;

arma_warn_unused inline bool has_inf() const;
arma_warn_unused inline bool has_nan() const;

arma_inline eT at_alt (const uword i) const;

arma_inline eT& operator[](const uword i);
Expand Down Expand Up @@ -528,6 +533,8 @@ class subview_row : public subview<eT>
static constexpr bool is_col = false;
static constexpr bool is_xvec = false;

const eT* rowmem;

inline void operator= (const subview<eT>& x);
inline void operator= (const subview_row& x);
inline void operator= (const eT val);
Expand All @@ -545,6 +552,15 @@ class subview_row : public subview<eT>

arma_warn_unused arma_inline const Op<subview_row<eT>,op_strans> as_col() const;

inline void fill(const eT val);
inline void zeros();
inline void ones();

arma_warn_unused inline bool is_finite() const;

arma_warn_unused inline bool has_inf() const;
arma_warn_unused inline bool has_nan() const;

inline eT at_alt (const uword i) const;

inline eT& operator[](const uword i);
Expand Down
Loading