Protected main currently recovers unstandardised TIPREDEFFECT B, asymTIPREDEFFECT -B / a, the finite-interval increment A^{-1}[e^{A \Delta t} - I] B, and TIPREDEFFECTstd. It does not recover the 2017-era active asymptotes=TRUE rewrite.
cran/ctsem 2.5.0 summary.ctsemFit.R forms if(asymptotes==TRUE) TIPREDEFFECT <- -DRIFT %*% TIPREDEFFECT immediately after mxobj$TIPREDEFFECT$values and puts that rewrite in the active outlist. Driver, Oud, and Voelkle (2017, Table 2, p. 12; Eq. 1, p. 4; Eq. 3, p. 5; p. 16; JSS PDF re-opened 2026-08-31T15:26Z from https://www.jstatsoft.org/index.php/jss/article/download/v077i05/1104) name B TIPREDEFFECT. The scalar map is −a · B. Form a first, then negate, then multiply by B. When asymptotes=TRUE the stored TIPREDEFFECT is the asymptotic parameterization Table 2 / §7.2 names asymTIPREDEFFECT -B / a; multiplying by -DRIFT converts that stored value back to original B. −a · (-B / a) = B.
This is the independent companion of still-unmerged PR #349 (CINT <- -DRIFT %*% CINT as −a · κ). Branch from origin/main. Do not wait for #349. Do not stack on draft PR #352 (wrong public name recover_asymptotes_true_time_independent_predictor_effect, reserved items 106–107 that collide with CINT #349, refused CINT instead of TIPREDEFFECTstd). Register items 108–109. GitHub #348 is now an unrelated open PR (discreteTRAITVAR Eq. 5) and is not this tracking issue.
Numeric analog: a = -0.5, B = 0.4 recovers 0.2; stored -B / a = 0.8 recovers original B = 0.4. Distinct from unstandardised B (0.4), from asymTIPREDEFFECT -B / a (0.8), from the finite-interval increment at Δt = 1 (≈ 0.3148), and from TIPREDEFFECTstd B · √v / √p (≈ 0.6325 when v = 1, p = 0.4). A zero coefficient is exactly zero even if a ≥ 0. a ≥ 0 with a nonzero coefficient fails closed. A non-event clock fails closed.
Still not a Kalman filter, not a matrix expm, not ESEM estimation, not DSEM, and not ctsem estimation.
Protected main currently recovers unstandardised
TIPREDEFFECTB,asymTIPREDEFFECT-B / a, the finite-interval incrementA^{-1}[e^{A \Delta t} - I] B, andTIPREDEFFECTstd. It does not recover the 2017-era activeasymptotes=TRUErewrite.cran/ctsem 2.5.0
summary.ctsemFit.Rformsif(asymptotes==TRUE) TIPREDEFFECT <- -DRIFT %*% TIPREDEFFECTimmediately aftermxobj$TIPREDEFFECT$valuesand puts that rewrite in the activeoutlist. Driver, Oud, and Voelkle (2017, Table 2, p. 12; Eq. 1, p. 4; Eq. 3, p. 5; p. 16; JSS PDF re-opened 2026-08-31T15:26Z from https://www.jstatsoft.org/index.php/jss/article/download/v077i05/1104) nameBTIPREDEFFECT. The scalar map is−a · B. Formafirst, then negate, then multiply byB. Whenasymptotes=TRUEthe storedTIPREDEFFECTis the asymptotic parameterization Table 2 / §7.2 namesasymTIPREDEFFECT-B / a; multiplying by-DRIFTconverts that stored value back to originalB.−a · (-B / a) = B.This is the independent companion of still-unmerged PR #349 (
CINT <- -DRIFT %*% CINTas−a · κ). Branch fromorigin/main. Do not wait for #349. Do not stack on draft PR #352 (wrong public namerecover_asymptotes_true_time_independent_predictor_effect, reserved items 106–107 that collide with CINT #349, refused CINT instead ofTIPREDEFFECTstd). Register items 108–109. GitHub #348 is now an unrelated open PR (discreteTRAITVAREq. 5) and is not this tracking issue.Numeric analog:
a = -0.5,B = 0.4recovers0.2; stored-B / a = 0.8recovers originalB = 0.4. Distinct from unstandardisedB(0.4), fromasymTIPREDEFFECT-B / a(0.8), from the finite-interval increment atΔt = 1(≈ 0.3148), and fromTIPREDEFFECTstdB · √v / √p(≈ 0.6325 whenv = 1,p = 0.4). A zero coefficient is exactly zero even ifa ≥ 0.a ≥ 0with a nonzero coefficient fails closed. A non-event clock fails closed.Still not a Kalman filter, not a matrix
expm, not ESEM estimation, not DSEM, and not ctsem estimation.