Skip to content

Commit fe03f23

Browse files
authored
Merge pull request #469 from RcppCore/feature/armadillo_14.6.1
RcppArmadillo 14.6.1-0 with Armadillo 14.6.1
2 parents 5f59280 + 3c6e8de commit fe03f23

17 files changed

+81
-60
lines changed

ChangeLog

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,12 @@
1+
2025-07-21 Dirk Eddelbuettel <[email protected]>
2+
3+
* DESCRIPTION (Version, Date): RcppArmadillo 14.6.1-1
4+
* inst/NEWS.Rd: Idem
5+
* configure.ac: Idem
6+
* configure: Idem
7+
8+
* inst/include/armadillo_bits/: Armadillo 14.6.1
9+
110
2025-07-02 Dirk Eddelbuettel <[email protected]>
211

312
* DESCRIPTION (Version, Date): RcppArmadillo 14.6.0-1

DESCRIPTION

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
Package: RcppArmadillo
22
Type: Package
33
Title: 'Rcpp' Integration for the 'Armadillo' Templated Linear Algebra Library
4-
Version: 14.6.0-1
5-
Date: 2025-07-02
4+
Version: 14.6.1-1
5+
Date: 2025-07-21
66
Authors@R: c(person("Dirk", "Eddelbuettel", role = c("aut", "cre"), email = "[email protected]",
77
comment = c(ORCID = "0000-0001-6419-907X")),
88
person("Romain", "Francois", role = "aut",

configure

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
#! /bin/sh
22
# Guess values for system-dependent variables and create Makefiles.
3-
# Generated by GNU Autoconf 2.72 for RcppArmadillo 14.6.0-1.
3+
# Generated by GNU Autoconf 2.72 for RcppArmadillo 14.6.1-1.
44
#
55
# Report bugs to <[email protected]>.
66
#
@@ -603,8 +603,8 @@ MAKEFLAGS=
603603
# Identity of this package.
604604
PACKAGE_NAME='RcppArmadillo'
605605
PACKAGE_TARNAME='rcpparmadillo'
606-
PACKAGE_VERSION='14.6.0-1'
607-
PACKAGE_STRING='RcppArmadillo 14.6.0-1'
606+
PACKAGE_VERSION='14.6.1-1'
607+
PACKAGE_STRING='RcppArmadillo 14.6.1-1'
608608
PACKAGE_BUGREPORT='[email protected]'
609609
PACKAGE_URL=''
610610

@@ -1222,7 +1222,7 @@ if test "$ac_init_help" = "long"; then
12221222
# Omit some internal or obsolete options to make the list less imposing.
12231223
# This message is too long to be a string in the A/UX 3.1 sh.
12241224
cat <<_ACEOF
1225-
'configure' configures RcppArmadillo 14.6.0-1 to adapt to many kinds of systems.
1225+
'configure' configures RcppArmadillo 14.6.1-1 to adapt to many kinds of systems.
12261226
12271227
Usage: $0 [OPTION]... [VAR=VALUE]...
12281228
@@ -1284,7 +1284,7 @@ fi
12841284

12851285
if test -n "$ac_init_help"; then
12861286
case $ac_init_help in
1287-
short | recursive ) echo "Configuration of RcppArmadillo 14.6.0-1:";;
1287+
short | recursive ) echo "Configuration of RcppArmadillo 14.6.1-1:";;
12881288
esac
12891289
cat <<\_ACEOF
12901290
@@ -1365,7 +1365,7 @@ fi
13651365
test -n "$ac_init_help" && exit $ac_status
13661366
if $ac_init_version; then
13671367
cat <<\_ACEOF
1368-
RcppArmadillo configure 14.6.0-1
1368+
RcppArmadillo configure 14.6.1-1
13691369
generated by GNU Autoconf 2.72
13701370
13711371
Copyright (C) 2023 Free Software Foundation, Inc.
@@ -1481,7 +1481,7 @@ cat >config.log <<_ACEOF
14811481
This file contains any messages produced by compilers while
14821482
running configure, to aid debugging if configure makes a mistake.
14831483
1484-
It was created by RcppArmadillo $as_me 14.6.0-1, which was
1484+
It was created by RcppArmadillo $as_me 14.6.1-1, which was
14851485
generated by GNU Autoconf 2.72. Invocation command line was
14861486
14871487
$ $0$ac_configure_args_raw
@@ -3980,7 +3980,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
39803980
# report actual input values of CONFIG_FILES etc. instead of their
39813981
# values after options handling.
39823982
ac_log="
3983-
This file was extended by RcppArmadillo $as_me 14.6.0-1, which was
3983+
This file was extended by RcppArmadillo $as_me 14.6.1-1, which was
39843984
generated by GNU Autoconf 2.72. Invocation command line was
39853985
39863986
CONFIG_FILES = $CONFIG_FILES
@@ -4035,7 +4035,7 @@ ac_cs_config_escaped=`printf "%s\n" "$ac_cs_config" | sed "s/^ //; s/'/'\\\\\\\\
40354035
cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
40364036
ac_cs_config='$ac_cs_config_escaped'
40374037
ac_cs_version="\\
4038-
RcppArmadillo config.status 14.6.0-1
4038+
RcppArmadillo config.status 14.6.1-1
40394039
configured by $0, generated by GNU Autoconf 2.72,
40404040
with options \\"\$ac_cs_config\\"
40414041

configure.ac

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@
1111
AC_PREREQ([2.69])
1212

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

1616
## Set R_HOME, respecting an environment variable if one is set
1717
: ${R_HOME=$(R RHOME)}

inst/NEWS.Rd

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,17 @@
33
\newcommand{\ghpr}{\href{https://github.com/RcppCore/RcppArmadillo/pull/#1}{##1}}
44
\newcommand{\ghit}{\href{https://github.com/RcppCore/RcppArmadillo/issues/#1}{##1}}
55

6+
\section{Changes in RcppArmadillo version 14.6.1-1 (2025-07-21) (GitHub Only)}{
7+
\itemize{
8+
\item Upgraded to Armadillo release 14.6.1 (Caffe Mocha)
9+
\itemize{
10+
\item Fix for speed regression in \code{mean()}
11+
\item Fix for detection of compiler configuration
12+
\item Use of \code{pow} optimization now optional
13+
}
14+
}
15+
}
16+
617
\section{Changes in RcppArmadillo version 14.6.0-1 (2025-07-02)}{
718
\itemize{
819
\item Upgraded to Armadillo release 14.6.0 (Caffe Mocha)

inst/include/armadillo_bits/Cube_meat.hpp

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -2872,7 +2872,7 @@ Cube<eT>::Cube(const eOpCube<T1, eop_type>& X)
28722872

28732873
init_cold();
28742874

2875-
if(is_same_type<eop_type, eop_pow>::value)
2875+
if(arma_config::optimise_powexpr && is_same_type<eop_type, eop_pow>::value)
28762876
{
28772877
constexpr bool eT_non_int = is_non_integral<eT>::value;
28782878

@@ -2902,7 +2902,7 @@ Cube<eT>::operator=(const eOpCube<T1, eop_type>& X)
29022902

29032903
init_warm(X.get_n_rows(), X.get_n_cols(), X.get_n_slices());
29042904

2905-
if(is_same_type<eop_type, eop_pow>::value)
2905+
if(arma_config::optimise_powexpr && is_same_type<eop_type, eop_pow>::value)
29062906
{
29072907
constexpr bool eT_non_int = is_non_integral<eT>::value;
29082908

@@ -2932,7 +2932,7 @@ Cube<eT>::operator+=(const eOpCube<T1, eop_type>& X)
29322932

29332933
if(bad_alias) { const Cube<eT> tmp(X); return (*this).operator+=(tmp); }
29342934

2935-
if(is_same_type<eop_type, eop_pow>::value)
2935+
if(arma_config::optimise_powexpr && is_same_type<eop_type, eop_pow>::value)
29362936
{
29372937
constexpr bool eT_non_int = is_non_integral<eT>::value;
29382938

@@ -2962,7 +2962,7 @@ Cube<eT>::operator-=(const eOpCube<T1, eop_type>& X)
29622962

29632963
if(bad_alias) { const Cube<eT> tmp(X); return (*this).operator-=(tmp); }
29642964

2965-
if(is_same_type<eop_type, eop_pow>::value)
2965+
if(arma_config::optimise_powexpr && is_same_type<eop_type, eop_pow>::value)
29662966
{
29672967
constexpr bool eT_non_int = is_non_integral<eT>::value;
29682968

@@ -2992,7 +2992,7 @@ Cube<eT>::operator%=(const eOpCube<T1, eop_type>& X)
29922992

29932993
if(bad_alias) { const Cube<eT> tmp(X); return (*this).operator%=(tmp); }
29942994

2995-
if(is_same_type<eop_type, eop_pow>::value)
2995+
if(arma_config::optimise_powexpr && is_same_type<eop_type, eop_pow>::value)
29962996
{
29972997
constexpr bool eT_non_int = is_non_integral<eT>::value;
29982998

@@ -3022,7 +3022,7 @@ Cube<eT>::operator/=(const eOpCube<T1, eop_type>& X)
30223022

30233023
if(bad_alias) { const Cube<eT> tmp(X); return (*this).operator/=(tmp); }
30243024

3025-
if(is_same_type<eop_type, eop_pow>::value)
3025+
if(arma_config::optimise_powexpr && is_same_type<eop_type, eop_pow>::value)
30263026
{
30273027
constexpr bool eT_non_int = is_non_integral<eT>::value;
30283028

inst/include/armadillo_bits/Mat_meat.hpp

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -5201,7 +5201,7 @@ Mat<eT>::Mat(const eOp<T1, eop_type>& X)
52015201

52025202
init_cold();
52035203

5204-
if(is_same_type<eop_type, eop_pow>::value)
5204+
if(arma_config::optimise_powexpr && is_same_type<eop_type, eop_pow>::value)
52055205
{
52065206
constexpr bool eT_non_int = is_non_integral<eT>::value;
52075207

@@ -5231,7 +5231,7 @@ Mat<eT>::operator=(const eOp<T1, eop_type>& X)
52315231

52325232
init_warm(X.get_n_rows(), X.get_n_cols());
52335233

5234-
if(is_same_type<eop_type, eop_pow>::value)
5234+
if(arma_config::optimise_powexpr && is_same_type<eop_type, eop_pow>::value)
52355235
{
52365236
constexpr bool eT_non_int = is_non_integral<eT>::value;
52375237

@@ -5260,7 +5260,7 @@ Mat<eT>::operator+=(const eOp<T1, eop_type>& X)
52605260

52615261
if(bad_alias) { const Mat<eT> tmp(X); return (*this).operator+=(tmp); }
52625262

5263-
if(is_same_type<eop_type, eop_pow>::value)
5263+
if(arma_config::optimise_powexpr && is_same_type<eop_type, eop_pow>::value)
52645264
{
52655265
constexpr bool eT_non_int = is_non_integral<eT>::value;
52665266

@@ -5289,7 +5289,7 @@ Mat<eT>::operator-=(const eOp<T1, eop_type>& X)
52895289

52905290
if(bad_alias) { const Mat<eT> tmp(X); return (*this).operator-=(tmp); }
52915291

5292-
if(is_same_type<eop_type, eop_pow>::value)
5292+
if(arma_config::optimise_powexpr && is_same_type<eop_type, eop_pow>::value)
52935293
{
52945294
constexpr bool eT_non_int = is_non_integral<eT>::value;
52955295

@@ -5335,7 +5335,7 @@ Mat<eT>::operator%=(const eOp<T1, eop_type>& X)
53355335

53365336
if(bad_alias) { const Mat<eT> tmp(X); return (*this).operator%=(tmp); }
53375337

5338-
if(is_same_type<eop_type, eop_pow>::value)
5338+
if(arma_config::optimise_powexpr && is_same_type<eop_type, eop_pow>::value)
53395339
{
53405340
constexpr bool eT_non_int = is_non_integral<eT>::value;
53415341

@@ -5364,7 +5364,7 @@ Mat<eT>::operator/=(const eOp<T1, eop_type>& X)
53645364

53655365
if(bad_alias) { const Mat<eT> tmp(X); return (*this).operator/=(tmp); }
53665366

5367-
if(is_same_type<eop_type, eop_pow>::value)
5367+
if(arma_config::optimise_powexpr && is_same_type<eop_type, eop_pow>::value)
53685368
{
53695369
constexpr bool eT_non_int = is_non_integral<eT>::value;
53705370

inst/include/armadillo_bits/arma_config.hpp

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -65,6 +65,13 @@ struct arma_config
6565
#endif
6666

6767

68+
#if defined(ARMA_OPTIMISE_POWEXPR)
69+
static constexpr bool optimise_powexpr = true;
70+
#else
71+
static constexpr bool optimise_powexpr = false;
72+
#endif
73+
74+
6875
#if defined(ARMA_CHECK_CONFORMANCE)
6976
static constexpr bool check_conform = true;
7077
#else

inst/include/armadillo_bits/arma_version.hpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@
2323

2424
#define ARMA_VERSION_MAJOR 14
2525
#define ARMA_VERSION_MINOR 6
26-
#define ARMA_VERSION_PATCH 0
26+
#define ARMA_VERSION_PATCH 1
2727
#define ARMA_VERSION_NAME "Caffe Mocha"
2828

2929

inst/include/armadillo_bits/compiler_setup.hpp

Lines changed: 0 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -172,10 +172,6 @@
172172
#pragma message("INFO: support for GCC versions older than 8.1 is deprecated")
173173
#endif
174174

175-
#if (ARMA_GCC_VERSION >= 170000)
176-
#undef ARMA_IGNORE_DEPRECATED_MARKER
177-
#endif
178-
179175
#define ARMA_GOOD_COMPILER
180176

181177
#undef arma_hot
@@ -233,12 +229,6 @@
233229

234230
// #pragma message ("using Clang extensions")
235231

236-
#if defined(__clang_major__) && !defined(__apple_build_version__)
237-
#if (__clang_major__ >= 24)
238-
#undef ARMA_IGNORE_DEPRECATED_MARKER
239-
#endif
240-
#endif
241-
242232
#define ARMA_GOOD_COMPILER
243233

244234
#if !defined(__has_attribute)
@@ -487,9 +477,6 @@
487477
#undef major
488478

489479

490-
// WARNING: option 'ARMA_IGNORE_DEPRECATED_MARKER' is not supported when compiling with gcc 17+ or clang 24+
491-
// WARNING: disabling deprecation messages is counter-productive
492-
493480
#if defined(ARMA_IGNORE_DEPRECATED_MARKER)
494481
#undef arma_deprecated
495482
#define arma_deprecated

0 commit comments

Comments
 (0)