Disallow scaled_channel for float. I can't think of a reason to allow it, and it gets in the way
of rounding.
Add separate template param to setTable; let the compiler sort out whether assignment can happen
between TElement and VElement without forcing them to be the same at function call time.