[us-commits] [ehb54/ultrascan3] e4097b: Fix Crop Common dropping points due to 6-sig-fig q...

emre brookes noreply at github.com
Sat Jul 11 11:34:36 MDT 2026


  Branch: refs/heads/ehb54-issue-962
  Home:   https://github.com/ehb54/ultrascan3
  Commit: e4097b6c1c59016b3be6e5cce40619c1bbbe0689
      https://github.com/ehb54/ultrascan3/commit/e4097b6c1c59016b3be6e5cce40619c1bbbe0689
  Author: ehb54 <brookes at uthscsa.edu>
  Date:   2026-07-11 (Sat, 11 Jul 2026)

  Changed paths:
    M us_somo/develop/include/us_vector.h
    M us_somo/develop/src/us_hydrodyn_dad_util.cpp
    M us_somo/develop/src/us_hydrodyn_mals_saxs_util.cpp
    M us_somo/develop/src/us_hydrodyn_mals_util.cpp
    M us_somo/develop/src/us_hydrodyn_saxs_buffer.cpp
    M us_somo/develop/src/us_hydrodyn_saxs_hplc_util.cpp
    M us_somo/develop/src/us_vector.cpp
    M us_somo/somo/doc/manual/somo/somo_mals.html
    M us_somo/somo/doc/manual/somo/somo_mals_saxs.html
    M us_somo/somo/doc/manual/somo/somo_saxs_hplc.html
    M us_somo/somo/doc/manual/somo/somo_uv_vis.html

  Log Message:
  -----------
  Fix Crop Common dropping points due to 6-sig-fig q rounding

Crop Common built the shared grid via US_Vector::intersection(), which
matches q values by exact double equality. Because .dat files store q to
6 significant figures, the same physical q point is rounded slightly
differently between files (e.g. 0.00547318 vs 0.00547317), so those
points missed the exact match and were dropped, leaving "holes" in the
common grid. On a set of 7 AlphaSyn HPLC curves this cut the common grid
from ~1053 points to 803.

Add US_Vector::canonical_map(), which clusters q values whose relative
gap is <= reltol (1e-4) and maps each to a canonical representative. A
cluster/tolerance merge (rather than fixed-grid rounding) is used so that
near-identical values never straddle a bin boundary. crop_common() snaps
the grids through this map before intersecting and uses the same map for
the per-curve filter; retained points keep their original q/I/sd values.

Applied to all five crop_common paths: SAXS HPLC/KIN, MALS, DAD (UV/Vis),
MALS-SAXS, and SAXS Buffer. Manual pages updated accordingly. On the 7
test curves the common grid is restored to 1045 points with no
over-merging (min real relative gap 8.3e-4, well above the 1e-4 tol).

Fixes ehb54/ultrascan-tickets#962

Co-Authored-By: Claude Opus 4.8 <noreply at anthropic.com>



To unsubscribe from these emails, change your notification settings at https://github.com/ehb54/ultrascan3/settings/notifications


More information about the us-commits mailing list