MC_IS
estimator correction and reliability analysis improvements
Monte Carlo Importance
Sampling (MC_IS)
Corrected the MC_IS estimator to remove bias caused by the previous
self-normalized implementation.
Refactored worker aggregation in MC_IS_single to ensure
correct accumulation of weighted samples and consistent global
statistics.
Workers now compute weights directly and return aggregated
statistics instead of raw sample vectors.
System reliability analysis
Fixed incorrect propagation of sys_type from
calculateSystemProbability() to
MC_IS_system(), ensuring that serial and parallel systems
are evaluated correctly.
Resolved cases of uninitialized variables in the system worker
(mode_ids, shift, and references to
I_matrix).
Enabled multimodal sampling for both serial and parallel
systems.
Performance improvements
Optimized the transformation from u-space to x-space by removing
large intermediate matrices and computing quantiles column-wise.
Replaced large failure indicator matrices with incremental counters
to significantly reduce memory usage.
Reduced worker-to-master communication in parallel runs by returning
only aggregated statistics.
Validation and testing
Added regression tests for MC_IS_single, including
linear limit-state cases, non-normal distributions, and rare-event
scenarios.
Added system reliability tests comparing results with
MC_CRUDE.
Verified consistency with FORM results within expected Monte Carlo
error.
TesiproV 0.9.5
Major refactoring of object
classes
System and reliability
objects
Reworked all reference classes (SYS_PROB,
SYS_PARAM, SYS_LSF, PROB_BASEVAR,
…).
Introduced explicit constructors with argument validation for better
error handling.
Improved consistency between mean, standard deviation and
coefficient of variation.
Added robust forward/backward transformations for all supported
distributions.
Fixed handling of zero mean values (Cov <- Inf) to
reflect infinite relative scatter.
Limit-state functions
Field type for func changed from
"function" to "ANY" with explicit default
NULL. This prevents creation of dummy closures and allows
proper missing-function detection.
Enhanced $check() method:
Distinguishes between missing, empty, and
valid limit-state functions.
Provides informative error messages used by automated tests.
Parametric study objects
Constructor of SYS_PARAM now correctly forwards
arguments to parent class (callSuper(...)) ensuring that
inherited fields like sys_input are preserved.
Parallel execution restructured using the global future plan set in
.onLoad(). The outer level is capped by environment
variable TesiproV.max_workers (default: 4
cores) while inner Monte-Carlo methods manage their own
threads.
Probabilistic base variables
Complete rewrite of transformation logic in $prepare():
Supports normal, lognormal, Gumbel, gamma, beta and Weibull
distributions consistently.
Corrected implementation of the Gumbel
distribution
(location parameter now properly computed as location = Mean + digamma(1) * scale; scale derived via
(Sd * sqrt(6)) / π).
Added numerical root search for Weibull shape parameter when
empirical formula fails.
Added empirical, shifted lognormal, Student-t and logStudent-t
distribution.
Distribution caching via digest hash implemented in
$getlDistr() for performance improvement.
Package infrastructure
Added internal .onLoad() function for package-specific
default options that can later be used by TesiproV functions to
configure parallel execution in a controlled and CRAN-compliant
way.
Minor improvements
Better formatted output in $printResults().
Consistent English comments throughout codebase for clarity and
documentation generation via roxygen2.
Updated examples in help pages to match new constructors and usage
patterns.
Compatibility notes
Existing scripts using older class definitions should continue to
work after minor adjustments: replace direct field assignments by
constructor arguments where applicable, and ensure that limit-state
functions are defined before calling $check().
TesiproV 0.9.2.0
Better implementation of parallel computing in Unix and macOS
environments.
Changed RNG handling in parallel approach.