Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
171 commits
Select commit Hold shift + click to select a range
d9d1849
Add tfd_mv/tfb_mv classes for vector-valued functions f: R -> R^d
claude May 27, 2026
7f96144
Support rebase, registration and calculus verbs for tf_mv
claude May 27, 2026
885b3ee
Simplify tf_arg.tf_mv by dispatching on component class
claude May 28, 2026
3ce6235
Handle differing component domains and collapse shared per-curve args
claude May 28, 2026
6a491d3
Document irregularity cases and domain-union handling in design doc
claude May 28, 2026
7a5b85e
Add TODO list for tf_mv future work
claude May 28, 2026
816a2d6
TODO: disperse R/mv-methods.R into topical files
claude May 28, 2026
903213a
Fix tfb_mv(list()) class + add edge-case tests (mv coverage 64%->83%)
claude May 28, 2026
1e4d17f
print.tf_mv: show per-component value ranges in the header
claude May 28, 2026
70f6c23
as.data.frame.tf_mv: full-outer-join on (id, arg) for mixed-arg compo…
claude May 28, 2026
63a41d2
tfb_mv: allow per-component basis specs via component-named list args
claude May 28, 2026
7cf8a79
Add tf_arclength() for vector-valued curves
claude May 28, 2026
ebe6caa
Refresh tf_mv-family Rd cross-refs + tfb_mv details block
claude May 28, 2026
9d035ac
tier-1 mv-geom primitives + polyline arc length + tier 2/3 in design doc
claude May 28, 2026
fa73b75
Add test-mv-tidyverse.R covering tibble + dplyr/tidyr integration
claude May 28, 2026
b1e886e
Fix R CMD check WARNING on tf_mv-methods Rd
claude May 28, 2026
358b87a
Fix pkgdown build: rename topic, add @name aliases, add missing entries
claude May 28, 2026
61f8969
Declare graphics::par/lines and grDevices::n2mfrow imports for R CMD …
claude May 28, 2026
05e0973
Add tibble/tidyr to Suggests and drop tf:: self-qualification
claude May 28, 2026
e83c00c
Harden tf_mv: correctness fixes, [<-/names<-, plotting, print info
fabian-s May 29, 2026
49d215b
Harden tf_mv edge cases
fabian-s May 29, 2026
157bb0e
Move multivariate design artifacts to attic
fabian-s May 29, 2026
cb19e1e
Split tf_mv methods by topic
fabian-s May 29, 2026
8a59f6a
Generalize tf_mv geometry to univariate tf; harden input validation
fabian-s May 29, 2026
5e6a4aa
Regenerate docs (roxygen2 8.0.0) and align test message match
fabian-s May 29, 2026
4c5db23
Add vector-valued-functions vignette + supporting fixes
claude May 31, 2026
e98c406
Fix pkgdown navbar: prefix article slug with articles/
claude May 31, 2026
03f7266
Rewrite vector-valued-functions article as case studies + fixes
claude May 31, 2026
9c9ddc3
Gait section: registration first, FPC after; native plot.tf throughout
claude May 31, 2026
2d0efe7
Rewrite storms section as a 4-d (long, lat, wind, pres) case study
claude May 31, 2026
473559d
[.tf_mv: allow multi-component selection via component=
claude May 31, 2026
9852b3c
vignette: collapse chained subset into single bracket call
claude May 31, 2026
eab01ab
Reorg: move the vignette to attic, rename R/mv-*.R -> R/*-mv.R
claude May 31, 2026
2897b37
Make the tf <-> tf_mv inheritance contract explicit + stabilise mv co…
claude May 31, 2026
029d22b
pkgdown: index the new converters-mv topic
claude May 31, 2026
749d28f
Harden tf_mv geometry edge cases + bracket/coercion fixes
fabian-s Jun 9, 2026
bf56c79
Add true multivariate SRVF registration + elastic shape registration
fabian-s Jun 9, 2026
cb0a9a0
pkgdown: index the new tf_register_shape topic
claude Jun 9, 2026
6e96400
Bump to 0.4.2; vignette accessor updates and code-folding
fabian-s Jun 9, 2026
a49b3bc
vignette: add conceptual tour + three-way alignment ladder
fabian-s Jun 9, 2026
ae7d3c2
Merge remote-tracking branch 'origin/claude/jolly-planck-nvXkZ' into …
fabian-s Jun 9, 2026
210267b
Fix tf_register_shape aligned curves not collapsing under scale quotient
fabian-s Jun 9, 2026
bbb909e
vignette: rework registration as a 4-rung ladder + quotient-space demo
fabian-s Jun 9, 2026
5fca62c
Add multivariate FPCA (tfb_mfpc) for tf_mv objects
fabian-s Jun 9, 2026
40bc6cf
vignette: add joint MFPCA section to the gait case study
fabian-s Jun 9, 2026
3c8320a
vignette: add literature references (bib + inline citations)
fabian-s Jun 9, 2026
33aeab5
vignette: use math notation for the function signatures in the intro
fabian-s Jun 9, 2026
8d10818
Potential fix for pull request finding
fabian-s Jun 9, 2026
5826c05
Test distribute_dots() permutation predicate
claude Jun 9, 2026
f24c546
Simplify tf_mv geometry + registration print (no behavior change)
claude Jun 10, 2026
9576eb3
Fix #234: tf_arg<-.tfd_irreg corrupted irregular data
claude Jun 10, 2026
34d920f
Fix #235: tfd.list regularity check was inverted
claude Jun 10, 2026
e0aa241
Error on non-NA broadcast in [<-.tf_mv (#244)
claude Jun 10, 2026
2c2b674
fix(summarize): return sd/var visibly for tfb (#250)
claude Jun 10, 2026
1174ab0
Error on var(x, y) for tf and tf_mv (#245)
claude Jun 10, 2026
b17eaa4
fix(summarize): escape .Generic in cli_abort for all()/any() (#247)
claude Jun 10, 2026
ce71060
Validate i in [.tf_mv and dedupe the basis 'interpolate' inform (#252)
claude Jun 10, 2026
3589498
fix(graphics): correct ol= typo in plot.tf points args (#248)
claude Jun 10, 2026
6521a27
fix(tf_split): handle splits at domain boundaries / single split (#251)
claude Jun 10, 2026
e5ac56d
Fix #240: tfb_spline/tfb_fpc default methods return length-0 prototypes
claude Jun 10, 2026
37a00f2
Fix #239: tf_rebase interpolates onto target spline grid
claude Jun 10, 2026
8a7b617
Fix SRVF warp rescaling when domain is wider than range(arg) (#242)
claude Jun 10, 2026
96e4d79
Fix #238: tf_rebase.tfb.tfd no longer double-splices dots
claude Jun 10, 2026
e2cb5e8
Validate default landmark template + guard approx() for monotonicity …
claude Jun 10, 2026
1030831
Fix #241: all-NA input no longer collapses to length 0
claude Jun 10, 2026
3e00b4b
Compute multivariate amplitude variance reduction; add shape-registra…
claude Jun 10, 2026
1462306
Fix #236: tf_evaluate misplaced values for duplicated args
claude Jun 10, 2026
16f6a16
Fix #237: antiderivative of irregular tfd no longer crashes
claude Jun 10, 2026
553d660
Fix #246: Math.tfd / Math.tfb thread `...` to the generic
claude Jun 10, 2026
3a9c7e0
Fix #253: tf_integrate no longer silently returns NA for irregular tfd
claude Jun 10, 2026
36a5cd1
Tighten tf_integrate @details + NEWS for fixes #236, #237, #246, #253
claude Jun 10, 2026
2e4f9a1
Tighten broadcast gate and add edge-case tests for [<-.tf_mv (#244)
claude Jun 10, 2026
9303de9
Reference follow-up issue for shared bracket helpers (#252)
claude Jun 10, 2026
2a33914
Strengthen #248 test to actually catch the ol/col typo
claude Jun 10, 2026
c19626f
Revert NSE evaluator coercion in tf_rebase (followup to #238, see #261)
claude Jun 10, 2026
9e14912
Tighten tfb-tfb cast test to actually exercise lossy rebase (#239)
claude Jun 10, 2026
4c4c0eb
Prune dead entries from R/globals.R
claude Jun 10, 2026
552b778
Unshield tf_smooth savgol/rollmean/rollmedian + add smoke tests
claude Jun 10, 2026
3eb2c84
Switch tf_combine duplicate notice to cli_warn
claude Jun 10, 2026
37b2b8c
Rename R/geom-mv.R to R/geometry-mv.R
claude Jun 10, 2026
50a6513
Consolidate NA-restoration helpers in tfb operations
claude Jun 10, 2026
eaea993
Make ensure_list/unique_id/prep_plotting_arg internal
claude Jun 10, 2026
62a9199
Extract tf_na_like() helper for NA-typed tf singletons
claude Jun 10, 2026
3d05e61
Re-implement soft-impute SVD + drop GPL-2 vendored code
claude Jun 10, 2026
6c049a5
Collapse cum* tfd/tfb stubs through a single dispatcher
claude Jun 10, 2026
6ee1121
Convert tf_where / tf_anywhere / tf_fwise / tf_fmean / tf_crosscov / …
claude Jun 10, 2026
f2727e4
Add fail-fast .tf_mv stubs for un-implemented univariate generics
claude Jun 10, 2026
66fc61a
Rewrite tf_mv inheritance-contract docs
claude Jun 10, 2026
c606812
Factor tf_fmax/tf_fmin/tf_fmedian through make_tf_freduce()
claude Jun 10, 2026
5dc3b6f
Add metaprogrammed walker test for tf_mv fail-fast contract
claude Jun 10, 2026
3330ac8
Add once-per-session warning to xtfrm.tf
claude Jun 10, 2026
c2ebbd2
Factor tfd/tfb arithmetic helpers
claude Jun 10, 2026
0c2fac1
Defend tfb_mfpc joint-fit invariants from silent destruction
claude Jun 10, 2026
6397570
Add validate_tf() invariant checker and expect_valid_tf() helper
claude Jun 10, 2026
458a6fd
Potential fix for pull request finding
fabian-s Jun 10, 2026
2ea7ce6
Potential fix for pull request finding
fabian-s Jun 10, 2026
4ff8f7e
Potential fix for pull request finding
fabian-s Jun 10, 2026
578a0a6
Extract trapezoid_weights() helper
claude Jun 10, 2026
82ff23a
Replace eval() copy with plain assignment for ==.tfb / !=.tfb
claude Jun 10, 2026
baeb812
Restore exports for ensure_list and unique_id
claude Jun 10, 2026
da33efb
Tighten validate_tf coverage (#256 followup)
claude Jun 10, 2026
5d4c1e1
Add direct ==.tfb regression test (PR C target 7)
claude Jun 10, 2026
5099476
Tag tf_combine duplicate warning with a class
claude Jun 10, 2026
2855e1c
Address review nits: bibentries indent, soft-impute message, regen tf…
claude Jun 10, 2026
f5dee55
Fix broken doc cross-ref and tighten walker test (#255 followup)
claude Jun 10, 2026
363bc7e
Rebuild demoted tfb_mfpc components as full-rank tfb_fpc
claude Jun 10, 2026
e2c3489
Tag MFPC demotion warning with class 'tf_mfpc_demotion'
claude Jun 10, 2026
fedcaaa
Test chained Math/Ops on demoted tfb_mfpc and warning class
claude Jun 10, 2026
8a9392c
Merge pull request #267 from tidyfun/claude/fix-constructor-invariants
fabian-s Jun 11, 2026
7889ca7
Merge pull request #268 from tidyfun/claude/fix-evaluate-calculus
fabian-s Jun 11, 2026
7514a91
Merge pull request #272 from tidyfun/claude/fix-tiny-bugs
fabian-s Jun 11, 2026
026dce5
Restore tryCatch + suppress warnings in mean_pointwise_variance (#271)
claude Jun 11, 2026
c3dffe2
Respect per-component interpolate and use vctrs sizing in `[<-.tf_mv`…
claude Jun 11, 2026
a879c6e
Restrict shape rotation-angle formula to d in {2, 3} (#271)
claude Jun 11, 2026
9da68f1
Project tfd onto target basis directly in tf_rebase.tfd.tfb_spline (#…
claude Jun 11, 2026
e289cbd
Honour `arg` in vec_cast_tfb_tfb short-circuit (#269)
claude Jun 11, 2026
93e6a7d
Merge pull request #270 from tidyfun/claude/fix-mv-seams
fabian-s Jun 11, 2026
bb8adc9
Merge pull request #271 from tidyfun/claude/fix-registration
fabian-s Jun 11, 2026
b0381a9
Simplify rebase rework: use spec_override + attribute swap (#269)
claude Jun 11, 2026
4120dc2
Merge pull request #269 from tidyfun/claude/fix-tfb-rebase
fabian-s Jun 11, 2026
4717bf4
Fix simpute_svd edge cases from #275 review: clamp J, guard maxit < 1
claude Jun 11, 2026
2ec7fc3
Pin actual NA semantics of ==.tfb test, drop tf::: in test-mfpc (#282)
claude Jun 11, 2026
d646cbf
Address copilot review on #277: validate length-0 tfb prototypes, che…
claude Jun 11, 2026
7b5678b
Address review on #276: robust NAMESPACE lookup, strict walker, doc fix
claude Jun 11, 2026
9e9e26a
Demote tfb_mfpc and rebuild assigned value in tf_component<- (#278)
claude Jun 11, 2026
696f82f
Warn once when both arithmetic operands are tfb_mfpc (#278)
claude Jun 11, 2026
a4089c6
Merge pull request #275 from tidyfun/claude/license-reimplement
fabian-s Jun 11, 2026
2ef2b9d
Document vector-valued functional data in NEWS and README
claude Jun 10, 2026
0bc2bd3
Require fdasrvf (>= 2.4.0) for multivariate SRVF registration
claude Jun 10, 2026
ded3e7c
Fix NEWS wording: tf_mv_* glob doesn't exist
claude Jun 10, 2026
d7524f2
Drop mvtnorm/pracma from README dependency list (#283 dropped them)
fabian-s Jun 11, 2026
506767f
Merge branch 'claude/jolly-planck-nvXkZ' into claude/validate-tf
fabian-s Jun 11, 2026
8bff056
Merge pull request #277 from tidyfun/claude/validate-tf
fabian-s Jun 11, 2026
efa6156
Merge pull request #276 from tidyfun/claude/mv-fail-fast-stubs
fabian-s Jun 11, 2026
c57b4cc
Merge pull request #279 from tidyfun/claude/docs-fdasrvf
fabian-s Jun 11, 2026
a3bbde4
Allow NA-domain prototypes through validate_tf() universal check
fabian-s Jun 11, 2026
4611dcf
Potential fix for pull request finding
fabian-s Jun 11, 2026
68f057c
Merge pull request #284 from tidyfun/claude/fix-validate-empty-domain
fabian-s Jun 11, 2026
150646c
Merge pull request #278 from tidyfun/claude/mfpc-invariants
fabian-s Jun 11, 2026
eddb7c3
Drop unresolvable \link{} targets in tf_mv_unimplemented docs
fabian-s Jun 11, 2026
7403e72
Potential fix for pull request finding
fabian-s Jun 11, 2026
5f610d6
Potential fix for pull request finding
fabian-s Jun 11, 2026
e016571
Merge pull request #285 from tidyfun/claude/fix-mv-unimplemented-links
fabian-s Jun 11, 2026
325a8e3
Merge pull request #281 from tidyfun/claude/hygiene-b-cleanup
fabian-s Jun 11, 2026
39a7892
Drop prep_plotting_arg from _pkgdown.yml reference index
fabian-s Jun 11, 2026
2b13aee
Merge pull request #282 from tidyfun/claude/hygiene-c-dedup
fabian-s Jun 11, 2026
51049eb
Merge pull request #286 from tidyfun/claude/fix-pkgdown-orphan
fabian-s Jun 11, 2026
4b84245
Fix landmarks.Rd internal-flag mismatch
claude Jun 10, 2026
f4c5a82
Pin @name vctrs to fix pkgdown URL for vctrs.Rd
claude Jun 10, 2026
2053933
Fix data.R doc errors and note tfd columns
claude Jun 10, 2026
9bc464f
Fix placeholder @param docs for coef.tfb
claude Jun 10, 2026
e93909b
Fix tfviz.Rd grammar and y-arg description
claude Jun 10, 2026
1573913
Add minimal @examples to plot.tf_mv, fpc_wsvd, converters-mv
claude Jun 10, 2026
27a7cc3
Preserve names in coef.tfb
claude Jun 10, 2026
91da54a
Fix Matérn accent in tf_rgp docs
claude Jun 10, 2026
772069b
Use FALSE instead of F in tf_combine example
claude Jun 10, 2026
d386a46
Fix evaluator regression from coef.tfb name preservation
claude Jun 10, 2026
6f35e28
Replace empty strings after coercion in unique_id() (#280)
claude Jun 11, 2026
e2db9b9
Drop mvtnorm dependency, sample GP draws via base R chol()
claude Jun 10, 2026
6324320
Drop pracma dependency, inline savgol() filter
claude Jun 10, 2026
a007def
Sample GP draws via eigen-decomposition, not Cholesky
claude Jun 10, 2026
9f7b8a8
Drop stray RoxygenNote, add NEWS entry for RNG change
claude Jun 10, 2026
e181736
Tighten savgol() input validation, qualify stats::convolve()
claude Jun 11, 2026
65b6847
Use trapezoid_weights() in new_tfb_fpc_demoted (urgent, CI red)
fabian-s Jun 11, 2026
b95b789
Merge pull request #287 from tidyfun/claude/fix-mfpc-quad-weights
fabian-s Jun 11, 2026
db552dc
Merge pull request #280 from tidyfun/claude/hygiene-a-docs
fabian-s Jun 11, 2026
5a442a5
Merge pull request #283 from tidyfun/claude/hygiene-d-deps
fabian-s Jun 11, 2026
a7fe5f7
Export fpc_wsvd generic (urgent, CI red)
fabian-s Jun 11, 2026
0f7d704
Merge pull request #288 from tidyfun/claude/fix-fpc-wsvd-export
fabian-s Jun 11, 2026
0114bb3
Component-wise tf_mv methods for more verbs + mv internals hygiene
fabian-s Jun 12, 2026
75121b7
Implement tf_where() / tf_anywhere() for tf_mv
fabian-s Jun 12, 2026
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
2 changes: 2 additions & 0 deletions .Rbuildignore
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,7 @@
^\.dockerignore$
^\.editorconfig$
^\.gitattributes$
^\.git$
^\.github$
^\.gitignore$
^\.httr-oauth$
Expand All @@ -39,3 +40,4 @@
^revdep$
CLAUDE.md
AGENTS.md
^pr-233-code-review\.md$
36 changes: 22 additions & 14 deletions DESCRIPTION
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
Package: tf
Title: S3 Classes and Methods for Tidy Functional Data
Version: 0.4.1
Version: 0.4.2
Authors@R: c(
person("Fabian", "Scheipl", , "fabian.scheipl@googlemail.com", role = c("aut", "cre", "cph"),
comment = c(ORCID = "0000-0001-8172-3603")),
Expand All @@ -10,13 +10,7 @@ Authors@R: c(
person("Julia", "Wrobel", role = "ctb",
comment = c(ORCID = "0000-0001-6783-1421")),
person("Sebastian", "Fischer", role = "ctb",
comment = c(ORCID = "0000-0002-9609-3197")),
person("Trevor", "Hastie", role = "ctb",
comment = "softImpute author"),
person("Rahul", "Mazumder", role = "ctb",
comment = "softImpute author"),
person("Chen", "Meng", role = "ctb",
comment = "mogsa author")
comment = c(ORCID = "0000-0002-9609-3197"))
)
Description: Provides S3 vector types for functional data represented on
grids, in spline bases, or via functional principal components.
Expand All @@ -37,8 +31,6 @@ Imports:
cli,
methods,
mgcv,
mvtnorm,
pracma,
purrr (>= 1.0.0),
rlang,
stats,
Expand All @@ -48,39 +40,55 @@ Suggests:
covr,
dplyr,
fda,
fdasrvf,
fdasrvf (>= 2.4.0),
pillar,
refund,
testthat (>= 3.0.0),
tibble,
tidyr,
withr
Config/testthat/edition: 3
Encoding: UTF-8
LazyData: true
Roxygen: list(markdown = TRUE)
RoxygenNote: 7.3.3
Collate:
'tfb-class.R'
'tfd-class.R'
'tfd-mv.R'
'tfb-mv.R'
'vctrs-mv.R'
'accessors-mv.R'
'approx.R'
'assertions.R'
'bibentries.R'
'brackets-mv.R'
'brackets.R'
'calculus-mv.R'
'calculus.R'
'convert-construct-utils.R'
'convert-mv.R'
'convert.R'
'data.R'
'depth.R'
'evaluate.R'
'fda-connectors.R'
'fwise.R'
'geometry-mv.R'
'globals.R'
'graphics.R'
'interpolate.R'
'landmarks.R'
'ops.R'
'math.R'
'methods.R'
'mv-stubs.R'
'ops-mv.R'
'plot-mv.R'
'print-format-mv.R'
'print-format.R'
'rebase.R'
'register-cc.R'
'register-mv.R'
'register-utils.R'
'register.R'
'registration-class.R'
Expand All @@ -92,14 +100,14 @@ Collate:
'tf-package.R'
'tfb-fpc.R'
'tfb-spline.R'
'tfb-class.R'
'tfd-class.R'
'tf-s4.R'
'tfb-fpc-utils.R'
'tfb-mfpc.R'
'tfb-spline-utils.R'
'utils.R'
'vctrs-cast.R'
'vctrs-ptype2.R'
'where.R'
'zoom.R'
'zzz.R'
Config/roxygen2/version: 8.0.0
Loading
Loading