[jblas] 13/24: Imported Upstream version 1.1.1

Tony Mancill tmancill at moszumanska.debian.org
Sun Jan 5 05:45:58 UTC 2014


This is an automated email from the git hooks/post-receive script.

tmancill pushed a commit to branch master
in repository jblas.

commit 0d8b916229fb6d45f619e7c1bd0f8369d59a9c13
Author: tony mancill <tmancill at debian.org>
Date:   Tue Dec 31 15:19:21 2013 -0800

    Imported Upstream version 1.1.1
---
 Makefile                               |  2 +-
 README                                 |  1 +
 RELEASE_NOTES                          | 12 ++++++++
 build.xml                              |  2 +-
 src/org/jblas/ComplexDouble.java       | 17 +++++++++--
 src/org/jblas/ComplexDoubleMatrix.java | 52 ++++++++++++++++++++++++++--------
 src/org/jblas/ComplexFloat.java        | 17 +++++++++--
 src/org/jblas/ComplexFloatMatrix.java  | 52 ++++++++++++++++++++++++++--------
 src/org/jblas/DoubleMatrix.java        | 27 ++++++++++++++++--
 src/org/jblas/Eigen.java               |  4 +--
 src/org/jblas/FloatMatrix.java         | 27 ++++++++++++++++--
 11 files changed, 175 insertions(+), 38 deletions(-)

diff --git a/Makefile b/Makefile
index ba3a80e..19e07cd 100644
--- a/Makefile
+++ b/Makefile
@@ -32,7 +32,7 @@
 # OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 ## --- END LICENSE BLOCK ---
 
-VERSION=1.1
+VERSION=1.1.1
 
 ######################################################################
 #
diff --git a/README b/README
index 739184f..aaffcba 100644
--- a/README
+++ b/README
@@ -1,6 +1,7 @@
 jblas is a matrix library for Java which uses existing high
 performance BLAS and LAPACK libraries like ATLAS.
 
+Version 1.1.1
 Version 1.1, August 16, 2010
 Version 1.0.2, February 26, 2010
 Version 1.0.1, January 14, 2010
diff --git a/RELEASE_NOTES b/RELEASE_NOTES
index 9b5276d..0e627c6 100644
--- a/RELEASE_NOTES
+++ b/RELEASE_NOTES
@@ -1,3 +1,15 @@
+Release 1.1.1
+
+Mostly bug fixes
+
+- remove spurious System.out.print in complex eigenvector routine.
+- fixed get with ranges
+- added some more variants of get with ranges
+- added more functions to complex data types (in particular sqrt())
+- added hermitian() to Complex matrices to compute conjugate transposes.
+
+----------------------------------------------------------------------
+
 Release 1.1 - August 16, 2010
 
 Added Singular Value Decomposition, some bugfixes
diff --git a/build.xml b/build.xml
index 02b2417..f02e923 100644
--- a/build.xml
+++ b/build.xml
@@ -41,7 +41,7 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 
     <!-- Define directories -->
 
-    <property name="version" value="1.1" />
+    <property name="version" value="1.1.1" />
     <property name="src" value="${basedir}/src" />
     <property name="test" value="${basedir}/test" />
     <property name="bin" value="${basedir}/bin" />
diff --git a/src/org/jblas/ComplexDouble.java b/src/org/jblas/ComplexDouble.java
index 2f0664f..9656588 100644
--- a/src/org/jblas/ComplexDouble.java
+++ b/src/org/jblas/ComplexDouble.java
@@ -36,8 +36,6 @@
 
 package org.jblas;
 
