huge.select() (R) and huge_select()
(Python) no longer gate the zero-lambda refit on a bitwise-zero lambda.
A residual too small for a solver to certify but not exactly zero
previously bypassed the safety fallback, which made graphical lasso fit
rank-deficient data almost unregularized and raise a non-finite estimate
error. Routing now uses the same roundoff scale in both packages.input.type = "data" or
"covariance", and Python accepts
input_type="data" or "covariance"; the
compatible default "auto" retains symmetry-based detection.
RIC and StARS refits preserve resolved raw-data routing. TIGER now sends
the original matrix and resolved flag directly to C++, where covariance
validation, correlation construction, automatic lambda selection, and
fitting use one native correlation matrix. For compatibility with
existing glasso callers, auto-detected covariance input retains its
historical diagonal-sensitive default lambda scale; explicit covariance
routing uses the corrected off-diagonal scale.nlambda * d * d dense coefficient cube. The private native
entries retain their default dense output for compatibility. RIC also
limits its OpenMP team to the number of requested rotations, preventing
idle workers from each allocating a d * d scratch matrix. R
StARS uses at most two forked workers, limits huge’s native OpenMP code
to one thread in each child, disables recursive mclapply,
and retains the historical positional verbose
argument.huge.tiger() covariance input being interpreted
by the native solver as d raw observations. TIGER now
builds one correlation matrix in C++, derives its default lambda path
there, and solves the correlation-domain square-root Lasso with full KKT
certification. Raw data and cov(data) now produce the same
path for the same lambda values. Generated paths stop with a warning at
the longest certified prefix instead of returning unstable low-lambda
iterates; uncertifiable user-supplied values raise an error.1e-3 fallback for identity and one-variable inputs. Weak
nonzero correlations use their true maximum magnitude, preserving the
established path scale in both R and Python while keeping lambda
selection entirely in C++.lambda_max * lambda_min_ratio in log space and saturates
only values below the smallest positive double. Subnormal correlations
or ratios no longer produce zero/NaN lambda paths or
spurious certification failures.huge() tiger method returning asymmetric
icov matrices: the in-place symmetrization averaged against
already-averaged entries.df, sparsity, and
log-likelihood are derived from that same projected precision matrix in
both R and Python. Half-scaled addition avoids overflow when averaging
large finite precision entries. Scale-equilibrated Cholesky now computes
the log-determinant and rejects non-positive-definite precision
estimates without an absolute pivot cutoff. The shared core also rejects
non-finite results and covariance/precision pairs whose inverse residual
is too large before they can be reused as a warm start or returned
through R or Python. Components whose symmetric projection loses inverse
consistency receive one tighter solve before final certification.1 x 1 paths for valid single-variable observations. Raw
inputs with only one observation or a constant column are rejected
before an undefined sample correlation can reach a solver.1e-12 with one.1e-3 zero-signal fallback to weak but nonzero correlations
or covariances. TIGER automatic lambda selection remains entirely in
C++.lambda_min_ratio = 1,
despite the public (0, 1] contract. These automatic paths
now retain the requested length as exact ties; explicit non-increasing
MB/glasso paths may also contain ties so StARS can refit them, while
increasing paths are still rejected.huge.mb() and huge.tiger()
dropping single-variable sparse paths to vectors. Their raw and
covariance interfaces now return valid 1 x 1 paths with
zero, finite sparsity; MB also constructs zero-edge sparse paths without
invalid indices.1e-8 correlation roundoff. Accepted near-symmetric
covariance matrices are stably projected before CT, MB, or glasso uses
them, preventing one-sided threshold graphs. TIGER still passes the
original validated matrix to C++, where symmetric correlation
construction and automatic lambda selection remain.huge_generator().sigmahat now matches R’s
empirical correlation matrix, and rejects n = 1 where
sample correlation is undefined.huge.roc() and Python huge_roc() now
reject truth matrices containing only edges or only non-edges, for which
ROC/AUC is undefined.rep_num (normally one byte instead of eight), then
convert one lambda layer at a time for the unchanged variability
calculation. CT and MB additionally store only the condensed upper
triangle; glasso retains both directions for compatibility with
previously created or caller-constructed paths. StARS now rejects inputs
with fewer than two variables, for which its variability denominator is
zero. Python StARS also rejects a subsample ratio whose floored size is
below two, rather than silently increasing the requested subsample.NaNs, and handles finite rank differences near
floating-point limits safely.huge.generator() now rejects invalid n,
d, and graph names before printing or consuming random
numbers. Empirical correlation requires at least two generated
observations.huge.generator() now supports the one-variable
boundary for every graph type with zero sparsity, and band graphs
support bandwidth d - 1 without dimension-dropping
errors.huge.generator() now validates active v,
u, g, and prob values before
printing or consuming random numbers. Graph-inactive g and
prob arguments are ignored, and oversized group counts no
longer allocate empty groups.huge.generator() now requires scalar, non-missing
logical values for vis and verbose, rejecting
invalid flags before output, plotting, or RNG consumption.huge.generator(vis = TRUE) now restores the caller’s
graphics parameters after visualization, including when plotting exits
with an error.plot.huge() and huge.plot() now restore
dependent graphics parameters, including custom figure, plot, and outer
regions, in a stable order. EPS output closes its own device on exit and
reliably returns to the original caller when multiple graphics devices
are open.plot.sim(),
plot.select(), huge.roc(), and
plot.roc()) now use the same dependency-aware
graphics-state restoration.huge.select() RIC criterion scale-dependence: the
rotation criterion saw unstandardized data while the lambda path is
defined on the correlation scale, so rescaling the input silently
changed the selected graph. The Python interface now also preserves R’s
empty-graph boundary, including single-variable and exactly uncorrelated
inputs, instead of passing a zero lambda back to solvers that require a
positive value. Also fixed the R shortcut, which compared against
max(cor(data)) (always 1), and made single-variable RIC
report zero rather than NaN sparsity.huge.npn(npn.func = "skeptic") erroring on input
with row names (n-length row names were assigned to the d x d output);
the skeptic correlation matrix now carries variable names on both
dimensions.1 x 1 boundary, and rejects
fewer than two observations or undefined correlations caused by a
constant column.hit_max_iter channel from the shared C++ core).huge.select(..., num.cores = k): StARS
subsamplings can now fit in parallel via
parallel::mclapply. The R interface starts at most two
forked workers, limits huge’s package-owned OpenMP regions to one thread
in each child, and returns results identical to the serial path.
External BLAS thread settings remain controlled by the R installation.
New Imports: parallel.crossprod (about 40x for the correlation step;
huge(method = "ct") about 2x end to end), the nonparanormal
skeptic uses rank crossproducts (about 5x), huge.roc uses
precomputed edge masks (about 3x), and huge.generator uses
symmetric eigenvalue computation and Cholesky-based inversion (about
1.6x at d = 2000).plot.huge,
plot.select, plot.roc, huge.roc,
and huge.plot (par is now restored on
exit).maxdf argument from internal C++
wrappers.nlambda default (20, not 30), the scr
description in huge.glasso, and several typos.tools/check_core_mirrors.sh, CI).huge.roc() F1 score: precision was computed from
rates instead of counts, inflating F1 in sparse graphs (TP rate and FP
rate were correct; only F1 was affected).huge.select() missing support for tiger method
(no default criterion, RIC/StARS refit, or opt.icov extraction).plot.sim() graphics parameter leak
(par() shadowing and missing on.exit()
restore).ebic.score field naming mismatch in
documentation.scr parameter documentation (incorrectly stated
MB not supported).align parameter documentation in
plot.huge (logically inverted).fit$rss matrix from huge.mb()
and huge.tiger().huge.npn) rownames
bug.
Need a high-speed mirror for your open-source project?
Contact our mirror admin team at info@clientvps.com.
This archive is provided as a free public service to the community.
Proudly supported by infrastructure from VPSPulse , RxServers , BuyNumber , UnitVPS , OffshoreName and secure payment technology by ArionPay.