Author: celestin
Date: Mon Sep 10 19:05:54 2012
New Revision: 1383052

URL: http://svn.apache.org/viewvc?rev=1383052&view=rev
Log:
MATH-854: fill the "throws" clause of ArrayFieldVector.

Modified:
    
commons/proper/math/trunk/src/main/java/org/apache/commons/math3/linear/ArrayFieldVector.java

Modified: 
commons/proper/math/trunk/src/main/java/org/apache/commons/math3/linear/ArrayFieldVector.java
URL: 
http://svn.apache.org/viewvc/commons/proper/math/trunk/src/main/java/org/apache/commons/math3/linear/ArrayFieldVector.java?rev=1383052&r1=1383051&r2=1383052&view=diff
==============================================================================
--- 
commons/proper/math/trunk/src/main/java/org/apache/commons/math3/linear/ArrayFieldVector.java
 (original)
+++ 
commons/proper/math/trunk/src/main/java/org/apache/commons/math3/linear/ArrayFieldVector.java
 Mon Sep 10 19:05:54 2012
@@ -47,7 +47,7 @@ public class ArrayFieldVector<T extends 
 
     /**
      * Build a 0-length vector.
-     * Zero-length vectors may be used to initialized construction of vectors
+     * Zero-length vectors may be used to initialize construction of vectors
      * by data gathering. We start with zero-length and use either the {@link
      * #ArrayFieldVector(ArrayFieldVector, ArrayFieldVector)} constructor
      * or one of the {@code append} methods ({@link #add(FieldVector)} or
@@ -94,7 +94,8 @@ public class ArrayFieldVector<T extends 
      * @throws ZeroException if {@code d} is empty.
      * @see #ArrayFieldVector(Field, FieldElement[])
      */
