Skip to content

Commit 02bd47f

Browse files
committed
1600 baby! Minor performance improvement for Rational code
1 parent 4ddfc64 commit 02bd47f

File tree

1 file changed

+10
-6
lines changed

1 file changed

+10
-6
lines changed

src/main/java/nom/bdezonia/zorbage/type/data/rational/RationalMember.java

Lines changed: 10 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -104,17 +104,21 @@ public void setV(BigInteger n) {
104104
}
105105

106106
public void setV(BigInteger n, BigInteger d) {
107-
if (d.equals(BigInteger.ZERO))
107+
int comparison = d.compareTo(BigInteger.ZERO);
108+
if (comparison == 0)
108109
throw new IllegalArgumentException("divide by zero");
109-
if (d.compareTo(BigInteger.ZERO) < 0) {
110+
if (comparison < 0) {
110111
n = n.negate();
111112
d = d.negate();
112113
}
113-
if (n.equals(BigInteger.ZERO))
114+
if (n.equals(BigInteger.ZERO)) {
114115
d = BigInteger.ONE;
115-
BigInteger gcd = n.gcd(d);
116-
this.n = n.divide(gcd);
117-
this.d = d.divide(gcd);
116+
}
117+
else {
118+
BigInteger gcd = n.gcd(d);
119+
this.n = n.divide(gcd);
120+
this.d = d.divide(gcd);
121+
}
118122
}
119123

120124
@Override

0 commit comments

Comments
 (0)