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

emre brookes noreply at github.com
Sun Jul 12 08:10:13 MDT 2026


  Branch: refs/heads/somo-dev
  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>


  Commit: ba1b20cdef2d1c65d64073f42c0398864e14e4e9
      https://github.com/ehb54/ultrascan3/commit/ba1b20cdef2d1c65d64073f42c0398864e14e4e9
  Author: emre brookes <ehb54 at users.noreply.github.com>
  Date:   2026-07-12 (Sun, 12 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:
  -----------
  Merge pull request #478 from ehb54/ehb54-issue-962

Fix Crop Common dropping points from 6-sig-fig q rounding (holes)


Compare: https://github.com/ehb54/ultrascan3/compare/df7f39c0342f...ba1b20cdef2d

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