Two defects in specs/numeric/formats_catalog.t27 that #2788 deliberately did not touch, because they are numeric data rather than classification.
1. tnf16's phi_distance is stale under the catalog's own convention
The record says e=4 m=11 phi_distance=0.086. Under the convention the file documents for tnf* — "e= is a count of balanced-ternary TRITS, not bits. The bit-equivalent is Et·log2(3)" — the value is:
|4·log2(3) / 11 − 1/φ| = 0.0417 the record's own m
|4·log2(3) / 9 − 1/φ| = 0.0864 recorded 0.086
0.086 is the value for m = 9. The record and specs/numeric/tnf16.t27 both say m = 11.
The other eight tnf rungs reproduce the documented convention to ≤ 0.0005, so this is one stale field, not a wrong convention. It was flagged by the catalog gate — for the wrong reason, as part of 41 findings that came from the φ rule being misapplied — and it is the one of those 41 that a record could actually fix.
2. phi_distance carries three different conventions inside one cluster
Measured across cluster=GoldenFloat:
| family |
convention |
gf*, bnf* |
E / M — matches the gate's formula |
gft* |
raw trits / M |
tnf* |
Et·log2(3) / M — the bit-equivalent |
One field name, three meanings, no marker distinguishing them. Any consumer that averages, sorts or compares phi_distance across the cluster is comparing three different quantities — and the gate's gf-phi-distance check assumes the first convention for all of them.
This is the same shape as the rule-scoping defect #2788 fixed, one field down: the catalog states the convention in prose that only humans read, while the machine-readable record carries no way to tell which is in force.
Why this issue and not a patch
Both are the owner's numeric data. Changing 0.086 to 0.0417 is almost certainly right, and "almost certainly" is not the standard for editing a published format catalog — phi_distance appears in generated artifacts and in material outside this repository. The convention question needs a decision (a phi_distance_basis= field? separate field names?) before any value moves.
Measured with
python3 -c "import math; phi=(1+5**0.5)/2; l3=math.log2(3); print(abs(4*l3/11-1/phi), abs(4*l3/9-1/phi))"
Refs #2762
Two defects in
specs/numeric/formats_catalog.t27that #2788 deliberately did not touch, because they are numeric data rather than classification.1.
tnf16'sphi_distanceis stale under the catalog's own conventionThe record says
e=4 m=11 phi_distance=0.086. Under the convention the file documents fortnf*— "e= is a count of balanced-ternary TRITS, not bits. The bit-equivalent is Et·log2(3)" — the value is:0.086is the value for m = 9. The record andspecs/numeric/tnf16.t27both say m = 11.The other eight
tnfrungs reproduce the documented convention to ≤ 0.0005, so this is one stale field, not a wrong convention. It was flagged by the catalog gate — for the wrong reason, as part of 41 findings that came from the φ rule being misapplied — and it is the one of those 41 that a record could actually fix.2.
phi_distancecarries three different conventions inside one clusterMeasured across
cluster=GoldenFloat:gf*,bnf*E / M— matches the gate's formulagft*/ Mtnf*Et·log2(3) / M— the bit-equivalentOne field name, three meanings, no marker distinguishing them. Any consumer that averages, sorts or compares
phi_distanceacross the cluster is comparing three different quantities — and the gate'sgf-phi-distancecheck assumes the first convention for all of them.This is the same shape as the rule-scoping defect #2788 fixed, one field down: the catalog states the convention in prose that only humans read, while the machine-readable record carries no way to tell which is in force.
Why this issue and not a patch
Both are the owner's numeric data. Changing
0.086to0.0417is almost certainly right, and "almost certainly" is not the standard for editing a published format catalog —phi_distanceappears in generated artifacts and in material outside this repository. The convention question needs a decision (aphi_distance_basis=field? separate field names?) before any value moves.Measured with
python3 -c "import math; phi=(1+5**0.5)/2; l3=math.log2(3); print(abs(4*l3/11-1/phi), abs(4*l3/9-1/phi))"Refs #2762