Changes in version 0.4.0 (2026-05-04) New - Consolidated CRAN release (updating CRAN 0.3.0) that bundles the internal 0.4.0/0.5.0/0.6.0 feature line in one submission. - exdqlmLDVB: Laplace-Delta variational Bayes routine for dynamic quantile state-space fitting under the extended asymmetric Laplace error distribution. - Reduced-model controls for dynamic routines (exdqlmISVB(), exdqlmLDVB(), exdqlmMCMC()) through dqlm.ind = TRUE, fixing gamma = 0 for AL/DQLM inference when desired. - Added synthesis helper quantileSynthesis() for combining posterior quantile-draw objects. - Added dynamic regression-block construction with regMod() and static exAL inference routines for VB/LDVB and MCMC workflows. - Added static reduced AL support (dqlm.ind = TRUE) in exalStaticLDVB() and exalStaticMCMC(). - Added static coefficient prior options for ridge and regularized horseshoe (beta_prior = "ridge" / "rhs") in both static LDVB and static MCMC. - Added additive static rhs_ns prior support for both static LDVB and static MCMC (beta_prior = "rhs_ns"), including slab-control aliases (a_zeta, b_zeta, zeta2_fixed) while preserving existing rhs and ridge behavior. - Added exdqlmTransferLDVB() for post-fit transformed summaries analogous to the ISVB path. - Added exdqlmTransferMCMC() for fixed-lam transfer-function exDQLM fitting under the dynamic MCMC workflow. - Documentation updates for new APIs: explicit argument contracts (types/dims), return-value structure, and CRAN-safe examples aligned with existing package style. - Standardized VB diagnostics traces across VB fits via fit$diagnostics$vb_trace, exposing iteration-wise ELBO, sigma, gamma, and convergence deltas in a plot-ready table while preserving the existing engine-specific diagnostics. - Standardized the main user-facing naming scheme around exalStatic..., exdqlmTransfer..., and quantileSynthesis(), while retaining documented legacy ISVB entry points where needed for backward-compatible workflows. - Added climateIndices, a documented monthly NOI/AMO climate-index data frame used for reproducible external-regressor examples. Fixes and clarifications - Normalized the shared dynamic exDQLM VB policy around LDVB: exdqlmLDVB() and exdqlmTransferLDVB() are now the main VB entry points, while exdqlmISVB() and exdqlmTransferISVB() are documented as legacy compatibility paths. - Added al.ind as a static-model convenience alias for dqlm.ind in exalStaticLDVB() and exalStaticMCMC(), with conflict checks when both flags are provided. - Changed fix.sigma defaults from TRUE to FALSE for the shared dynamic exDQLM VB entry points and the reduced dynamic DQLM CAVI helper, while preserving explicit fixed-sigma workflows when users request them. - Fixed R-path FFBS backward transition indexing to use G_{t+1} for parity with the C++ bridge and theory derivations. - Fixed static MCMC psi = 0 boundary behavior in exAL sigma updates to avoid unstable scale draws in reduced/near-reduced settings. - Aligned static LDVB (sigma, gamma) transformed objective/entropy handling with the Jacobian contract used in the static theory reference. - Corrected the positive-truncated-normal entropy sign used in exAL LDVB monitored ELBO diagnostics and centralized the shared entropy calculation. - Clarified that C++ elbo.part in kalman.cpp is an internal diagnostic; package-level ELBO reporting remains R-level contract output. - Added dedicated static-fit object generics for exalStaticMCMC and exalStaticLDVB and aligned post-fit compatibility for exdqlm classes. - Replaced deprecated arma::is_finite(...) usage in FFBS C++ with std::isfinite(...) to eliminate compiler deprecation warnings. - Optional C++ builder acceleration remains opt-in (exdqlm.use_cpp_builders default FALSE); no backend default flip in this release. - Optional C++ post-predictive sampler remains opt-in (exdqlm.use_cpp_postpred default FALSE). - Transfer-function wrappers now share the same augmentation helper and accept either one or two discount factors through tf.df. - Shared entry points now apply a conservative automatic warmup baseline for the most failure-prone common blocks: RHS-family tau scheduling remains on by default, while exAL VB/MCMC entry points apply a light (sigma, gamma) warmup unless users explicitly override it through vb_control or mcmc_control. - Streamlined default LDVB/MCMC console progress lines to prioritize run phase, iteration, keep counters, acceptance summaries, and runtime while leaving full sigma/gamma histories in diagnostics objects and callbacks. - Clarified the BTflow dataset provenance as observed monthly USGS streamflow and removed the unused BTprec dataset from the package data API. - Slimmed the shipped climate-index data API to the two manuscript predictors used in the Big Trees example. Changes in version 0.3.0 (2026-02-07) - C++ bridge and optional samplers - Optional C++ Kalman filter/smoother bridge and sampling kernels (theta, s_t, u_t). - Runtime toggles via options(exdqlm.use_cpp_kf = TRUE) and options(exdqlm.use_cpp_samplers = TRUE). - Defaults preserve the R implementation for backward compatibility. - ELBO diagnostics and stopping - New diagnostics$elbo recorded per ISVB iteration. - Optional ELBO-based stopping via options(exdqlm.compute_elbo = TRUE) and options(exdqlm.tol_elbo = 1e-4). - Numerical robustness - Stabilized log-determinant computations and truncated-normal entropy updates. - Guard rails for edge cases in intermediate calculations. - Build & hygiene - OpenMP usage is optional and gated by compiler support. - Makevars link against R BLAS/LAPACK; internal headers centralized. - Docs & tests - Runtime options documented; parity checks added for R vs C++ paths. Changes in version 0.2.0 (2026-01-12) - New AL/exAL helper functions with C++ backends: - dexal(), pexal(), qexal(), rexal() for density, cdf, quantile and random generation. - get_gamma_bounds() to compute valid (L, U) bounds for gamma given p0. - Implementation details: - Core numerics in C++ via Rcpp/RcppArmadillo and BH (Boost) for root-finding and Φ. - Parameter validation to keep gamma within bounds; clearer errors. - Updated exdqlmISVB() and exdqlmMCMC() to use rexal() - exdqlmChecks() renamed exdqlmDiagnostics() - Improved the performance of plotting functions exdqlmPlot() and compPlot() - Return changes - functions polytrendMod(), and seasMod() now return objects of class 'exdqlm' - function exdqlmISVB() and (inherently) exdqlmTransferISVB() now return objects of class 'exdqlmISVB' - function exdqlmMCMC() now returns objects of class 'exdqlmMCMC' - function exdqlmDiagnostics() now returns objects of class 'exdqlmDiagnostic' - function exdqlmForecast() now returns objects of class 'exdqlmForecast' - returns from exdqlmMCMC(), exdqlmISVB(), and exdqlmTransferISVB() now include data (y) - Input changes - y removed from the inputs of exdqlmDiagnostics(), exdqlmForecast(), compPlot(), and exdqlmPlot() - Added generics_etc.R which includes generics & other functions for the objects of class 'exdqlm', 'exdqlmISVB','exdqlmMCMC', 'exdqlmDiagnostic', & 'exdqlmForecast' - Removed dlmMod.R and replaced with the more robust function as.exdqlm (in generics_etc.R), which creates 'exdqlm' objects - Removed combineMods.R and replaced with addition for 'exdqlm' objects (in generics_etc.R) - Testing & docs: - Unit tests for pdf/cdf/quantile inverses and sampling sanity checks. - Package-level docs updated; vignettes intentionally deferred for a later release. Changes in version 0.1.4 (2025-09-11) - CRAN hygiene & maintenance - Removed legacy MD5 file; added ignore so it won’t be re-created in builds. - Dropped stray placeholder files (e.g., .gitkeep) from package sources. - Tidied DESCRIPTION (Imports/LinkingTo clarified; encoding/notes consistent). - Ensured no hidden or invalid files end up in the tarball. - Examples & tests - Updated examples to keep gamma within valid bounds for the chosen p0. - Converted tests to use exported package functions (no ad-hoc sourceCpp()). - Documentation - Minor clarifications and consistency fixes in Rd pages. Changes in version 0.1.3 (2023-02-16) - exdqlm 0.1.2 was archived on 2022-10-23 as requires archived package 'dlm'. 'dlm' now back on CRAN. - Fixes and general improvements - changed if/class conditions in exdqlmISVB, exdqlmMCMC to is() - added the function is.exdqlm() to utils - changed if/class conditions in compPlot, exdqlmChecks, exdqlmForcast, exdqlmPlot to is.exdqlm() Changes in version 0.1.2 (2021-07-20) - Fixes and general improvements - fixed a bug in the forecast plotting routine - dqlm.ind = TRUE automatically sets gam.init = 0 & fix.gamma = TRUE (implemented in check_logics) - added a check that gam.init is in the appropriate range in exdqlmISVB and exdqlmMCMC - Input changes - added parameter to specify the percentage of the CrIs in compPlot, exdqlmPlot and exdqlmForecast - Return changes - kt added to exdqlmTransferISVB return - Dataset changes - BTflow dataset updated - monELI dataset removed Changes in version 0.1.1 (2021-06-18) - Documentation updates - added author (year) to citation in descriptions - Argument changes - added input verbose to the functions exdqlmISVB & exdqlmMCMC to allow users to suppress progress updates - Return changes - functions exdqlmPlot and compPlot now return a list of the MAP & CrI estimates that are plotted Changes in version 0.1.0 - First release.