[PPL-devel] [GIT] ppl/ppl(master): In Java, avoid useless repeated copies in Coefficient and Linear_Expression.

Enea Zaffanella zaffanella at cs.unipr.it
Fri Apr 24 21:54:36 CEST 2009


Module: ppl/ppl
Branch: master
Commit: 81e816d83312c7ca68c455f663d4e31a82bb08a2
URL:    http://www.cs.unipr.it/git/gitweb.cgi?p=ppl/ppl.git;a=commit;h=81e816d83312c7ca68c455f663d4e31a82bb08a2

Author: Enea Zaffanella <zaffanella at cs.unipr.it>
Date:   Fri Apr 24 19:57:52 2009 +0200

In Java, avoid useless repeated copies in Coefficient and Linear_Expression.

---

 .../Java/parma_polyhedra_library/Coefficient.java  |   10 +++++-----
 .../Java/parma_polyhedra_library/Constraint.java   |    2 +-
 .../Java/parma_polyhedra_library/Generator.java    |    8 +++-----
 .../Linear_Expression_Coefficient.java             |    2 +-
 .../Linear_Expression_Difference.java              |    2 +-
 .../Linear_Expression_Sum.java                     |    2 +-
 .../Linear_Expression_Times.java                   |    5 ++---
 .../Linear_Expression_Unary_Minus.java             |    2 +-
 .../Linear_Expression_Variable.java                |    2 +-
 9 files changed, 16 insertions(+), 19 deletions(-)

