Porting status

What is currently implemented, by source library for both the shared C++ core library (the faithful port itself) and the R/Python packages (corehydror / corehydropy). As of v0.8.0 every ported area has a public wrapper in both packages, so no row is marked “Internal” any more; where only part of an area is exposed, the Notes column says which part. Every “Ported” row is validated by test suites which have also been ported and compared to the original C# libraries.

Status as of v0.13.0.

Numerics

The Numerics library is the numerical foundation. Every portable part of it is ported. The general-purpose math, optimization, and machine learning layers came in over v0.9.0 through v0.12.0, and the heavy TimeSeries container – the last unported slice – landed in v0.13.0 along with the four members that had been deferred alongside it. What remains out is what cannot be carried across: file I/O, the USGS gauge download, JSON serialization, and the progress reporting that exists for the desktop application.

Area C++ core Packages Notes
Distributions (univariate, 43 families) Ported Public Distribution / distribution() + density, CDF, quantile, moments, L-moments, fitting (MLE / L-moments / MOM), seeded sampling
Distributions (multivariate) Ported Public Dirichlet, Multinomial, BivariateEmpirical, MultivariateNormal (Genz MVNDST), MultivariateStudentT, through the mvdist_* verbs since v0.5.0
Distributions.Copulas (7 bivariate + estimation) Ported Public copula() / copula_fit() and the density, CDF, tail-dependence and joint-exceedance verbs since v0.5.0; also drives bivariate_analysis and coincident_frequency_analysis
Sampling.MCMC (8 samplers + R-hat / ESS) Ported Public mcmc_sample() fits a built-in family; mcmc_posterior() takes a log-likelihood you write and reaches all eight samplers, Gibbs included, through the proposal callback it accepts; all drive the Bayesian analyses
Sampling (Latin hypercube, Sobol, Stratify) Ported Public latin_hypercube(), sobol_sequence(), stratify()
Sampling.Bootstrap Ported Public bootstrap_analysis() for a fitted distribution, bootstrap_custom() for a statistic you write, reaching all four upstream delegates (resample, fit, statistic, jackknife) and all five interval methods; bootstrap_custom(run_type = "pivotal") adds the covariance-aware pivotal workflow since v0.8.0
Data.Statistics Ported Public all thirteen classes: MGBT, Box-Cox, Yeo-Johnson, plotting positions, descriptive and running statistics, correlation (paired and, since v0.11.0, the Pearson/Spearman matrix form), autocorrelation, goodness of fit (including the Kolmogorov-Smirnov, Anderson-Darling and chi-squared statistics through gof_test()), histogram binning, and joint probability; hypothesis_test() exposes all thirteen HypothesisTests statics since v0.12.0 (one/two-sample t, F, Jarque-Bera, Wald-Wolfowitz, Ljung-Box, Mann-Whitney, Mann-Kendall, linear trend, and unimodality)
Data.Interpolation Ported Public interpolate(), interpolate_2d() – one- and two-dimensional interpolation with optional axis transforms (log, normal-Z); the Paired Data curve subsystem (OrderedPairedData/Ordinate/UncertainOrderedPairedData/LineSimplification) is public as curve_interpolate(), curve_area(), curve_simplify(), uncertain_curve_sample(), and tabular_function()
Data.Regression Ported Public linear_regression() – ordinary least squares, returning a corehydro_lm / LinearRegressionResult with print/summary/coef/vcov/residuals/predict
Data (TimeSeries container) Ported Public time_series() / TimeSeries plus the ts_*() verbs since v0.13.0: moving windows, value transformations, missing-value handling, clipping and shifting, interval conversion, summary and monthly statistics, the duration curve, block series (annual maxima by calendar or water year, quarterly, monthly), peaks over threshold, seasonal decomposition, and two seeded resamplers. Dates are POSIXct in R and datetime64 in Python. File I/O and the USGS download remain out of scope
Mathematics (linear algebra, special functions, root finding, numerical derivatives) Ported Public root_find() (Brent, bisection, secant, Newton), root_find_system(), derivative(), gradient(), hessian() and ode_solve() run over a function you write; qr_decomposition() / qr_solve() / gauss_jordan() and debye() / polynomial_eval() are public, and the remaining linear algebra and special functions stay internal, covering what the distribution / estimation layers require; general optimization is a separate row below
Mathematics.Optimization Ported Public optim_minimize() / optim_maximize() expose all fourteen optimizers since v0.10.0 – DE, particle swarm, SCE-UA, simulated annealing, multi-start, MLSL, BFGS, Powell, ADAM, gradient descent, Nelder-Mead, Brent, golden section, and the constrained augmented Lagrange over optim_constraint(); ADAM and gradient descent take an analytic gradient you write. The Dynamic trio (BinaryHeap, Dijkstra, Network) is public as shortest_path()
Mathematics.Integration Ported Public quadrature() integrates a function you write with any of ten deterministic rules, quadrature_2d() over a rectangle, and quadrature_nd() over an arbitrary-dimension box with three seeded Monte Carlo families (plain, Miser, Vegas); the Genz MVNDST integrator inside MultivariateNormal is ported too
MachineLearning (all 8 methods + 2 support types) Ported Public eight ml_*() verbs since v0.12.0: ml_kmeans(), ml_gaussian_mixture(), ml_jenks_breaks(), ml_decision_tree(), ml_random_forest(), ml_knn(), ml_naive_bayes(), and ml_glm() (five families, selected by link). Each trains and answers in one call; a seeded fit is bit-identical across R and Python
Functions (link functions) Ported Public link_function() / link() / link_inverse() / link_derivative() / link_names() expose the seven standard links; the five BestFit-specific links (ASinH, SES, LogSES, LogASinH, Centered) are used internally by the GMM / Bulletin 17C track
Random Numbers (Mersenne Twister) Ported (bit-exact) Public (through callbacks) the foundation of cross-language reproducibility; a callback that needs randomness draws from the generator the run is already using, through a handle passed to it (R rng_uniform() / rng_integers(), Python’s Rng, which users cannot construct themselves)

RMC-BestFit

RMC-BestFit is the Bayesian estimation and flood-frequency application built on Numerics. Its statistical engine is fully ported; only its WPF desktop shell is out of scope.

Area C++ core Packages Notes
Estimation (MLE, MAP, Bayesian, GMM) Ported Public fit_mle(), fit_map(), fit_bayesian() and fit_gmm() over any model_*(), fit_gmm_moments() over moment conditions you write, plus the analysis functions and estimation_diagnostics()
Models (data frame, censored data, trends, all model families) Ported Public flood frequency, Bulletin 17C, mixtures, competing risks, point process, AR/MA/ARIMA/ARIMAX, spatial GEV, rating curves, bivariate; analysis_data_hypothesis_test()/analysis_data_statistics() expose all fourteen of the DataFrame’s hypothesis-test/summary-statistics facade members since v0.12.0, unimodality and summary_hypothesis included
Analyses (all orchestrators) Ported Public the 19 analysis functions in each package
Diagnostics (leverage, influence, prior influence, predictive checks) Ported Public estimation_diagnostics(), prior_predictive_check(), posterior_predictive_check()
Report generation Not ported Not a planned porting target
Batch runner / GUI Not ported Not a planned porting target