-import static java.lang.Math.sqrt;
-
 import java.nio.DoubleBuffer;
 
 /**
@@ -255,7 +253,12 @@ public class ComplexDouble {
 
     /** Return the absolute value */
     public double abs() {
-        return (double) sqrt(r * r + i * i);
+        return (double) Math.sqrt(r * r + i * i);
+    }
+
+    /** Returns the argument of a complex number. */
+    public double arg() {
+        return (double) Math.acos(r/abs());
     }
 
     public ComplexDouble invi() {
@@ -287,6 +290,14 @@ public class ComplexDouble {
     public ComplexDouble conj() {
         return dup().conji();
     }
+
+    public ComplexDouble sqrt() {
+        double a = abs();
+        double s2 = (double)Math.sqrt(2);
+        double p = (double)Math.sqrt(a + r)/s2;
+        double q = (double)Math.sqrt(a - r)/s2 * Math.signum(i);
+        return new ComplexDouble(p, q);
+    }
     
     /**
      * Comparing two DoubleComplex values.
diff --git a/src/org/jblas/ComplexDoubleMatrix.java b/src/org/jblas/ComplexDoubleMatrix.java
index 4c7fe85..433e2d8 100644
--- a/src/org/jblas/ComplexDoubleMatrix.java
+++ b/src/org/jblas/ComplexDoubleMatrix.java
@@ -583,14 +583,44 @@ public class ComplexDoubleMatrix {
 	/** Return transposed copy of this matrix */
 	public ComplexDoubleMatrix transpose() {
 		ComplexDoubleMatrix result = new ComplexDoubleMatrix(columns, rows);
-		
+
+                ComplexDouble c = new ComplexDouble(0);
+
 		for (int i = 0; i < rows; i++)
 			for (int j = 0; j < columns; j++)
-				result.put(j, i, get(i, j));
+				result.put(j, i, get(i, j, c));
 		
 		return result;
 	}
-	
+
+        public ComplexDoubleMatrix hermitian() {
+            ComplexDoubleMatrix result = new ComplexDoubleMatrix(columns, rows);
+
+            ComplexDouble c = new ComplexDouble(0);
+
+            for (int i = 0; i < rows; i++)
+                for (int j = 0; j < columns; j++)
+                    result.put(j, i, get(i, j, c).conji());
+            return result;
+        }
+
+        /**
+         * Compute complex conjugate (in-place).
+         */
+        public ComplexDoubleMatrix conji() {
+            ComplexDouble c = new ComplexDouble(0.0);
+            for (int i = 0; i < length; i++)
+                put(i, get(i, c).conji());
+            return this;
+        }
+
+        /**
+         * Compute complex conjugate.
+         */
+        public ComplexDoubleMatrix conj() {
+            return dup().conji();
+        }
+
 		
 	/** Compare two matrices.
 	 * @param o Object to compare to
@@ -735,6 +765,11 @@ public class ComplexDoubleMatrix {
             int i = 2*index(rowIndex, columnIndex);
             return new ComplexDouble(data[i], data[i+1]);
 	}
+
+        /** Get matrix element, passing the variable to store the result. */
+        public ComplexDouble get(int rowIndex, int columnIndex, ComplexDouble result) {
+            return get(index(rowIndex, columnIndex));
+        }
 	
 	public DoubleMatrix getReal() {
 		DoubleMatrix result = new DoubleMatrix(rows, columns);
@@ -1206,13 +1241,6 @@ public class ComplexDoubleMatrix {
 	public ComplexDoubleMatrix truth() {
 		return dup().truthi();
 	}
-        
-        public ComplexDoubleMatrix conji() {
-            ComplexDouble c = new ComplexDouble(0.0);
-            for (int i = 0; i < length; i++)
-                put(i, get(i, c).conji());
-            return this;
-        }
 
 	/****************************************************************
 	 * Rank one-updates
@@ -1269,12 +1297,12 @@ public class ComplexDoubleMatrix {
 		return sum().div((double)length);
 	}
 	
-	/* computes this^T * other */
+	/** Computes this^T * other */
 	public ComplexDouble dotc(ComplexDoubleMatrix other) {
 		return SimpleBlas.dotc(this, other);
 	}
 	
-	/* computs this^H * other */
+	/** Computes this^H * other */
 	public ComplexDouble dotu(ComplexDoubleMatrix other) {
 		return SimpleBlas.dotu(this, other);
 	}
diff --git a/src/org/jblas/ComplexFloat.java b/src/org/jblas/ComplexFloat.java
index a44301a..c8538ab 100644
--- a/src/org/jblas/ComplexFloat.java
+++ b/src/org/jblas/ComplexFloat.java
@@ -36,8 +36,6 @@
 
 package org.jblas;
 
-import static java.lang.Math.sqrt;
-
 import java.nio.FloatBuffer;
 
 /**
@@ -255,7 +253,12 @@ public class ComplexFloat {
 
     /** Return the absolute value */
     public float abs() {
-        return (float) sqrt(r * r + i * i);
+        return (float) Math.sqrt(r * r + i * i);
+    }
+
+    /** Returns the argument of a complex number. */
+    public float arg() {
+        return (float) Math.acos(r/abs());
     }
 
     public ComplexFloat invi() {
@@ -287,6 +290,14 @@ public class ComplexFloat {
     public ComplexFloat conj() {
         return dup().conji();
     }
+
+    public ComplexFloat sqrt() {
+        float a = abs();
+        float s2 = (float)Math.sqrt(2);
+        float p = (float)Math.sqrt(a + r)/s2;
+        float q = (float)Math.sqrt(a - r)/s2 * Math.signum(i);
+        return new ComplexFloat(p, q);
+    }
     
     /**
      * Comparing two DoubleComplex values.
diff --git a/src/org/jblas/ComplexFloatMatrix.java b/src/org/jblas/ComplexFloatMatrix.java
index 9bb8a8f..271a2b7 100644
--- a/src/org/jblas/ComplexFloatMatrix.java
+++ b/src/org/jblas/ComplexFloatMatrix.java
@@ -583,14 +583,44 @@ public class ComplexFloatMatrix {
 	/** Return transposed copy of this matrix */
 	public ComplexFloatMatrix transpose() {
 		ComplexFloatMatrix result = new ComplexFloatMatrix(columns, rows);
-		
+
+                ComplexFloat c = new ComplexFloat(0);
+
 		for (int i = 0; i < rows; i++)
 			for (int j = 0; j < columns; j++)
-				result.put(j, i, get(i, j));
+				result.put(j, i, get(i, j, c));
 		
 		return result;
 	}
-	
+
+        public ComplexFloatMatrix hermitian() {
+            ComplexFloatMatrix result = new ComplexFloatMatrix(columns, rows);
+
+            ComplexFloat c = new ComplexFloat(0);
+
+            for (int i = 0; i < rows; i++)
+                for (int j = 0; j < columns; j++)
+                    result.put(j, i, get(i, j, c).conji());
+            return result;
+        }
+
+        /**
+         * Compute complex conjugate (in-place).
+         */
+        public ComplexFloatMatrix conji() {
+            ComplexFloat c = new ComplexFloat(0.0f);
+            for (int i = 0; i < length; i++)
+                put(i, get(i, c).conji());
+            return this;
+        }
+
+        /**
+         * Compute complex conjugate.
+         */
+        public ComplexFloatMatrix conj() {
+            return dup().conji();
+        }
+
 		
 	/** Compare two matrices.
 	 * @param o Object to compare to
@@ -735,6 +765,11 @@ public class ComplexFloatMatrix {
             int i = 2*index(rowIndex, columnIndex);
             return new ComplexFloat(data[i], data[i+1]);
 	}
+
+        /** Get matrix element, passing the variable to store the result. */
+        public ComplexFloat get(int rowIndex, int columnIndex, ComplexFloat result) {
+            return get(index(rowIndex, columnIndex));
+        }
 	
 	public FloatMatrix getReal() {
 		FloatMatrix result = new FloatMatrix(rows, columns);
@@ -1206,13 +1241,6 @@ public class ComplexFloatMatrix {
 	public ComplexFloatMatrix truth() {
 		return dup().truthi();
 	}
-        
-        public ComplexFloatMatrix conji() {
-            ComplexFloat c = new ComplexFloat(0.0f);
-            for (int i = 0; i < length; i++)
-                put(i, get(i, c).conji());
-            return this;
-        }
 
 	/****************************************************************
 	 * Rank one-updates
@@ -1269,12 +1297,12 @@ public class ComplexFloatMatrix {
 		return sum().div((float)length);
 	}
 	
-	/* computes this^T * other */
+	/** Computes this^T * other */
 	public ComplexFloat dotc(ComplexFloatMatrix other) {
 		return SimpleBlas.dotc(this, other);
 	}
 	
-	/* computs this^H * other */
+	/** Computes this^H * other */
 	public ComplexFloat dotu(ComplexFloatMatrix other) {
 		return SimpleBlas.dotu(this, other);
 	}
diff --git a/src/org/jblas/DoubleMatrix.java b/src/org/jblas/DoubleMatrix.java
index 03ba9d3..b1bf24a 100644
--- a/src/org/jblas/DoubleMatrix.java
+++ b/src/org/jblas/DoubleMatrix.java
@@ -645,8 +645,8 @@ public class DoubleMatrix implements Serializable {
         cs.init(0, columns);
         DoubleMatrix result = new DoubleMatrix(rs.length(), cs.length());
 
-        for (; !rs.hasMore(); rs.next()) {
-            for (; !cs.hasMore(); cs.next()) {
+        for (; rs.hasMore(); rs.next()) {
+            for (; cs.hasMore(); cs.next()) {
                 result.put(rs.index(), cs.index(), get(rs.value(), cs.value()));
             }
         }
@@ -654,6 +654,29 @@ public class DoubleMatrix implements Serializable {
         return result;
     }
 
+    public DoubleMatrix get(Range rs, int c) {
+        rs.init(0, rows);
+        DoubleMatrix result = new DoubleMatrix(rs.length(), 1);
+
+        for (; rs.hasMore(); rs.next()) {
+            result.put(rs.index(), 0, get(rs.value(), c));
+        }
+
+        return result;
+    }
+
+    public DoubleMatrix get(int r, Range cs) {
+        cs.init(0, columns);
+        DoubleMatrix result = new DoubleMatrix(1, cs.length());
+
+        for (; cs.hasMore(); cs.next()) {
+            result.put(0, cs.index(), get(r, cs.value()));
+        }
+
+        return result;
+
+    }
+
     /** Get elements specified by the non-zero entries of the passed matrix. */
     public DoubleMatrix get(DoubleMatrix indices) {
         return get(indices.findIndices());
diff --git a/src/org/jblas/Eigen.java b/src/org/jblas/Eigen.java
index 1eb9e09..7e5de6e 100644
--- a/src/org/jblas/Eigen.java
+++ b/src/org/jblas/Eigen.java
@@ -99,7 +99,7 @@ public class Eigen {
             // transferring the result
             ComplexDoubleMatrix E = new ComplexDoubleMatrix(WR, WI);
             ComplexDoubleMatrix V = new ComplexDoubleMatrix(A.rows, A.rows);
-            System.err.printf("VR = %s\n", VR.toString());
+            //System.err.printf("VR = %s\n", VR.toString());
             for (int i = 0; i < A.rows; i++) {
                 if (E.get(i).isReal()) {
                     V.putColumn(i, new ComplexDoubleMatrix(VR.getColumn(i)));
@@ -172,7 +172,7 @@ public class Eigen {
             // transferring the result
             ComplexFloatMatrix E = new ComplexFloatMatrix(WR, WI);
             ComplexFloatMatrix V = new ComplexFloatMatrix(A.rows, A.rows);
-            System.err.printf("VR = %s\n", VR.toString());
+            //System.err.printf("VR = %s\n", VR.toString());
             for (int i = 0; i < A.rows; i++) {
                 if (E.get(i).isReal()) {
                     V.putColumn(i, new ComplexFloatMatrix(VR.getColumn(i)));
diff --git a/src/org/jblas/FloatMatrix.java b/src/org/jblas/FloatMatrix.java
index 6dac014..0e381a1 100644
--- a/src/org/jblas/FloatMatrix.java
+++ b/src/org/jblas/FloatMatrix.java
@@ -645,8 +645,8 @@ public class FloatMatrix implements Serializable {
         cs.init(0, columns);
         FloatMatrix result = new FloatMatrix(rs.length(), cs.length());
 
-        for (; !rs.hasMore(); rs.next()) {
-            for (; !cs.hasMore(); cs.next()) {
+        for (; rs.hasMore(); rs.next()) {
+            for (; cs.hasMore(); cs.next()) {
                 result.put(rs.index(), cs.index(), get(rs.value(), cs.value()));
             }
         }
@@ -654,6 +654,29 @@ public class FloatMatrix implements Serializable {
         return result;
     }
 
+    public FloatMatrix get(Range rs, int c) {
+        rs.init(0, rows);
+        FloatMatrix result = new FloatMatrix(rs.length(), 1);
+
+        for (; rs.hasMore(); rs.next()) {
+            result.put(rs.index(), 0, get(rs.value(), c));
+        }
+
+        return result;
+    }
+
+    public FloatMatrix get(int r, Range cs) {
+        cs.init(0, columns);
+        FloatMatrix result = new FloatMatrix(1, cs.length());
+
+        for (; cs.hasMore(); cs.next()) {
+            result.put(0, cs.index(), get(r, cs.value()));
+        }
+
+        return result;
+
+    }
+
     /** Get elements specified by the non-zero entries of the passed matrix. */
     public FloatMatrix get(FloatMatrix indices) {
         return get(indices.findIndices());

-- 
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-java/jblas.git



More information about the pkg-java-commits mailing list