Gwyddion Flat-Disc Morphology Compatibility¶
Status and scope¶
gwyddion_filter_flat_disc_morphology records Gwyddion 2.71 Filter-tool
flat-disc Opening and Closing for finite, non-empty, full-field 2D data with
mask policy fixed to ignore. It is limited to the frozen 12-field campaign
and sizes 2, 3, 4, 5, 30 and 31.
Reference and parameters¶
The reference is the audited installed Gwyddion 2.71 executable path through
gwy_data_field_area_filter_min_max. size_px is an integer in 2..31;
the planned public default is 5. The kernel is a K by K digital ellipse,
where K equals size_px.
Numerical semantics¶
The exterior policy is nearest valid edge pixel. Minimum/erosion uses the
unreflected RLE mask and anchor (K-1)//2; maximum/dilation uses the rotated,
row-sorted RLE mask and anchor K//2. Opening is dilation after erosion;
Closing is erosion after dilation.
The executable hierarchy is not generic C-language tie semantics. The
audited Gwyddion 2.71 library (libgwyprocess2.so.0.51.1, SHA-256
5f5b53cb544068638d1a3be8d6703345e49d5626d3fa4791106ce11bc051d3d7,
Build ID 04187a41d4102c827e2705bb867292ba77ae37f4) recursively constructs
Each/Even row reductions. Its compiled MINSD/MAXSD composition sites select
the second operand on equal values, preserving signed zero. The later RLE
aggregation uses strict comparison and retains the earlier row-major segment.
Evidence and fixture¶
The external canonical reference is SHA-256
907bd347cc8c213d1061b786b6efe5692c87ffd8be62db1f6de2bd9bc78acdbd and
its provenance is c3777cdcfdd868a705ef09c63a7548a5b1c0eb0b79d053e02ac2f45e9c97e5af.
The independent oracle V2 is bf4129fe4fd871dda3132d5457d45d0833d69e9acd5cf3bb765fc0f3a8d9792e;
its executable reduction model is 43089668a7fe0c699093be440402c8b1b11b42dfea4eb720785241788306c543.
The fixture stores 12 inputs, 30 masks for sizes 2..31, 72 Opening outputs, and 72 Closing outputs. It records kernels 30/30 and both operations 72/72 bitwise exact, max absolute difference 0, max ULP 0, signed-zero mismatches 0, and input mutation 0.
The rejected uninitialised-kernel microprobe is invalid evidence: elliptic fill writes active pixels only. Approved probes zero-initialize the kernel before filling it.
Non-claims¶
This is not universal equivalence. It excludes NaN, infinities, ROI, masks, ASF, tip morphology, other Gwyddion versions/builds, and performance parity. It records the audited executable path, not a claim that all C compilers lower the source identically.