- Moved PDF report generation (
report.fmri_lm) to the standalonefmrireportpackage. Usefmrireport::report()for report rendering.
- Fixed low-rank/sketch residual degrees of freedom to use original timepoints (
T - p) instead of sketch rows. - Replaced placeholder
fit_contrasts.fmri_lm()outputs with computed standard errors, test statistics, and p-values. - Consolidated duplicate meta-analysis pathways to shared implementations and removed inconsistent behavior across runwise/chunkwise pooling.
- Fixed F-contrast meta pooling to combine evidence via p-values rather than averaging F statistics.
- Fixed thread-safety issue in C++ meta kernels by deferring Paule-Mandel non-convergence warnings until after OpenMP regions.
- Added bounds validation and safer inverse fallback in sketch kernels to prevent unsafe indexing and hard failures on ill-conditioned data.
- Improved AR pipeline consistency for whitened covariance/fitted/residual handling and unified AR effective-df calculations.
- Added regression coverage for
fit_contrasts.fmri_lm()to prevent placeholder-stat regressions.
- Fixed
glm_lss()tests that incorrectly expected specific Cholesky decomposition errors. - Fixed convolution test with non-strictly-increasing onsets within blocks.
- Fixed testthat API usage (
expect_lt/expect_gtno longer use deprecatedinfoargument). - Fixed
latent_datasetAPI usage: now usesget_latent_scores()instead of deprecatedget_data(). - Changed
glm_lss()use_cppparameter default fromTRUEtoFALSE(C++ implementation retired; fmrilss package now used). - Added
fmrireg.suppress_deprecationoption check to all deprecated functions for cleaner test output. - Added
tests/testthat/setup.Rto suppress expected deprecation warnings during testing. - Suppressed expected kmeans convergence warnings in landmark SRHT tests.
- Test warnings reduced from 129 to 31 (remaining warnings are from external packages).
- Design Matrix Column Naming: The naming scheme for columns in design matrices generated by
event_model()has been completely revised for consistency and clarity.- All column names now strictly follow the format:
term_tag+_+condition_tag+ [_b##basis suffix]. term_tag: Automatically generated from variable names (e.g.,var1_var2) or user-providedid=inhrf(), sanitized (dots become underscores), and made unique with#suffix if needed (e.g.,cond,cond#1).condition_tag: Represents factor levels (e.g.,Factor.Level), continuous basis columns (e.g.,poly_RT_01,z_RT), or interactions joined by_(e.g.,Factor.Level_poly_RT_01)._b##: Optional suffix added only when the HRF has multiple basis functions (e.g.,_b01,_b02).- The previous
styleargument ("compact","qualified","uid") indesign_matrix()is removed. Only the single canonical format is produced. - Scripts or analyses that relied on matching previous column name formats (e.g., using
Var[Level],Var:Level,:basis[]) will need to be updated to use the newterm_tag_Condition.Tag_b##format.
- All column names now strictly follow the format:
- Regressor System Refactoring:
- Introduced a new internal S3 class
Regfor representing regressors. - The main
regressor()function now usesReginternally but maintains backward compatibility (returns classc("regressor", "Reg", "list")). - Deprecated
single_trial_regressor()andnull_regressor()in favour of usingregressor()directly. - Unified regressor evaluation under the
evaluate.RegS3 method, supporting different calculation methods ("fft", "conv", "loop", "Rconv"). - Evaluation methods now consistently use the refactored
evaluate.HRFfor HRF sampling. - Refactored C++ evaluation code into a single wrapper (
evaluate_regressor_cpp). - Removed redundant internal helper functions (
fastevalreg,fastevalreg2,conform_len,dots). - Implemented
autoplot.Reg(ggplot2) andprint.Reg(cli) methods, deprecating olderplot.regressorandprint.regressor. - Improved input validation and recycling for
regressor()arguments usingvctrs. - Added optional sparse matrix output to
evaluate.Reg. - Added memoization for HRF sampling within evaluation.
- Introduced a new internal S3 class
- Initial CRAN release.