diff --git a/interfaces/Java/parma_polyhedra_library/Coefficient.java b/interfaces/Java/parma_polyhedra_library/Coefficient.java
index ce60db0..d70bb63 100644
--- a/interfaces/Java/parma_polyhedra_library/Coefficient.java
+++ b/interfaces/Java/parma_polyhedra_library/Coefficient.java
@@ -35,14 +35,14 @@ public class Coefficient {
     //! Holds the value of \p this.
     private BigInteger value;
 
-    //! Builds a coefficient values \p i.
+    //! Builds a coefficient valued \p i.
     public Coefficient(int i) {
-	value = new BigInteger(Integer.toString(i));
+        value = BigInteger.valueOf(i);
     }
 
     //! Builds a coefficient valued \p l.
     public Coefficient(long l) {
-	value = new BigInteger(Long.toString(l));
+	value = BigInteger.valueOf(l);
     }
 
     //! Builds a coefficient valued \p bi.
@@ -61,7 +61,7 @@ public class Coefficient {
 
     //! Builds a copy of \p c.
     public Coefficient(Coefficient c) {
-	value = new BigInteger(c.value.toString());
+	value = c.value;
     }
 
     //! Returns a String representation of \p this.
@@ -75,7 +75,7 @@ public class Coefficient {
     }
 
     private void set(Coefficient c) {
-        value = c.getBigInteger();
+        value = c.value;
     }
 
     private static native void initIDs();
diff --git a/interfaces/Java/parma_polyhedra_library/Constraint.java b/interfaces/Java/parma_polyhedra_library/Constraint.java
index cc7b2d0..42962a5 100644
--- a/interfaces/Java/parma_polyhedra_library/Constraint.java
+++ b/interfaces/Java/parma_polyhedra_library/Constraint.java
@@ -48,7 +48,7 @@ public class Constraint {
       relation symbol.
     */
     public Constraint(Linear_Expression le1, Relation_Symbol rel_sym,
-            Linear_Expression le2) {
+                      Linear_Expression le2) {
 	lhs = le1.clone();
 	rhs = le2.clone();
 	kind = rel_sym;
diff --git a/interfaces/Java/parma_polyhedra_library/Generator.java b/interfaces/Java/parma_polyhedra_library/Generator.java
index 6deaa35..ad03802 100644
--- a/interfaces/Java/parma_polyhedra_library/Generator.java
+++ b/interfaces/Java/parma_polyhedra_library/Generator.java
@@ -60,17 +60,15 @@ public class Generator {
       \exception RuntimeErrorException
       Thrown if \p d is zero.
     */
-    public static Generator closure_point(Linear_Expression e,
-                                          Coefficient d) {
+    public static Generator closure_point(Linear_Expression e, Coefficient d) {
         if (d.getBigInteger().equals(java.math.BigInteger.ZERO)) {
             Error cause = new Error("parma_polyhedra_library.Generator::"
                                     + "Generator(e, d):\n"
 				    + "the divisor can not be zero.");
             throw new RuntimeErrorException(cause);
         }
-
         Generator g = new Generator(e, Generator_Type.CLOSURE_POINT);
-        g.div = d;
+        g.div = new Coefficient(d);
         return g;
     }
 
@@ -98,7 +96,7 @@ public class Generator {
         }
 
         Generator g = new Generator(e, Generator_Type.POINT);
-        g.div = d;
+        g.div = new Coefficient(d);
         return g;
     }
 
diff --git a/interfaces/Java/parma_polyhedra_library/Linear_Expression_Coefficient.java b/interfaces/Java/parma_polyhedra_library/Linear_Expression_Coefficient.java
index 765bce3..1514572 100644
--- a/interfaces/Java/parma_polyhedra_library/Linear_Expression_Coefficient.java
+++ b/interfaces/Java/parma_polyhedra_library/Linear_Expression_Coefficient.java
@@ -42,7 +42,7 @@ public class Linear_Expression_Coefficient
 
     //! Builds a copy of this.
     public Linear_Expression_Coefficient clone() {
-	return new Linear_Expression_Coefficient(new Coefficient(coeff));
+	return new Linear_Expression_Coefficient(coeff);
     }
 
     private static native void initIDs();
diff --git a/interfaces/Java/parma_polyhedra_library/Linear_Expression_Difference.java b/interfaces/Java/parma_polyhedra_library/Linear_Expression_Difference.java
index c20619b..15b6102 100644
--- a/interfaces/Java/parma_polyhedra_library/Linear_Expression_Difference.java
+++ b/interfaces/Java/parma_polyhedra_library/Linear_Expression_Difference.java
@@ -55,7 +55,7 @@ public class Linear_Expression_Difference
 
     //! Builds a copy of this.
     public Linear_Expression_Difference clone() {
-	return new Linear_Expression_Difference(lhs.clone(), rhs.clone());
+	return new Linear_Expression_Difference(lhs, rhs);
     }
 
     private static native void initIDs();
diff --git a/interfaces/Java/parma_polyhedra_library/Linear_Expression_Sum.java b/interfaces/Java/parma_polyhedra_library/Linear_Expression_Sum.java
index 4bf7dec..558b2bf 100644
--- a/interfaces/Java/parma_polyhedra_library/Linear_Expression_Sum.java
+++ b/interfaces/Java/parma_polyhedra_library/Linear_Expression_Sum.java
@@ -51,7 +51,7 @@ public class Linear_Expression_Sum
 
     //! Builds a copy of this.
     public Linear_Expression_Sum clone() {
-	return new Linear_Expression_Sum(lhs.clone(), rhs.clone());
+	return new Linear_Expression_Sum(lhs, rhs);
     }
 
     private static native void initIDs();
diff --git a/interfaces/Java/parma_polyhedra_library/Linear_Expression_Times.java b/interfaces/Java/parma_polyhedra_library/Linear_Expression_Times.java
index 6787086..872bbe8 100644
--- a/interfaces/Java/parma_polyhedra_library/Linear_Expression_Times.java
+++ b/interfaces/Java/parma_polyhedra_library/Linear_Expression_Times.java
@@ -35,7 +35,7 @@ public class Linear_Expression_Times
 
     //! Builds an object cloning the input arguments.
     public Linear_Expression_Times(Linear_Expression l, Coefficient c) {
-	lhs = new Linear_Expression_Coefficient(new Coefficient(c));
+	lhs = new Linear_Expression_Coefficient(c);
 	rhs = l.clone();
     }
 
@@ -51,8 +51,7 @@ public class Linear_Expression_Times
 
     //! Builds a copy of this.
     public Linear_Expression_Times clone() {
-	return new Linear_Expression_Times(rhs.clone(),
-					   new Coefficient(lhs.argument()));
+	return new Linear_Expression_Times(rhs, lhs.argument());
     }
 
     private static native void initIDs();
diff --git a/interfaces/Java/parma_polyhedra_library/Linear_Expression_Unary_Minus.java b/interfaces/Java/parma_polyhedra_library/Linear_Expression_Unary_Minus.java
index 267c0e9..d7c3f7b 100644
--- a/interfaces/Java/parma_polyhedra_library/Linear_Expression_Unary_Minus.java
+++ b/interfaces/Java/parma_polyhedra_library/Linear_Expression_Unary_Minus.java
@@ -42,7 +42,7 @@ public class Linear_Expression_Unary_Minus
 
     //! Builds a copy of this.
     public Linear_Expression_Unary_Minus clone() {
-        return new Linear_Expression_Unary_Minus(arg.clone());
+        return new Linear_Expression_Unary_Minus(arg);
     }
 
     private static native void initIDs();
diff --git a/interfaces/Java/parma_polyhedra_library/Linear_Expression_Variable.java b/interfaces/Java/parma_polyhedra_library/Linear_Expression_Variable.java
index 7091a86..23f6fe4 100644
--- a/interfaces/Java/parma_polyhedra_library/Linear_Expression_Variable.java
+++ b/interfaces/Java/parma_polyhedra_library/Linear_Expression_Variable.java
@@ -41,7 +41,7 @@ extends Linear_Expression {
 
     //! Builds a copy of this.
     public Linear_Expression_Variable clone() {
-	return new Linear_Expression_Variable(new Variable(arg.id()));
+	return new Linear_Expression_Variable(arg);
     }
 
     private int var_id() {




More information about the PPL-devel mailing list