h = f + g // Can overlap h with f or g. // // Preconditions: // |f| bounded by 1.1*2^25,1.1*2^24,1.1*2^25,1.1*2^24,etc. // |g| bounded by 1.1*2^25,1.1*2^24,1.1*2^25,1.1*2^24,etc. // // Postconditions: // |h| bounded by 1.1*2^26,1.1*2^25,1.1*2^26,1.1*2^25,etc. Conditional move. Replace (f,g) with (g,g) if b == 1; replace (f,g) with (f,g) if b == 0.
Conditional swap. Replace (f,g) with (g,f) if b == 1; replace (f,g) with (f,g) if b == 0.
Returns f * 121666