File R-bigPLSR.spec of Package R-bigPLSR
# Automatically generated by CRAN2OBS
#
# Spec file for package bigPLSR
# This file is auto-generated using information in the package source,
# esp. Description and Summary. Improvements in that area should be
# discussed with upstream.
#
# Copyright (c) 2026 SUSE LINUX GmbH, Nuernberg, Germany.
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
# upon. The license for this file, and modifications and additions to the
# file, is the same license as for the pristine package itself (unless the
# license for the pristine package is not an Open Source License, in which
# case the license is the MIT License). An "Open Source License" is a
# license that conforms to the Open Source Definition (Version 1.9)
# published by the Open Source Initiative.
#
# Please submit bugfixes or comments via http://bugs.opensuse.org/
#
%global packname bigPLSR
%global rlibdir %{_libdir}/R/library
Name: R-%{packname}
Version: 0.7.2
Release: 0
Summary: Partial Least Squares Regression Models with Big Matrices
Group: Development/Libraries/Other
License: GPL-3
URL: http://cran.r-project.org/web/packages/%{packname}
Source: bigPLSR_0.7.2.tar.gz
Requires: R-base
Requires: R-Rcpp
Requires: R-bigmemory
Requires: R-RcppArmadillo
Requires: R-BH
Requires: R-bigmemory.sri
Requires: R-uuid
# %%if 0%%{?sle_version} > 120400 || 0%%{?is_opensuse}
# # Three others commonly needed
# BuildRequires: tex(ae.sty)
# BuildRequires: tex(fancyvrb.sty)
# BuildRequires: tex(inconsolata.sty)
# BuildRequires: tex(natbib.sty)
# %else
# BuildRequires: texlive
# %endif
# BuildRequires: texinfo
BuildRequires: fdupes
BuildRequires: R-base
BuildRequires: R-Rcpp-devel
BuildRequires: R-bigmemory
BuildRequires: R-RcppArmadillo-devel
BuildRequires: R-BH-devel
BuildRequires: R-bigmemory.sri
BuildRequires: R-uuid
BuildRequires: gcc gcc-c++ gcc-fortran
Suggests: R-bench
Suggests: R-dplyr
Suggests: R-forcats
Suggests: R-future
Suggests: R-future.apply
Suggests: R-ggplot2
Suggests: R-knitr
Suggests: R-pls
Suggests: R-plsRglm
Suggests: R-rmarkdown
Suggests: R-RhpcBLASctl
Suggests: R-svglite
Suggests: R-testthat
Suggests: R-tidyr
Suggests: R-withr
%description
Fast partial least squares (PLS) for dense and out-of-core data.
Provides SIMPLS (straightforward implementation of a statistically
inspired modification of the PLS method) and NIPALS (non-linear
iterative partial least-squares) solvers, plus kernel-style PLS
variants ('kernelpls' and 'widekernelpls') with parity to 'pls'.
Optimized for 'bigmemory'-backed matrices with streamed cross-products
and chunked BLAS (Basic Linear Algebra Subprograms) (XtX/XtY and
XXt/YX), optional file-backed score sinks, and deterministic testing
helpers. Includes an auto-selection strategy that chooses between XtX
SIMPLS, XXt (wide) SIMPLS, and NIPALS based on (n, p) and a
configurable memory budget. About the package, Bertrand and Maumy
(2023) <https://hal.science/hal-05352069>, and
<https://hal.science/hal-05352061> highlighted fitting and
cross-validating PLS regression models to big data. For more details
about some of the techniques featured in the package, Dayal and
MacGregor (1997)
<doi:10.1002/(SICI)1099-128X(199701)11:1%3C73::AID-CEM435%3E3.0.CO;2-%23>,
Rosipal & Trejo (2001)
<https://www.jmlr.org/papers/v2/rosipal01a.html>, Tenenhaus, Viennet,
and Saporta (2007) <doi:10.1016/j.csda.2007.01.004>, Rosipal (2004)
<doi:10.1007/978-3-540-45167-9_17>, Rosipal (2019)
<https://ieeexplore.ieee.org/document/8616346>, Song, Wang, and Bai
(2024) <doi:10.1016/j.chemolab.2024.105238>. Includes kernel logistic
PLS with 'C++'-accelerated alternating iteratively reweighted least
squares (IRLS) updates, streamed reproducing kernel Hilbert space
(RKHS) solvers with reusable centering statistics, and bootstrap
diagnostics with graphical summaries for coefficients, scores, and
cross-validation workflows, alongside dedicated plotting utilities for
individuals, variables, ellipses, and biplots. The streaming backend
uses far less memory and keeps memory bounded across data sizes. For
PLS1, streaming is often fast enough while preserving a small memory
footprint; for PLS2 it remains competitive with a bounded footprint. On
small problems that fit comfortably in RAM (random-access memory),
dense in-memory solvers are slightly faster; the crossover occurs as n
or p grow and the Gram/cross-product cost dominates.
%prep
%setup -q -c -n %{packname}
# the next line is needed, because we build without --clean in between two packages
rm -rf ~/.R
%build
%install
mkdir -p %{buildroot}%{rlibdir}
%{_bindir}/R CMD INSTALL -l %{buildroot}%{rlibdir} %{packname}
test -d %{packname}/src && (cd %{packname}/src; rm -f *.o *.so)
rm -f %{buildroot}%{rlibdir}/R.css
%fdupes -s %{buildroot}%{rlibdir}
#%%check
#%%{_bindir}/R CMD check %%{packname}
%files
%dir %{rlibdir}/%{packname}
%{rlibdir}/%{packname}/CITATION
%doc %{rlibdir}/%{packname}/DESCRIPTION
%{rlibdir}/%{packname}/INDEX
%{rlibdir}/%{packname}/Meta
%{rlibdir}/%{packname}/NAMESPACE
%doc %{rlibdir}/%{packname}/NEWS.md
%{rlibdir}/%{packname}/R
%{rlibdir}/%{packname}/_pkgdown.yml
%{rlibdir}/%{packname}/data
%{rlibdir}/%{packname}/doc
%doc %{rlibdir}/%{packname}/help
%doc %{rlibdir}/%{packname}/html
%{rlibdir}/%{packname}/libs
%{rlibdir}/%{packname}/scripts
%changelog