From 9805d64f00ed25d10e0d47f81cab8722a25c3941 Mon Sep 17 00:00:00 2001 From: Joachim Klein Date: Fri, 12 Oct 2018 11:25:09 +0200 Subject: [PATCH] exact/param: BigRational: Use static BigRational.ONE/BigRational.ZERO for conversion from boolean Previously, when converting from boolean to BigRational, a fresh object was allocated. However, as BigRationals are immutable, we can just return BigRational.ONE or .ZERO, respectively. Tag: performance? --- prism/src/param/BigRational.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/prism/src/param/BigRational.java b/prism/src/param/BigRational.java index 1939ec8d..531c5610 100644 --- a/prism/src/param/BigRational.java +++ b/prism/src/param/BigRational.java @@ -273,7 +273,7 @@ public final class BigRational extends Number implements Comparable return new BigRational((long) value); } else if (value instanceof Boolean) { boolean v = (Boolean)value; - return new BigRational(v ? 1 : 0); + return v ? BigRational.ONE : BigRational.ZERO; } else if (value instanceof Double) { // TODO: ? might be imprecise, perhaps there // is a way to get the full precision?