The hardware and bandwidth for this mirror is donated by dogado GmbH, the Webhosting and Full Service-Cloud Provider. Check out our Wordpress Tutorial.
If you wish to report a bug, or if you are interested in having us mirror your free-software or open-source project, please feel free to contact us at mirror[@]dogado.de.
Source version: 0.5.0. For versioned archives, manuals and publication status, see the repository manifest and GitHub releases. These repository records are excluded from the package archive; this source version does not assert that a corresponding release has been published.
This version adds bounded study-planning tools. Historical release assets and the numerical acceptance rules are unchanged.
gt_batch_reliability() and
gt_batch_dstudy() project item-score, named contrast and
aggregate error under a fitted equal fixed Gaussian batching layout.
Targets are conditional on that layout; no new-batch-size effect or
universal batch-adjusted G is inferred.gt_plan() enumerates supplied allocation grids and
ranks them using dated, user-supplied cost assumptions, constraints and
point or available lower-bound targets. It retains infeasible
candidates, Pareto options and baseline marginal benefits without
changing the declared score universe.gt_simulate() generates balanced Gaussian studies and
gt_pilot_plan() refits prospective pilot designs, retaining
all attempts, numerical refusals, interval availability and Monte Carlo
uncertainty. These are model-based design simulations, not calibrated
bootstrap intervals or coverage guarantees.layout$item keys to name
contrast and aggregate weights. This corrects a false refusal after an
otherwise valid fit; covariance estimation and projection arithmetic are
unchanged.0.4.0 was tagged and its bundle staged, but it was not published or submitted: its release check on R built without long double refused a fit on one machine and the test could not say so. 0.4.1 is 0.4.0 with that test corrected and no other change to the package.
tests/package-characterization.R required every
discrete case to be numerically accepted. On some machines the discrete
optimizer reports completion without reaching a stationary point (#59),
the engine refuses the fit through its stationarity and
restart-stability safeguards, and the test then stopped at the
coefficients it could not compute. The ordinal case, the one case
observed to be refused this way, is now reported as that platform’s
outcome when it is refused by those two safeguards and by nothing else:
its estimates are not compared there, but it must still carry every
other recorded field, the same model terms and the same variance names.
Any other case refused this way, a refusal for any other reason, or
accepted numbers that moved still fail. The acceptance and completion
flags are recorded as the engine set them, and a fit without a single
TRUE or FALSE flag stops the test. The comparison and the recording are
exercised with constructed records and fits before any fit is compared.
The engine is unchanged.Changes since 0.2.0. The development line was versioned
0.3.0.9000 and then 0.4.0.9000; no 0.3.0 was
released. For a design without a batch declaration, every estimate,
coefficient and acceptance decision in
tests/package-characterization.R reproduces its values: the
fitting arithmetic is untouched, and the changes add refusals, evidence
and reporting. The one new model is the shared call effect a Gaussian
fit estimates for a design that declares equal fixed batches, described
first below.
tests/package-discrete-safety.R, where one ordinal fit on a
boundary panel was required to be numerically accepted. On that build
the optimizer reports completion without leaving its starting values,
and the fit is refused by the stationarity check. Refusing it is the
correct outcome; requiring acceptance was the test’s error.gt_batch() declares that items were annotated several
to a call, and gt_design() carries the declaration to every
function that receives the design or a fit. With none declared, items
are independent given the declared sources and every result is what it
was. By default a declaration assumes items in one call affect each
other equally; sequential and neighbor, both
off by default, declare that an item may be affected by a stated number
of preceding items or of items on either side, at most one less than the
batch size. by names a facet, such as the evaluator, across
whose levels the dependence may differ.id, batches are cut from the item order and are the same in
every condition; that is a reconstruction, and it cannot detect items
removed after collection. With id naming a column that
identifies each row’s call, the calls are read from the data and may
differ between conditions and in size.gt_preflight() audits a declaration: the batches,
conditions and calls it implies or records, whether it describes the
data, and, for inferred batches whose rows are stored call by call,
whether that storage agrees with it. Implied calls count one for each
batch, condition and declared replicate. A call with fewer items present
than declared is reported, not treated as a mismatch. Recorded calls are
counted from the rows supplied: the audit says that a call sent short
and a call that lost rows afterwards look the same, that a call with no
row left is not counted, and that positions are ranks among the items
present, not necessarily the positions at which they were sent.Call with its standard error, by the exact balanced
likelihood, in which an item is a batch-by-slot cell. REML and ML fits
match lme4’s in criterion and variances, including a call variance of
zero. gt_preflight() says beforehand whether a fit will
model the batches, and why not when it will not; its source table,
parameter counts and strata describe the sources the fit will estimate,
the call among them. Whether the batches were modelled is recorded for
each fit, so a fitted design reused for another outcome family does not
carry the earlier fit’s answer.gt_reliability() and gt_dstudy()
refuse it. sequential, neighbor and
by are recorded and not yet estimated.not_declared, declared_not_modelled with the
reason, or modelled; coefficients and decision studies
print it, their data-frame exports and gt_dstudy_target()
carry batch_status, the plots state it where a caller’s own
subtitle cannot replace it, and gt_report() records it. The
exports gain that one column for every design.as.data.frame() methods. Allocation columns are prefixed,
and D-study metadata is joined by design identity. Scale, extrapolation
and uncertainty status travel with exported estimates, including
unavailable intervals.gt_dstudy_target() screens one outcome or composite
against an estimated G/Phi target within the supplied allocation grid.
It preserves all candidates and ties; it does not search for a global or
monetary optimum.sparse_newton_solve_invalid or
sparse_final_factor_invalid, exactly as the dense solver
refuses; there is no fallback, regularization or looser tolerance.
tests/test_discrete_sparse_validity.R injects a corrupted
step and a factor of a different matrix and checks the refusal, its
reason and its retained measurements, on the sparse mode solver and end
to end through the private evaluator seam. The frozen fixed-parameter,
conditional-mode and fitted sparse contracts reproduce unchanged with
the checks in place.reason=, backward_error=,
solve_validity_bound=, random_dimension= and
probe_index= fields are unchanged.fit$diagnostics$evaluations
records the count of evaluations, the count the optimizer could not use,
the count of valid conditional solves that ended at the inner iteration
budget, and, for at most eight invalid evaluations, the parameters asked
about and the measurements reported; the conditional-mode diagnostic
stage reports the three counts. The arithmetic is unchanged, because
details selects what a mode solver returns and never what
it computes.GTHEORY_DISCRETE_SPECIMEN_DIR to a directory writes a
specimen file for each refused start and each retained invalid
evaluation: the failed operation’s matrix, right-hand side, step and
factor where the failure produced them, the parameters, the measurements
and the identity of the numerical environment, as numeric objects that
can be reloaded and replayed. It holds no observations. Off by default;
a failed write is reported in the refusal message and never masks the
refusal. SECURITY.md says so.inner_iterations, whether the line search failed to improve
the penalised objective (inner_line_search_failed) and
whether the final factorization was unavailable. Previously a failed
evaluation carried no iteration count, so the retained scale-risk
profile could not attribute its invalid evaluations; see the replay
recorded in
validation-studies/discrete-sparse-profile/results.md. The
profile’s work pass now reports those stop causes.scripts/replay_specimen.R reads a specimen back and
answers three questions separately: whether the stored step still fails
the stored system, whether the stored factor still fails on this host,
and whether a fresh factorization here fails too. Its verdict describes
those observations without inferring a defective matrix, a responsible
host, or portability from one replay. Reproducing the recorded backward
error also requires agreement at numerical precision and the same
solve-validity decision. tests/test_specimen_replay.R
exercises it on dense and sparse specimens written through the real
refusal site.tests/test_interface.R: the FALSE-only rule it replaced
accepts a discrete fixture whose flag is NA, and the test
proves that its own assertion catches that.tight specimen
reported 1e-7 for an evaluation that ran at
1e-9. The fit and its acceptance were unaffected.fit$diagnostics$evaluations$validity_events counts every
one. These limits and counts cover the optimizer’s logged evaluations,
not final checks.fit$diagnostics$final_checks, and writes its failed
operation as a specimen when a directory is configured. Only a raised
error’s text was kept before, so a refusal returned without an error
blocked acceptance and left no account of why.fit$diagnostics$outer_stationarity$failure, and writes its
failed operation as a specimen when a directory is configured. Its
retained error named only “invalid conditional mode”; for a solve- or
factor-validity refusal it now also names the reason and its
measurements. A probe that merely did not converge keeps the established
message.do.call(), or with the data written inline,
gt_preflight() stored the whole data frame in
$call, unused columns included, whatever
max_examples was. A data argument that is not
a plain object name is now recorded as a marker, as a fit records it
when its data is dropped.0.2.0 archive, manual, manifest and tag
are retained unchanged.plot() on a decision study accepts col,
pch, ylim, xlab and
ylab through .... They were supplied
explicitly before the dots were forwarded, so passing any of them failed
with a duplicate-argument error; they are now defaults that a named
argument replaces (#39, plotting).logLik(), and through it AIC() and
BIC(), apply the same acceptance rule as
gt_reliability() and gt_dstudy(), from one
shared predicate: a Gaussian fit is refused on an explicit failure, and
a discrete fit must carry an affirmative acceptance. A discrete object
whose acceptance flag is missing or NA is refused rather
than read as accepted. Freshly fitted objects are unaffected; every
fitted discrete object carries the flag.engine (sparse_joint_discrete_laplace),
derived from the retained marginal_backend, so a fit never
describes itself as the dense engine when another implementation
produced it. Dense fits are unchanged, and reliability, decision studies
and preflight no longer key on the dense engine string. No public entry
point selects the sparse backend.cal_tail) was built with the
five-level tail-mass construction on a three-level scale, because the
level selector recognised the exact geometry name while the panel
builder recognised any name containing “tail”: its categories were
15/60/165, with 68.75% of the panel in the top category. One explicit
definition, EQ_TAIL_GEOMETRIES, now serves both, and the
freeze test asserts the category composition of every tail-mass panel
rather than only its digest. The original and corrected fixture
identities are recorded as a pre-calibration amendment in
CALIBRATION.md; the scored case C12 and every other fixture
are unchanged, and no tolerance had been derived from the defective
panel.validation-studies/discrete-sparse-profile/results.md.budget-experiment.R: a doubled inner
budget recovers 32 of the 48 unusable evaluations and all 40 marginal
solves cold, and a warm start from the previous evaluation’s mode
recovers 38 of 48 at the ordinary budget in a median of 9 iterations; 16
evaluations do not converge cold within 300 iterations and are not a
budget question. The roadmap and development status now state the 0.4.0
release gates and this line’s position against them.Cut from the 0.2.0 development line for the CRAN resubmission. Every
estimate, coefficient and acceptance decision in
tests/package-characterization.R reproduces the 0.1.0
values within the tolerances recorded there. The one change to fitting
itself is the refusal of a dense conditional solve that does not solve
its own system, recorded under engineering below. Everything else is new
reporting, corrections, engineering behind private seams, and the
release maintenance that followed 0.1.0.
gt_diagnostics() gains a stages element
summarising the numerical checks a fit passed through: optimizer
completion, conditional mode, independent stationarity, restart and
tolerance stability, numerical acceptance, and approximation assessment,
each with a status, a reason and its supporting measurements, so a
rejection names the stage responsible without the caller reading private
optimizer records. The status is passed,
failed, not_assessed for a check that did not
run or does not apply to the engine, or inconclusive for
one that ran without a clear verdict; absent evidence is never read as a
pass. The summary is derived from evidence the fit already retained,
including the tolerances that governed the retained solve: it never
refits and never changes an acceptance decision. Print methods are
registered for the stage summary and for a single stage.passed when a record says its solve was tightened but does
not retain the tolerance that governed it. That record now reports
inconclusive, because the retained evidence cannot
establish that the solve met what was asked of it. This changes
reporting only, and only for incomplete or older fit objects: a fit
produced by this version retains that tolerance. Fitting, numerical
acceptance, and reliability and D-study eligibility are unchanged.docs/, scripts/VALIDATION.md,
validation-studies/, artifacts/,
SECURITY.md, LICENSE) are now absolute
repository URLs. CRAN’s incoming check reported the relative
scripts/VALIDATION.md and LICENSE links of the
0.0.6 submission as invalid file URIs; a test now refuses any README or
NEWS link to a file that .Rbuildignore keeps out of the
archive.SECURITY.md named a control that does not exist. The
retention switch is
gt_control(retain = list(data = FALSE)).BIC() on a REML fit is documented, and its convention,
N response vectors with the covariance parameters only, is recorded as
reml_BIC_response_vectors_variance_parameters.
help("gt_fit") no longer says the generic criteria are
unavailable for REML: the fit’s own AIC and
BIC elements are NA, the generics are
not.load_functions.R sources
R/discrete_sparse_mode.R, matching the Collate field; a
test keeps the two lists equal.print(gt_diagnostics(fit)) states the standard-error
availability once.gt_component_vcov() adds
conditional_on_fixed naming every fixed component, and
conditional_on_zero now names only the zero ones. The
boundary flag, the point estimates and the interval arithmetic are
unchanged (#36).logLik(), and through it AIC() and
BIC(), refuse a fit that failed numerical acceptance, as
gt_reliability() already did; the objective stays in
minus2loglik for diagnosis. The generics previously
returned ordinary values while print(fit) called the
estimates diagnostic only.gt_control(retain = list(data = FALSE)) now removes
every copy of the observations. The retained Gaussian OpenMx model
carried the raw outcomes as summary metadata, so a fit saved after
dropping the data still held them, and the recorded call held the whole
data frame, unused columns included, when the fit came through
do.call() or with the data written inline. The observations
are stripped from the retained model, which nothing reads after fitting,
the call’s data argument is replaced by a marker, and a test hunts a
sentinel observation and a sentinel unused column through the serialized
fit for direct, programmatic and inline calls. SECURITY.md
says so.1e15 and 1e15 + 1, passed
gt_preflight() and were then refused by
gt_fit() as duplicate cells; they now fit (#39, facet
identity).1e12
moved accepted estimates in their fifth digit and 1e15 in
their second. A regression fits the same represented panel at the origin
and at an offset of 1e12 and requires identical variances
and deviance.summary() of an ordinal fit no longer lists the
outcome’s location under “Fixed location or contrast estimates”: it is
fixed at zero for identification and is now printed as such. Binary
intercepts and categorical contrasts are still printed as
estimates.gt_diagnostics(),
no longer carry the constructor’s specification-only note after the
engine’s data checks have run; the discrete path now records its
validation scope through the same step the Gaussian path uses.scripts/prepare_release.py --from-checked-candidate
refuses a candidate directory without a check report recording a
successful R-devel check of exactly those archive bytes, and records the
checking R version in the manifest’s provenance.dense_newton_solve_invalid,
dense_final_factor_invalid), reporting the backward error
and its bound when the refusal happens at the starting values. A native
Cholesky can return successfully and still hand back a factor of some
other matrix; issue #14 captured one such instance on a hosted runner,
and a returned factor is no longer treated as valid merely because no
error was raised.Matrix and
methods joined Imports for the private sparse
random-design, Hessian, factorization and conditional-mode files behind
a private evaluator seam. None of it is public API: no public entry
point selects the sparse path, and every fit still runs through the
dense engine. The compatibility matrix runs the sparse factorization
test on every platform.First 0.1 release. An earlier 0.1.0 candidate was prepared locally
but never tagged or published, so this release is cut from the hardened
sources instead and supersedes it; the notes below cover both. The
statistical models are unchanged from that candidate: every estimate,
coefficient and acceptance decision in
tests/package-characterization.R reproduces its values
within the tolerances recorded there.
p x (i:h) and for
p x (i:h) x r with a fixed facet, with every expected
coefficient written out from the published formulas rather than produced
by the code under test. Nested designs were previously exercised only at
the specification level: no nested model was fitted, and no nested
reliability or decision study was computed.help("gt_design"), help("gt_reliability")
and help("gt_dstudy") now define balanced coded
panel explicitly, with a worked contrast between globally unique
child labels and within-parent codes.R/gaussian_retry.R.
Every attempt now records a real optimizer status; previously a trial
run inside OpenMx’s own retry loop could be recorded with an unknown
status, and a change in OpenMx’s message wording could fail an otherwise
valid fit.fit$retry_attempts gains start_type
(replacing start) and optimizer_success, and
drops the transcript-specific native_attempt,
invocation, continuation_reason and
native_returned_fit columns. attempt,
optimizer, status, minus2loglik,
external_accepted, external_rejection_reason,
error and returned_fit are unchanged.
fit$retry_settings$native_invocations becomes
optimizer_runs.extra_tries + 1 runs, each unsuccessful run followed by
OpenMx’s own bounded uniform perturbation of the best model so far,
stopping at the first externally accepted run.logLik(), nobs() and
coef() methods for gt_fit, and a print method
for gt_diagnostics(), which now returns a classed
object.AIC() and BIC() reproduce the fit’s own
recorded conventions: an ML fit’s ml_AIC and
ml_BIC_response_vectors, a REML fit’s
reml_AIC_variance_parameters. A REML logLik
carries REML = TRUE; a discrete one is labelled as a
first-order Laplace approximation.gt_component_vcov() for the sampling covariance of
the estimated source covariances, which is what
gt_reliability() propagates into an interval.vcov() on a fit raises an error rather than returning
that matrix. In R, vcov(fit) is the covariance of
coef(fit), and generic tooling relies on the pairing; this
package does not estimate it, because Gaussian outcome means are
profiled out of the likelihood and the discrete engine computes no
observed information. The error names the reason and points at
gt_component_vcov().gt_control() gains retain, choosing which
optional components a fit keeps: data, model,
retry_log and session. Every default is
TRUE, so an existing call is unaffected. Dropping all four
reduced a 600-row Gaussian fit from 525 KB to 64 KB with every reported
result identical, including reliability, decision studies, diagnostics,
correlations and the component covariance.panel summary, so
reliability and decision studies remain available when the modelled data
was not kept. Where the data is kept it is still what the balanced-panel
rules are checked against, so a panel edited after fitting is still
caught.max_dense_bytes (default 512
MiB), checked before allocation. The other discrete limits bound counts;
this bounds the dense algebra those counts imply, which is what protects
a caller who raises them. The refusal names the estimate, the limit, the
observation count, the random dimension, the size of the random-design
matrix, and the alternatives. It does not bind for any model the
existing count limits already allow.artifacts/manifest.json declares
release_state, and the marked README and NEWS blocks
declare it too. Publication is now checked against git: a
published claim requires the version tag, and a
prepared claim fails once that tag exists. Nothing calls a
bundle published before it is.scripts/prepare_release.py, which derives every
version from DESCRIPTION, validates, builds the archive and manual,
writes the manifest, rewrites the release blocks, verifies the result,
and stops. It never tags, pushes, uploads or submits.scripts/check_public_contents.py no longer hard-codes
the version: the package name comes from DESCRIPTION and the bundle
version from the manifest, which is what lets a development checkout
retain the preceding bundle.docs/REPOSITORY_POLICY.md with the required
branch-protection state, docs/branch-protection.json as the
exact payload, and scripts/check_branch_protection.py to
verify it. The declared branch protection was applied to
main after the release was published.SECURITY.md and CODEOWNERS.R CMD Rd2pdf when R’s generated LaTeX is not the layout its
customized cover knows how to reflow, and reports which route it took
and whether the overfull-box gate could run. The manual gate now
requires both pdflatex and makeindex before
claiming it can run, and names the missing tool when it skips.scripts/dependency-locks/renv-bootstrap.json, verified by
SHA-256 before installation, and preferentially taken from a cache that
both locked workflows now keep. Pinning a version says which renv is
used; the digest and the cache are what make retrieving it checkable and
possible.plot() on a decision study now reports an invalid
coefficient instead of failing on a zero-length
condition.gt_preflight() and gt_fit() now share one
definition of the covariance and residual rules, so a request one
accepts is a request the other accepts. Previously preflight admitted a
Residual covariance override that fitting refused, and
fitting completed abbreviated residual names that preflight rejected.
Both now refuse both, with the same message.T in the discrete engine no
longer shadows the TRUE alias.docs/LIMITATIONS.md collects every limitation in one
place; the other documents link to it. docs/ROADMAP.md
records planned work. docs/DEVELOPMENT_STATUS.md now holds
only the current state.The capability this release ships, unchanged from the earlier candidate.
The version change does not add sparse fitting, unbalanced Gaussian estimation or reliability, cost-aware planning, bootstrap/jackknife, or discrete intervals. GitHub publication and package checks are separate from CRAN submission and acceptance.
variance covariance coordinates, which
auto now selects for every univariate or diagonal discrete
model, treated any negative coordinate as an error. A bounded optimizer
evaluates a few ulps outside a bound while projecting onto it, so a
coordinate of -3.4e-17 recorded an attempt error, set
computation_failed, and rejected the entire fit. Zero is
this parameterization’s natural domain boundary, so rounding noise is
now projected onto it; a coordinate meaningfully below zero still stops.
This rejected fits whose estimates were already correct, including the
ordinal fit in examples/standalone_usage.R.NA rather than a number whenever the joint Hessian happened
to stay invertible, matching what it already reported when the Hessian
did not. No symmetric interval follows from curvature at a boundary. The
full entry covariance matrix is unchanged in $uncertainty,
and coefficient intervals still use it.R CMD build write
build/vignette.rds and inst/doc/ products into
the archive, which no release gate expected. The public-content audit
rejected the build index as an unexpected build file and then as a
malformed example resource; the committed-artifact gate would have
reported every generated vignette product as content missing from git at
the next release. Both now account for them, and inst/doc/
products are derived from the vignettes declared in the source commit
rather than excused by prefix, so an unexpected file there still
fails.R CMD check
failed the whole package on
Packages suggested but not available, reporting a missing
documentation toolchain as a package defect. The gate now checks with
_R_CHECK_FORCE_SUGGESTS_=false in exactly that case, and
accepts the single extra --as-cran line about a missing
vignette index only when vignettes were genuinely skipped, so it can
never excuse a real one.fs needs libuv headers, and install.packages()
only warns when a build fails, so the step passed while the toolchain
was absent. The workflow installs libuv1-dev and the step
now asserts the result instead of reporting success either way.fixed = "temp" selects a reliability
estimand after fitting; it does not alter the fitted variance model. A
within-temperature analysis is one conditional sensitivity analysis when
pooling is questionable.2 * H^-1 and
keeps it. Reconstructed values match OpenMx’s own standard errors to
machine precision and match the classical mean-square formulas for a
crossed two-way design to five significant figures.gt_reliability() and gt_dstudy(),
per outcome and for weighted composites. New level
argument; new Erho2_se, Erho2_lower,
Erho2_upper, Phi_se, Phi_lower,
and Phi_upper columns. plot.gt_dstudy() draws
the bounds. Deterministic tests check the delta-method mapping. A
previously reported pilot coverage range has no reproducible
protocol/results in the public repository and does not define a
validated operating range.NA,
never a structural zero that would read as certainty.check_hessian is disabled or the curvature is unusable. The
discrete Laplace engine computes no observed information and says so
rather than leaving the field empty.fixed to gt_reliability() and
gt_dstudy(), implementing the mixed model of Brennan
(2001): the object-by-fixed-facet variance is averaged over that facet’s
levels and joins universe-score variance, a source built only from fixed
facets shifts every object equally and leaves the model, and every other
source keeps its usual divisor. With no fixed facet the decomposition is
unchanged. $source_roles records the role each source
took.full_cell to gt_design().
full_cell = FALSE removes exactly the object-by-all-facets
source and leaves every other requested source unchanged, which is how a
binary or ordinal study with one observation per cell declares the
default crossed design. The discrete rejection message now names that
argument. The source is still never dropped automatically.browseVignettes("Gtheory4LLM") finds it.
system.file("doc", "LLM-workflow.R") and the installed HTML
keep working.man/*.Rd and NAMESPACE the only
documentation source of truth. The R files previously carried roxygen
blocks that were not the source of the richer hand-written Rd pages;
running roxygen2 would have replaced them and dropped the S3 methods
registered in NAMESPACE. Those blocks are now plain
comments.R (>= 4.5.0) floor comes from
OpenMx’s under-declared C API requirement rather than from this
package’s own code.covariance_parameterization default change, and adds
installed-package regression tests for standard errors, the delta-method
mapping, coefficient intervals, mixed-model fixed facets, and
full_cell..DS_Store, which git
already ignores and a desktop environment recreates. The exemption is by
exact filename, is reported under skipped_os_metadata, and
never applies inside an archive.scripts/check_package.py needs knitr, rmarkdown, and
pandoc. When they are absent it records that, builds with
--no-build-vignettes, checks with
--ignore-vignettes, and the installed-tutorial stage prints
NOT RUN rather than passing silently. The three workflows
install the toolchain.counts to gt_reliability() with the
existing design argument retained as a compatibility
alias.auto:
direct variances for univariate/diagonal models and log-Cholesky for
joint unstructured models. Explicit choices and numerical acceptance
criteria remain available.gt_preflight() to report resolved sources,
covariance and random-effect dimensions, replication/completeness,
resource limits, and supported scales.Scope at 0.0.6 was exact balanced Gaussian likelihood and small-model first-order Laplace discrete likelihood. Discrete latent random effects remain Gaussian. Binary/ordinal reliability requires an explicit latent scale; unordered categorical scalar reliability, observed-score discrete reliability, joint Gaussian-discrete fitting, bootstrap/jackknife, and uncertainty intervals of any kind were not implemented in that release. (The development version adds asymptotic Wald standard errors and delta-method coefficient intervals for Gaussian fits only; see above.) Numerical tests do not establish parameter recovery, approximation adequacy, or application-wide statistical validity.
These binaries (installable software) and packages are in development.
They may not be fully stable and should be used with caution. We make no claims about them.
Health stats visible at Monitor.