NEWS
T4transport 0.2.0.9002
- Exact network-simplex computations now normalize active costs and validate
rescaled duals in normalized units, preventing coordinate units from causing
undetected large relative objective errors.
- Histogram computations discard inherited solver metadata when constructing
a new display. Shared histogram grids are checked without an origin-dependent
tolerance. Density quadrature scales spacings before adding them.
- Corrected scalar covariance handling in
gaussmedpd() and retained successful
PW initializations when another initial solve fails, with separate diagnostics
for every attempted initialization.
- Aligned Sinkhorn help with the implemented entropy convention and exposed
overflow of the full regularized objective as a numerical failure.
- Strengthened quantile-summary representation consistency and qualified
stopping at degenerate coincident free supports. Added analytical, scaling,
serialization, and failure-path regression coverage for the audit findings.
- The frozen 0.2.0.9001 archive and its manuscript evidence remain historical
artifacts; this development snapshot has a separate identity.
T4transport 0.2.0.9001
- Added
ot_inspect() and standard report methods for available mathematical,
numerical, termination and approximation metadata across OT families.
Family-native output shapes and numerical defaults are preserved.
- Added
ot_gaussian_summary() for parameter-object barycenters and medians,
dispatching to existing Gaussian algorithms with explicit control mapping.
- Extended
swdist(), pwdist(), and pwbary() to accept existing finite
measures/collections. Conflicting separate masses are rejected.
- Added toolbox tutorials and reproducible geometry, interpolation, and
family-reference studies; retained the distribution-summary application.
- Reframed the guide and manuscript around a computational OT toolbox.
Previous source archives, numerical records, and the manuscript are preserved.
T4transport 0.2.0.9000
Common workflows and numerical results
- Added
ot_measure(), ot_collection(), as_ot_measure(), ot_image(), and
ot_density() with explicit representation metadata and separate
within-measure masses and outer weights.
- Added
ot_distance(), ot_cost(), and ot_summary() with explicit cost,
regularization, and feasible-set contracts. Fit/comparison objects expose
solver status, stopping reason, objective components, and diagnostics.
- Added exact finite one-dimensional transport and common-refinement
barycenters, plus collision-aware W2 medians. Positive mass that cannot be
represented safely causes an explicit numerical error.
- Added fixed-support mass optimization and free-support fixed-mass relocation
with checked objectives, retained initialization, and recorded multiple starts.
Numerical stopping rules do not generally certify global optimality.
- Added Gaussian parameter objects and exact Gaussian W2 comparison. Corrected
Gaussian median collisions and the multivariate IRLS mean update. Univariate
variance zero is supported; multivariate covariance inputs must be strictly
positive definite, with no automatic ridge or PSD projection.
- Added executable workflow and migration tutorials, contract tests, and
separately recorded application/benchmark replication scripts.
Changes requiring review of existing analyses
- Invalid masses, nonfinite inputs, dimension mismatches, unsupported controls,
and misspelled arguments are rejected instead of silently repaired or ignored.
Exact and entropic solver iteration limits and inner failures are exposed.
- ECDF summaries now return callable weighted CDFs (
t4transport_cdf, also a
stepfun) with exact finite masses and fit attributes. They are not fabricated
equally weighted samples and do not inherit ecdf. Use as_ot_measure() for
support/mass extraction and quantile(..., type = 1) for finite quantiles.
- Histogram methods interpret normalized counts as masses at bin midpoints,
including for unequal-width bins. Estimated
counts and mass are
probabilities; density = mass / diff(breaks). No sample-size-dependent
rounding is performed. Unrestricted summaries/interpolations preserve the
unprojected measure separately from the histogram display. L is validated
but no longer controls the finite quantile calculation.
fbary14C(), fbary15B(), their distance variants, and corresponding
histogram/image wrappers now use objective-checked mirror descent with
log-domain Sinkhorn gradients. Historical names remain compatibility entry
points; they no longer identify the original accelerated or Bregman-projection
iterations. The target is powered transport cost plus
lambda * sum(plan * (log(plan) - 1)). Initial masses must be strictly positive;
wrappers exposing nthread accept only nthread = 1.
imagemed() now uses the shared fixed-grid mass solver for the sum of W2
distances. The old delta and bary.* controls are rejected. This mass-space
median problem is nonconvex; numerical status and collision limits are explicit.
imageinterp() now defaults to eps = 0. A positive floor changes the inputs
and its mass perturbation is reported. The exact unprojected displacement
measure and a nearest-grid projection error bound accompany the image display.
- Image coordinates remain explicit and distinct: legacy image methods use a
[0,1] endpoint grid,
ot_image() uses column-as-x pixel centers, and
img2measure() preserves base image() row-as-x pixel coordinates. Mixing
these without a deliberate coordinate conversion changes the transport problem.
- Gaussian summary lists preserve
mean and var and add objective/history/status.
General SPD median iteration stopping does not imply global optimality;
unresolved exact collisions are failures rather than automatic convergence.
T4transport 0.1.9
- The
rbaryGD() function allows arbitrary step-size selection for $\alpha \in (0,1]$ provided by a user. Default is $\alpha=1$.
T4transport 0.1.8 (2026-01-11)
- Changed
hdist() to histdist() for modality-specific computation.
imagebary() added for unregularized Wasserstein barycenter of images.
imagedist() added for the Wasserstein distance between two images.
imageinterp() added for Wasserstein interpolation between two images.
imagemed() added for unregularized Wasserstein median of images.
T4transport 0.1.7 (2025-12-22)
- Removed dependence on CVXR package.
T4transport 0.1.6
- API references restructured.
- Added a number of functions for histograms, including distance, barycenter, interpolation, and median.
- Added
img2measure() to extract a discrete measure from a gray-scale image matrix.
- New family of routines for Gromov-Wasserstein geometry,
gwdist() and gwbary(), added.
T4transport 0.1.5 (2025-11-13)
- Replaced
lpSolve package's EMD solver with Nicolas Bonneel's highly-optimized C library.
- Added functions for Procrustes-Wasserstein geometry:
pwdist() and pwbary().
T4transport 0.1.4
rbarygd() for a Riemannian gradient descent to compute the free-support barycenter is added.
T4transport 0.1.3 (2025-05-29)
- Changed the structure of the package.
- Applied the
log-sum-exp trick for numerical stability to the entropic regularization solver.
rbary23L() added for simple free-support Wasserstein barycenter computation.
- Two ad hoc median routines for images and histograms are removed.
T4transport 0.1.2 (2023-04-11)
gaussmed1d() and gaussmedpd() now fully respects the product manifold perspective.
gwdist() added for Sliced-Wasserstein distance computation.
T4transport 0.1.1 (2022-09-03)
- Support for special types of data. See the reference for more details.
T4transport 0.1.0 (2020-10-09)
- Added a
NEWS.md file to track changes to the package.
- Initial release.