Performs a single GPA-consensus run from one starting target. The
multi-start wrapper .gpa_consensus_target() dispatches here.
.consensus_target_procrustes_single(
unrotated_list,
init_targets = NULL,
rotation = c("orthogonal", "oblique"),
start = 1,
tol = 0.001,
loss_tol = 1e-06,
loss_patience = 5,
convergence = c("either", "target", "loss", "both"),
min_iter = 2,
max_iter = 200,
alpha = 1,
match_target = TRUE,
hyper_cutoff = 0.15,
verbose = FALSE
)List of unrotated loading matrices to be aligned. All matrices must be numeric, finite, and have identical dimensions.
Optional list of starting target matrices. These are
typically rotated loading matrices from the corresponding analyses. If
NULL, unrotated_list is used.
Character string, either "orthogonal" or "oblique".
Either a single integer selecting an element of init_targets,
or an explicit target matrix. Used when multi_start = FALSE.
Positive relative Frobenius-norm convergence tolerance for the outer target update.
Positive tolerance for the relative change in the outer
consensus loss. If NULL, loss-based convergence is disabled. It cannot be
NULL when convergence is "loss" or "both".
Positive integer. Number of consecutive iterations with
relative loss change below loss_tol required for loss-based convergence.
Character string controlling the stopping rule. "either"
stops when either target or loss convergence is satisfied; "target" uses
only target change; "loss" uses only loss change; "both" requires both.
Non-negative integer. Minimum number of outer iterations before convergence can be declared.
Positive integer. Maximum number of outer consensus iterations.
Damping factor for the target update. alpha = 1 uses the full
centroid update. Smaller values, such as 0.5, can reduce oscillation.
Logical. If TRUE, the updated centroid is signed and
column-matched to the previous target before convergence is evaluated.
Non-negative cutoff used by .hyperplane_count() for
summary output.
Logical; if TRUE, print convergence messages for the outer
loop.