Interpretation of nonzero HINGE = value in GMT5

This will be my final annoying question on GMT 5/6 cpt files, I promise! For info, I’m updating my cptutils package to support them, and I’d like to get it right.

In a GMT5 cpt file, one would often see a

# HINGE = 0

predating the SOFT_HINGE and HARD_HINGE. I get what that means, but what if the value is non-zero, when the cpt file is “stretched”, what would the hinge be mapped to in that stretch?

The only example in the GMT5 distribution is etopo1.cpt, which has the HINGE value at -0.001, and this is the same as the original ETOPO1.cpt, a GMT4 cpt. But the former is normalised to -1/1, while the latter is not, its range is -11000/8500.

This leads me to think that the hinge value is invariant in the stretching, but that would imply that the HINGE value h must be -1 < h < 1, else unstretched the hinge would be outside -1/1, and the cpt file would be non-monotone and look very strange indeed:

# RANGE = -1/3
# HINGE = 2
-1 r/g/b 2 r/g/b
 2 r/g/b 1 r/g/b

Is it just the case that this never came up because there was only the one non-zero hinge in scope and that had a tiny value? If so that’s fine for my purposes, I can just error if the input hinge is outside -1/1 and the user selects “normalised” (-1/1) output.

Or maybe I’ve missed something?

Thanks in advance, Jim