cdata_weight always positive; fewer multiplications.