From 4fbe2e349908a53032b3f23c2180a46e4f770c92 Mon Sep 17 00:00:00 2001 From: Thomas White Date: Fri, 23 Jul 2021 12:50:48 +0200 Subject: rtnl_add: Don't use rational type for intermediate result It's confusing and unnecessary. --- libcrystfel/src/rational.c | 21 +++++++++++---------- 1 file changed, 11 insertions(+), 10 deletions(-) (limited to 'libcrystfel') diff --git a/libcrystfel/src/rational.c b/libcrystfel/src/rational.c index db02ee93..2cedf246 100644 --- a/libcrystfel/src/rational.c +++ b/libcrystfel/src/rational.c @@ -140,19 +140,20 @@ Rational rtnl_div(Rational a, Rational b) Rational rtnl_add(Rational a, Rational b) { - Rational r, trt1, trt2; + Rational r; + long long int common_den; + long long int a_num, b_num; - trt1.num = a.num * b.den; - trt2.num = b.num * a.den; - check_overflow(trt1.num, a.num, b.den); - check_overflow(trt2.num, b.num, a.den); + a_num = a.num * b.den; + b_num = b.num * a.den; + check_overflow(a_num, a.num, b.den); + check_overflow(b_num, b.num, a.den); - trt1.den = a.den * b.den; - trt2.den = trt1.den; - check_overflow(trt1.den, a.den, b.den); + common_den = a.den * b.den; + check_overflow(common_den, a.den, b.den); - r.num = trt1.num + trt2.num; - r.den = trt1.den; + r.num = a_num + b_num; + r.den = common_den; squish(&r); return r; } -- cgit v1.2.3