-    public ArrayFieldVector(T[] d) {
+    public ArrayFieldVector(T[] d)
+            throws NullArgumentException, ZeroException {
         if (d == null) {
             throw new NullArgumentException();
         }
@@ -114,7 +115,8 @@ public class ArrayFieldVector<T extends 
      * @throws NullArgumentException if {@code d} is {@code null}.
      * @see #ArrayFieldVector(FieldElement[])
      */
-    public ArrayFieldVector(Field<T> field, T[] d) {
+    public ArrayFieldVector(Field<T> field, T[] d)
+            throws NullArgumentException {
         if (d == null) {
             throw new NullArgumentException();
         }
@@ -143,7 +145,8 @@ public class ArrayFieldVector<T extends 
      * @see #ArrayFieldVector(FieldElement[])
      * @see #ArrayFieldVector(Field, FieldElement[], boolean)
      */
-    public ArrayFieldVector(T[] d, boolean copyArray) {
+    public ArrayFieldVector(T[] d, boolean copyArray)
+            throws NullArgumentException, ZeroException {
         if (d == null) {
             throw new NullArgumentException();
         }
@@ -151,7 +154,7 @@ public class ArrayFieldVector<T extends 
             throw new 
ZeroException(LocalizedFormats.VECTOR_MUST_HAVE_AT_LEAST_ONE_ELEMENT);
         }
         field = d[0].getField();
-        data = copyArray ? d.clone() :  d;
+        data = copyArray ? d.clone() : d;
     }
 
     /**
@@ -169,7 +172,8 @@ public class ArrayFieldVector<T extends 
      * @throws NullArgumentException if {@code d} is {@code null}.
      * @see #ArrayFieldVector(FieldElement[], boolean)
      */
-    public ArrayFieldVector(Field<T> field, T[] d, boolean copyArray) {
+    public ArrayFieldVector(Field<T> field, T[] d, boolean copyArray)
+            throws NullArgumentException {
         if (d == null) {
             throw new NullArgumentException();
         }
@@ -187,7 +191,8 @@ public class ArrayFieldVector<T extends 
      * @throws NumberIsTooLargeException if the size of {@code d} is less
      * than {@code pos + size}.
      */
-    public ArrayFieldVector(T[] d, int pos, int size) {
+    public ArrayFieldVector(T[] d, int pos, int size)
+            throws NullArgumentException, NumberIsTooLargeException {
         if (d == null) {
             throw new NullArgumentException();
         }
@@ -210,7 +215,8 @@ public class ArrayFieldVector<T extends 
      * @throws NumberIsTooLargeException if the size of {@code d} is less
      * than {@code pos + size}.
      */
-    public ArrayFieldVector(Field<T> field, T[] d, int pos, int size) {
+    public ArrayFieldVector(Field<T> field, T[] d, int pos, int size)
+            throws NullArgumentException, NumberIsTooLargeException {
         if (d == null) {
             throw new NullArgumentException();
         }
@@ -228,7 +234,8 @@ public class ArrayFieldVector<T extends 
      * @param v Vector to copy.
      * @throws NullArgumentException if {@code v} is {@code null}.
      */
-    public ArrayFieldVector(FieldVector<T> v) {
+    public ArrayFieldVector(FieldVector<T> v)
+            throws NullArgumentException {
         if (v == null) {
             throw new NullArgumentException();
         }
@@ -245,7 +252,8 @@ public class ArrayFieldVector<T extends 
      * @param v Vector to copy.
      * @throws NullArgumentException if {@code v} is {@code null}.
      */
-    public ArrayFieldVector(ArrayFieldVector<T> v) {
+    public ArrayFieldVector(ArrayFieldVector<T> v)
+            throws NullArgumentException {
         if (v == null) {
             throw new NullArgumentException();
         }
@@ -261,7 +269,8 @@ public class ArrayFieldVector<T extends 
      * a shallow copy
      * @throws NullArgumentException if {@code v} is {@code null}.
      */
-    public ArrayFieldVector(ArrayFieldVector<T> v, boolean deep) {
+    public ArrayFieldVector(ArrayFieldVector<T> v, boolean deep)
+            throws NullArgumentException {
         if (v == null) {
             throw new NullArgumentException();
         }
@@ -277,9 +286,9 @@ public class ArrayFieldVector<T extends 
      * @throws NullArgumentException if {@code v1} or {@code v2} is
      * {@code null}.
      */
-    public ArrayFieldVector(ArrayFieldVector<T> v1, ArrayFieldVector<T> v2) {
-        if (v1 == null ||
-            v2 == null) {
+    public ArrayFieldVector(ArrayFieldVector<T> v1, ArrayFieldVector<T> v2)
+            throws NullArgumentException {
+        if (v1 == null || v2 == null) {
             throw new NullArgumentException();
         }
         field = v1.getField();
@@ -296,9 +305,9 @@ public class ArrayFieldVector<T extends 
      * @throws NullArgumentException if {@code v1} or {@code v2} is
      * {@code null}.
      */
-    public ArrayFieldVector(ArrayFieldVector<T> v1, T[] v2) {
-        if (v1 == null ||
-            v2 == null) {
+    public ArrayFieldVector(ArrayFieldVector<T> v1, T[] v2)
+            throws NullArgumentException {
+        if (v1 == null || v2 == null) {
             throw new NullArgumentException();
         }
         field = v1.getField();
@@ -315,9 +324,9 @@ public class ArrayFieldVector<T extends 
      * @throws NullArgumentException if {@code v1} or {@code v2} is
      * {@code null}.
      */
-    public ArrayFieldVector(T[] v1, ArrayFieldVector<T> v2) {
-        if (v1 == null ||
-            v2 == null) {
+    public ArrayFieldVector(T[] v1, ArrayFieldVector<T> v2)
+            throws NullArgumentException {
+        if (v1 == null || v2 == null) {
             throw new NullArgumentException();
         }
         field = v2.getField();
@@ -341,9 +350,9 @@ public class ArrayFieldVector<T extends 
      * @throws ZeroException if both arrays are empty.
      * @see #ArrayFieldVector(Field, FieldElement[], FieldElement[])
      */
-    public ArrayFieldVector(T[] v1, T[] v2) {
-        if (v1 == null ||
-            v2 == null) {
+    public ArrayFieldVector(T[] v1, T[] v2)
+            throws NullArgumentException, ZeroException {
+        if (v1 == null || v2 == null) {
             throw new NullArgumentException();
         }
         if (v1.length + v2.length == 0) {
@@ -366,7 +375,11 @@ public class ArrayFieldVector<T extends 
      * @throws ZeroException if both arrays are empty.
      * @see #ArrayFieldVector(FieldElement[], FieldElement[])
      */
-    public ArrayFieldVector(Field<T> field, T[] v1, T[] v2) {
+    public ArrayFieldVector(Field<T> field, T[] v1, T[] v2)
+            throws NullArgumentException, ZeroException {
+        if (v1 == null || v2 == null) {
+            throw new NullArgumentException();
+        }
         if (v1.length + v2.length == 0) {
             throw new 
ZeroException(LocalizedFormats.VECTOR_MUST_HAVE_AT_LEAST_ONE_ELEMENT);
         }
@@ -398,7 +411,8 @@ public class ArrayFieldVector<T extends 
     }
 
     /** {@inheritDoc} */
-    public FieldVector<T> add(FieldVector<T> v) {
+    public FieldVector<T> add(FieldVector<T> v)
+        throws DimensionMismatchException {
         try {
             return add((ArrayFieldVector<T>) v);
         } catch (ClassCastException cce) {
@@ -412,12 +426,14 @@ public class ArrayFieldVector<T extends 
     }
 
     /**
-     * Compute the sum of this and v.
+     * Compute the sum of {@code this} and {@code v}.
      * @param v vector to be added
-     * @return this + v
-     * @throws IllegalArgumentException if v is not the same size as this
+     * @return {@code this + v}
+     * @throws DimensionMismatchException if {@code v} is not the same size as
+     * {@code this}
      */
-    public ArrayFieldVector<T> add(ArrayFieldVector<T> v) {
+    public ArrayFieldVector<T> add(ArrayFieldVector<T> v)
+        throws DimensionMismatchException {
         checkVectorDimensions(v.data.length);
         T[] out = buildArray(data.length);
         for (int i = 0; i < data.length; i++) {
@@ -427,7 +443,8 @@ public class ArrayFieldVector<T extends 
     }
 
     /** {@inheritDoc} */
-    public FieldVector<T> subtract(FieldVector<T> v) {
+    public FieldVector<T> subtract(FieldVector<T> v)
+        throws DimensionMismatchException {
         try {
             return subtract((ArrayFieldVector<T>) v);
         } catch (ClassCastException cce) {
@@ -441,12 +458,14 @@ public class ArrayFieldVector<T extends 
     }
 
     /**
-     * Compute this minus v.
+     * Compute {@code this} minus {@code v}.
      * @param v vector to be subtracted
-     * @return this + v
-     * @throws IllegalArgumentException if v is not the same size as this
+     * @return {@code this - v}
+     * @throws DimensionMismatchException if {@code v} is not the same size as
+     * {@code this}
      */
-    public ArrayFieldVector<T> subtract(ArrayFieldVector<T> v) {
+    public ArrayFieldVector<T> subtract(ArrayFieldVector<T> v)
+        throws DimensionMismatchException {
         checkVectorDimensions(v.data.length);
         T[] out = buildArray(data.length);
         for (int i = 0; i < data.length; i++) {
@@ -543,7 +562,8 @@ public class ArrayFieldVector<T extends 
     }
 
     /** {@inheritDoc} */
-    public FieldVector<T> ebeMultiply(FieldVector<T> v) {
+    public FieldVector<T> ebeMultiply(FieldVector<T> v)
+        throws DimensionMismatchException {
         try {
             return ebeMultiply((ArrayFieldVector<T>) v);
         } catch (ClassCastException cce) {
@@ -559,10 +579,12 @@ public class ArrayFieldVector<T extends 
     /**
      * Element-by-element multiplication.
      * @param v vector by which instance elements must be multiplied
-     * @return a vector containing this[i] * v[i] for all i
-     * @exception IllegalArgumentException if v is not the same size as this
+     * @return a vector containing {@code this[i] * v[i]} for all {@code i}
+     * @throws DimensionMismatchException if {@code v} is not the same size as
+     * {@code this}
      */
-    public ArrayFieldVector<T> ebeMultiply(ArrayFieldVector<T> v) {
+    public ArrayFieldVector<T> ebeMultiply(ArrayFieldVector<T> v)
+        throws DimensionMismatchException {
         checkVectorDimensions(v.data.length);
         T[] out = buildArray(data.length);
         for (int i = 0; i < data.length; i++) {
@@ -572,7 +594,8 @@ public class ArrayFieldVector<T extends 
     }
 
     /** {@inheritDoc} */
-    public FieldVector<T> ebeDivide(FieldVector<T> v) {
+    public FieldVector<T> ebeDivide(FieldVector<T> v)
+        throws DimensionMismatchException {
         try {
             return ebeDivide((ArrayFieldVector<T>) v);
         } catch (ClassCastException cce) {
@@ -588,10 +611,12 @@ public class ArrayFieldVector<T extends 
     /**
      * Element-by-element division.
      * @param v vector by which instance elements must be divided
-     * @return a vector containing this[i] / v[i] for all i
-     * @throws IllegalArgumentException if v is not the same size as this
+     * @return a vector containing {@code this[i] / v[i]} for all {@code i}
+     * @throws DimensionMismatchException if {@code v} is not the same size as
+     * {@code this}
      */
-    public ArrayFieldVector<T> ebeDivide(ArrayFieldVector<T> v) {
+    public ArrayFieldVector<T> ebeDivide(ArrayFieldVector<T> v)
+        throws DimensionMismatchException {
         checkVectorDimensions(v.data.length);
         T[] out = buildArray(data.length);
         for (int i = 0; i < data.length; i++) {
@@ -615,7 +640,8 @@ public class ArrayFieldVector<T extends 
     }
 
     /** {@inheritDoc} */
-    public T dotProduct(FieldVector<T> v) {
+    public T dotProduct(FieldVector<T> v)
+        throws DimensionMismatchException {
         try {
             return dotProduct((ArrayFieldVector<T>) v);
         } catch (ClassCastException cce) {
@@ -631,10 +657,12 @@ public class ArrayFieldVector<T extends 
     /**
      * Compute the dot product.
      * @param v vector with which dot product should be computed
-     * @return the scalar dot product between instance and v
-     * @exception IllegalArgumentException if v is not the same size as this
+     * @return the scalar dot product of {@code this} and {@code v}
+     * @throws DimensionMismatchException if {@code v} is not the same size as
+     * {@code this}
      */
-    public T dotProduct(ArrayFieldVector<T> v) {
+    public T dotProduct(ArrayFieldVector<T> v)
+        throws DimensionMismatchException {
         checkVectorDimensions(v.data.length);
         T dot = field.getZero();
         for (int i = 0; i < data.length; i++) {
@@ -644,16 +672,19 @@ public class ArrayFieldVector<T extends 
     }
 
     /** {@inheritDoc} */
-    public FieldVector<T> projection(FieldVector<T> v) {
+    public FieldVector<T> projection(FieldVector<T> v)
+        throws DimensionMismatchException {
         return v.mapMultiply(dotProduct(v).divide(v.dotProduct(v)));
     }
 
-   /** Find the orthogonal projection of this vector onto another vector.
-     * @param v vector onto which instance must be projected
-     * @return projection of the instance onto v
-     * @throws IllegalArgumentException if v is not the same size as this
+    /** Find the orthogonal projection of this vector onto another vector.
+     * @param v vector onto which {@code this} must be projected
+     * @return projection of {@code this} onto {@code v}
+     * @throws DimensionMismatchException if {@code v} is not the same size as
+     * {@code this}
      */
-    public ArrayFieldVector<T> projection(ArrayFieldVector<T> v) {
+    public ArrayFieldVector<T> projection(ArrayFieldVector<T> v)
+        throws DimensionMismatchException {
         return (ArrayFieldVector<T>) 
v.mapMultiply(dotProduct(v).divide(v.dotProduct(v)));
     }
 
@@ -677,8 +708,7 @@ public class ArrayFieldVector<T extends 
     /**
      * Compute the outer product.
      * @param v vector with which outer product should be computed
-     * @return the square matrix outer product between instance and v
-     * @exception IllegalArgumentException if v is not the same size as this
+     * @return the matrix outer product between instance and v
      */
     public FieldMatrix<T> outerProduct(ArrayFieldVector<T> v) {
         final int m = data.length;
@@ -770,10 +800,9 @@ public class ArrayFieldVector<T extends 
      *
      * @param index index of first element to be set.
      * @param v vector containing the values to set.
-     * @throws OutOfRangeException if the index is
-     * inconsistent with vector size
+     * @throws OutOfRangeException if the index is invalid.
      */
-    public void set(int index, ArrayFieldVector<T> v) {
+    public void set(int index, ArrayFieldVector<T> v) throws 
OutOfRangeException {
         try {
             System.arraycopy(v.data, 0, data, index, v.data.length);
         } catch (IndexOutOfBoundsException e) {
@@ -795,10 +824,11 @@ public class ArrayFieldVector<T extends 
     /**
      * Check if instance and specified vectors have the same dimension.
      * @param v vector to compare instance with
-     * @exception IllegalArgumentException if the vectors do not
-     * have the same dimension
+     * @exception DimensionMismatchException if the vectors do not
+     * have the same dimensions
      */
-    protected void checkVectorDimensions(FieldVector<T> v) {
+    protected void checkVectorDimensions(FieldVector<T> v)
+        throws DimensionMismatchException {
         checkVectorDimensions(v.getDimension());
     }
 
@@ -806,10 +836,11 @@ public class ArrayFieldVector<T extends 
      * Check if instance dimension is equal to some expected value.
      *
      * @param n Expected dimension.
-     * @throws OutOfRangeException if the dimension is
-     * inconsistent with this vector size.
+     * @throws DimensionMismatchException if the dimension is not equal to the
+     * size of {@code this} vector.
      */
-    protected void checkVectorDimensions(int n) {
+    protected void checkVectorDimensions(int n)
+        throws DimensionMismatchException {
         if (data.length != n) {
             throw new DimensionMismatchException(data.length, n);
         }
@@ -870,7 +901,7 @@ public class ArrayFieldVector<T extends 
      * @param index Index to check.
      * @exception OutOfRangeException if the index is not valid.
      */
-    private void checkIndex(final int index) {
+    private void checkIndex(final int index) throws OutOfRangeException {
         if (index < 0 || index >= getDimension()) {
             throw new OutOfRangeException(LocalizedFormats.INDEX,
                                           index, 0, getDimension() - 1);


Reply via email to