+ *offset = pos1 + z * (pos2 - pos1);
+ if (rounding_behavior == COMBINE_ROUND_TO_FP16) {
+ // Round to fp16. Note that this might take z outside the 0..1 range.
+ *offset = fp16_to_fp64(fp64_to_fp16(*offset));
+ z = (z - pos1) / (pos2 - pos1);
+ } else {
+ assert(rounding_behavior == COMBINE_DO_NOT_ROUND);
+ }
+