It is useful to think separately about
LUT color values { say 0 to 1023 } output from the LUT interpolation
LUT array index positions { 0 to 63 for a 64 cube LUT in each color )
and either
LUT input color value ( 0 to 1023 )
or
Normalized LUT input color value ( 0 to 1.0 from #/1023 )
The LUT access calculation normalizes the input color value, scales it by the number of entries to
get LUT array index positions (6.3, 12.6, 18.9 in the first example), and then uses all three Color values
to perform the interpolation (several types) to get an output value from the LUT.
A 1D LUT can be used to change the input value in a set way as long as the 3DLUT was generated with the same calculation, which
is why it is called a shaper LUT. It changes the result of the LUT access calculation. As a result, you can have greater or less sample points
at different positions in the LUT.
There, I think I have said the same things as in the e-mails below.
Though it is not about the .cube format, and runs the risk of confusion because it was written for programmers, there
is the ASC/Academy LUT format document which does explain some of the concepts for a fully general LUT and color matrix manipulation
If you want more particulars about the Resolve form of a .cube file, you can look at
Good Luck.
Jim Houston