Author: celestin Date: Thu Sep 13 19:00:51 2012 New Revision: 1384471 URL: http://svn.apache.org/viewvc?rev=1384471&view=rev Log: MATH-854: in FieldVector and ArrayFieldVector, reverted to r1383770.
Modified: commons/proper/math/trunk/src/main/java/org/apache/commons/math3/linear/ArrayFieldVector.java commons/proper/math/trunk/src/main/java/org/apache/commons/math3/linear/FieldVector.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=1384471&r1=1384470&r2=1384471&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 Thu Sep 13 19:00:51 2012 @@ -97,7 +97,7 @@ public class ArrayFieldVector<T extends * @see #ArrayFieldVector(Field, FieldElement[]) */ public ArrayFieldVector(T[] d) - throws NullArgumentException, ZeroException { + throws NullArgumentException, ZeroException { if (d == null) { throw new NullArgumentException(); } @@ -118,7 +118,7 @@ public class ArrayFieldVector<T extends * @see #ArrayFieldVector(FieldElement[]) */ public ArrayFieldVector(Field<T> field, T[] d) - throws NullArgumentException { + throws NullArgumentException { if (d == null) { throw new NullArgumentException(); } @@ -148,7 +148,7 @@ public class ArrayFieldVector<T extends * @see #ArrayFieldVector(Field, FieldElement[], boolean) */ public ArrayFieldVector(T[] d, boolean copyArray) - throws NullArgumentException, ZeroException { + throws NullArgumentException, ZeroException { if (d == null) { throw new NullArgumentException(); } @@ -175,7 +175,7 @@ public class ArrayFieldVector<T extends * @see #ArrayFieldVector(FieldElement[], boolean) */ public ArrayFieldVector(Field<T> field, T[] d, boolean copyArray) - throws NullArgumentException { + throws NullArgumentException { if (d == null) { throw new NullArgumentException(); } @@ -194,7 +194,7 @@ public class ArrayFieldVector<T extends * than {@code pos + size}. */ public ArrayFieldVector(T[] d, int pos, int size) - throws NullArgumentException, NumberIsTooLargeException { + throws NullArgumentException, NumberIsTooLargeException { if (d == null) { throw new NullArgumentException(); } @@ -218,7 +218,7 @@ public class ArrayFieldVector<T extends * than {@code pos + size}. */ public ArrayFieldVector(Field<T> field, T[] d, int pos, int size) - throws NullArgumentException, NumberIsTooLargeException { + throws NullArgumentException, NumberIsTooLargeException { if (d == null) { throw new NullArgumentException(); } @@ -237,7 +237,7 @@ public class ArrayFieldVector<T extends * @throws NullArgumentException if {@code v} is {@code null}. */ public ArrayFieldVector(FieldVector<T> v) - throws NullArgumentException { + throws NullArgumentException { if (v == null) { throw new NullArgumentException(); } @@ -255,7 +255,7 @@ public class ArrayFieldVector<T extends * @throws NullArgumentException if {@code v} is {@code null}. */ public ArrayFieldVector(ArrayFieldVector<T> v) - throws NullArgumentException { + throws NullArgumentException { if (v == null) { throw new NullArgumentException(); } @@ -272,7 +272,7 @@ public class ArrayFieldVector<T extends * @throws NullArgumentException if {@code v} is {@code null}. */ public ArrayFieldVector(ArrayFieldVector<T> v, boolean deep) - throws NullArgumentException { + throws NullArgumentException { if (v == null) { throw new NullArgumentException(); } @@ -289,7 +289,7 @@ public class ArrayFieldVector<T extends * {@code null}. */ public ArrayFieldVector(ArrayFieldVector<T> v1, ArrayFieldVector<T> v2) - throws NullArgumentException { + throws NullArgumentException { if (v1 == null || v2 == null) { throw new NullArgumentException(); } @@ -308,7 +308,7 @@ public class ArrayFieldVector<T extends * {@code null}. */ public ArrayFieldVector(ArrayFieldVector<T> v1, T[] v2) - throws NullArgumentException { + throws NullArgumentException { if (v1 == null || v2 == null) { throw new NullArgumentException(); } @@ -327,7 +327,7 @@ public class ArrayFieldVector<T extends * {@code null}. */ public ArrayFieldVector(T[] v1, ArrayFieldVector<T> v2) - throws NullArgumentException { + throws NullArgumentException { if (v1 == null || v2 == null) { throw new NullArgumentException(); } @@ -353,7 +353,7 @@ public class ArrayFieldVector<T extends * @see #ArrayFieldVector(Field, FieldElement[], FieldElement[]) */ public ArrayFieldVector(T[] v1, T[] v2) - throws NullArgumentException, ZeroException { + throws NullArgumentException, ZeroException { if (v1 == null || v2 == null) { throw new NullArgumentException(); } @@ -378,7 +378,7 @@ public class ArrayFieldVector<T extends * @see #ArrayFieldVector(FieldElement[], FieldElement[]) */ public ArrayFieldVector(Field<T> field, T[] v1, T[] v2) - throws NullArgumentException, ZeroException { + throws NullArgumentException, ZeroException { if (v1 == null || v2 == null) { throw new NullArgumentException(); } @@ -412,12 +412,7 @@ public class ArrayFieldVector<T extends return new ArrayFieldVector<T>(this, true); } - /** - * {@inheritDoc} - * - * @throws DimensionMismatchException if {@code v} is not the same size as - * {@code this}. - */ + /** {@inheritDoc} */ public FieldVector<T> add(FieldVector<T> v) throws DimensionMismatchException { try { @@ -449,12 +444,7 @@ public class ArrayFieldVector<T extends return new ArrayFieldVector<T>(field, out, false); } - /** - * {@inheritDoc} - * - * @throws DimensionMismatchException if {@code v} is not the same size as - * {@code this}. - */ + /** {@inheritDoc} */ public FieldVector<T> subtract(FieldVector<T> v) throws DimensionMismatchException { try { @@ -486,12 +476,8 @@ public class ArrayFieldVector<T extends return new ArrayFieldVector<T>(field, out, false); } - /** - * {@inheritDoc} - * - * @throws NullArgumentException if {@code d} is {@code null}. - */ - public FieldVector<T> mapAdd(T d) throws NullArgumentException { + /** {@inheritDoc} */ + public FieldVector<T> mapAdd(T d) { T[] out = buildArray(data.length); for (int i = 0; i < data.length; i++) { out[i] = data[i].add(d); @@ -499,24 +485,16 @@ public class ArrayFieldVector<T extends return new ArrayFieldVector<T>(field, out, false); } - /** - * {@inheritDoc} - * - * @throws NullArgumentException if {@code d} is {@code null}. - */ - public FieldVector<T> mapAddToSelf(T d) throws NullArgumentException { + /** {@inheritDoc} */ + public FieldVector<T> mapAddToSelf(T d) { for (int i = 0; i < data.length; i++) { data[i] = data[i].add(d); } return this; } - /** - * {@inheritDoc} - * - * @throws NullArgumentException if {@code d} is {@code null}. - */ - public FieldVector<T> mapSubtract(T d) throws NullArgumentException { + /** {@inheritDoc} */ + public FieldVector<T> mapSubtract(T d) { T[] out = buildArray(data.length); for (int i = 0; i < data.length; i++) { out[i] = data[i].subtract(d); @@ -524,24 +502,16 @@ public class ArrayFieldVector<T extends return new ArrayFieldVector<T>(field, out, false); } - /** - * {@inheritDoc} - * - * @throws NullArgumentException if {@code d} is {@code null}. - */ - public FieldVector<T> mapSubtractToSelf(T d) throws NullArgumentException { + /** {@inheritDoc} */ + public FieldVector<T> mapSubtractToSelf(T d) { for (int i = 0; i < data.length; i++) { data[i] = data[i].subtract(d); } return this; } - /** - * {@inheritDoc} - * - * @throws NullArgumentException if {@code d} is {@code null}. - */ - public FieldVector<T> mapMultiply(T d) throws NullArgumentException { + /** {@inheritDoc} */ + public FieldVector<T> mapMultiply(T d) { T[] out = buildArray(data.length); for (int i = 0; i < data.length; i++) { out[i] = data[i].multiply(d); @@ -549,24 +519,15 @@ public class ArrayFieldVector<T extends return new ArrayFieldVector<T>(field, out, false); } - /** - * {@inheritDoc} - * - * @throws NullArgumentException if {@code d} is {@code null}. - */ - public FieldVector<T> mapMultiplyToSelf(T d) throws NullArgumentException { + /** {@inheritDoc} */ + public FieldVector<T> mapMultiplyToSelf(T d) { for (int i = 0; i < data.length; i++) { data[i] = data[i].multiply(d); } return this; } - /** - * {@inheritDoc} - * - * @throws NullArgumentException if {@code d} is {@code null}. - * @throws MathArithmeticException if {@code d} is zero. - */ + /** {@inheritDoc} */ public FieldVector<T> mapDivide(T d) throws NullArgumentException, MathArithmeticException { if (d == null) { @@ -579,12 +540,7 @@ public class ArrayFieldVector<T extends return new ArrayFieldVector<T>(field, out, false); } - /** - * {@inheritDoc} - * - * @throws NullArgumentException if {@code d} is {@code null}. - * @throws MathArithmeticException if {@code d} is zero. - */ + /** {@inheritDoc} */ public FieldVector<T> mapDivideToSelf(T d) throws NullArgumentException, MathArithmeticException { if (d == null) { @@ -596,11 +552,7 @@ public class ArrayFieldVector<T extends return this; } - /** - * {@inheritDoc} - * - * @throws MathArithmeticException if {@code d} is zero. - */ + /** {@inheritDoc} */ public FieldVector<T> mapInv() throws MathArithmeticException { T[] out = buildArray(data.length); final T one = field.getOne(); @@ -614,11 +566,7 @@ public class ArrayFieldVector<T extends return new ArrayFieldVector<T>(field, out, false); } - /** - * {@inheritDoc} - * - * @throws MathArithmeticException if {@code d} is zero. - */ + /** {@inheritDoc} */ public FieldVector<T> mapInvToSelf() throws MathArithmeticException { final T one = field.getOne(); for (int i = 0; i < data.length; i++) { @@ -631,12 +579,7 @@ public class ArrayFieldVector<T extends return this; } - /** - * {@inheritDoc} - * - * @throws DimensionMismatchException if {@code v} is not the same size as - * {@code this}. - */ + /** {@inheritDoc} */ public FieldVector<T> ebeMultiply(FieldVector<T> v) throws DimensionMismatchException { try { @@ -668,13 +611,7 @@ public class ArrayFieldVector<T extends return new ArrayFieldVector<T>(field, out, false); } - /** - * {@inheritDoc} - * - * @throws DimensionMismatchException if {@code v} is not the same size as - * {@code this}. - * @throws MathArithmeticException if one entry of {@code v} is zero. - */ + /** {@inheritDoc} */ public FieldVector<T> ebeDivide(FieldVector<T> v) throws DimensionMismatchException, MathArithmeticException { try { @@ -729,13 +666,9 @@ public class ArrayFieldVector<T extends return data; } - /** - * {@inheritDoc} - * - * @throws DimensionMismatchException if {@code v} is not the same size as - * {@code this}. - */ - public T dotProduct(FieldVector<T> v) throws DimensionMismatchException { + /** {@inheritDoc} */ + public T dotProduct(FieldVector<T> v) + throws DimensionMismatchException { try { return dotProduct((ArrayFieldVector<T>) v); } catch (ClassCastException cce) { @@ -765,13 +698,7 @@ public class ArrayFieldVector<T extends return dot; } - /** - * {@inheritDoc} - * - * @throws DimensionMismatchException if {@code v} is not the same size as - * {@code this}. - * @throws MathArithmeticException if {@code v} is the null vector. - */ + /** {@inheritDoc} */ public FieldVector<T> projection(FieldVector<T> v) throws DimensionMismatchException, MathArithmeticException { return v.mapMultiply(dotProduct(v).divide(v.dotProduct(v))); @@ -859,12 +786,7 @@ public class ArrayFieldVector<T extends return new ArrayFieldVector<T>(field, out, false); } - /** - * {@inheritDoc} - * - * @throws OutOfRangeException if the index is not valid. - * @throws NotPositiveException if the number of elements is not positive. - */ + /** {@inheritDoc} */ public FieldVector<T> getSubVector(int index, int n) throws OutOfRangeException, NotPositiveException { if (n < 0) { @@ -889,11 +811,7 @@ public class ArrayFieldVector<T extends } } - /** - * {@inheritDoc} - * - * @throws OutOfRangeException if the index is not valid. - */ + /** {@inheritDoc} */ public void setSubVector(int index, FieldVector<T> v) throws OutOfRangeException { try { try { Modified: commons/proper/math/trunk/src/main/java/org/apache/commons/math3/linear/FieldVector.java URL: http://svn.apache.org/viewvc/commons/proper/math/trunk/src/main/java/org/apache/commons/math3/linear/FieldVector.java?rev=1384471&r1=1384470&r2=1384471&view=diff ============================================================================== --- commons/proper/math/trunk/src/main/java/org/apache/commons/math3/linear/FieldVector.java (original) +++ commons/proper/math/trunk/src/main/java/org/apache/commons/math3/linear/FieldVector.java Thu Sep 13 19:00:51 2012 @@ -18,6 +18,11 @@ package org.apache.commons.math3.linear; import org.apache.commons.math3.Field; import org.apache.commons.math3.FieldElement; +import org.apache.commons.math3.exception.DimensionMismatchException; +import org.apache.commons.math3.exception.MathArithmeticException; +import org.apache.commons.math3.exception.NotPositiveException; +import org.apache.commons.math3.exception.NullArgumentException; +import org.apache.commons.math3.exception.OutOfRangeException; /** * Interface defining a field-valued vector with basic algebraic operations. @@ -58,161 +63,125 @@ public interface FieldVector<T extends F FieldVector<T> copy(); /** - * Compute the sum of {@code this} and {@code v}. Implementations should throw - * {@link org.apache.commons.math3.exception.DimensionMismatchException} if - * {@code v} is not the same size as {@code this}. - * + * Compute the sum of {@code this} and {@code v}. * @param v vector to be added * @return {@code this + v} + * @throws DimensionMismatchException if {@code v} is not the same size as + * {@code this} */ - FieldVector<T> add(FieldVector<T> v); + FieldVector<T> add(FieldVector<T> v) throws DimensionMismatchException; /** - * Compute {@code this} minus {@code v}. Implementations should throw - * {@link org.apache.commons.math3.exception.DimensionMismatchException} if - * {@code v} is not the same size as {@code this} - * + * Compute {@code this} minus {@code v}. * @param v vector to be subtracted * @return {@code this + v} + * @throws DimensionMismatchException if {@code v} is not the same size as + * {@code this} */ - FieldVector<T> subtract(FieldVector<T> v); + FieldVector<T> subtract(FieldVector<T> v) throws DimensionMismatchException; /** - * Map an addition operation to each entry. Implementations should throw - * {@link org.apache.commons.math3.exception.NullArgumentException} if - * {@code d} is {@code null}. - * + * Map an addition operation to each entry. * @param d value to be added to each entry * @return {@code this + d} */ FieldVector<T> mapAdd(T d); /** - * Map an addition operation to each entry. The instance <strong>is</strong> - * changed by this method. Implementations should throw - * {@link org.apache.commons.math3.exception.NullArgumentException} if - * {@code d} is {@code null}. - * + * Map an addition operation to each entry. + * <p>The instance <strong>is</strong> changed by this method.</p> * @param d value to be added to each entry * @return for convenience, return {@code this} */ FieldVector<T> mapAddToSelf(T d); /** - * Map a subtraction operation to each entry. Implementations should throw - * {@link org.apache.commons.math3.exception.NullArgumentException} if - * {@code d} is {@code null}. - * + * Map a subtraction operation to each entry. * @param d value to be subtracted to each entry * @return {@code this - d} */ FieldVector<T> mapSubtract(T d); /** - * Map a subtraction operation to each entry. The instance - * <strong>is</strong> changed by this method. Implementations should throw - * {@link org.apache.commons.math3.exception.NullArgumentException} if - * {@code d} is {@code null}. - * + * Map a subtraction operation to each entry. + * <p>The instance <strong>is</strong> changed by this method.</p> * @param d value to be subtracted to each entry * @return for convenience, return {@code this} */ FieldVector<T> mapSubtractToSelf(T d); /** - * Map a multiplication operation to each entry. Implementations should throw - * {@link org.apache.commons.math3.exception.NullArgumentException} if - * {@code d} is {@code null}. - * + * Map a multiplication operation to each entry. * @param d value to multiply all entries by * @return {@code this * d} */ FieldVector<T> mapMultiply(T d); /** - * Map a multiplication operation to each entry. The instance - * <strong>is</strong> changed by this method. Implementations should throw - * {@link org.apache.commons.math3.exception.NullArgumentException} if - * {@code d} is {@code null}. - * + * Map a multiplication operation to each entry. + * <p>The instance <strong>is</strong> changed by this method.</p> * @param d value to multiply all entries by * @return for convenience, return {@code this} */ FieldVector<T> mapMultiplyToSelf(T d); /** - * Map a division operation to each entry. Implementations should throw - * <ul> - * <li>{@link org.apache.commons.math3.exception.NullArgumentException} if - * {@code d} is {@code null},</li> - * <li>{@link org.apache.commons.math3.exception.MathArithmeticException} if - * {@code d} is zero.</li> - * </ul> - * + * Map a division operation to each entry. * @param d value to divide all entries by * @return {@code this / d} + * @throws NullArgumentException if {@code d} is {@code null}. + * @throws MathArithmeticException if {@code d} is zero. */ - FieldVector<T> mapDivide(T d); + FieldVector<T> mapDivide(T d) + throws NullArgumentException, MathArithmeticException; /** - * Map a division operation to each entry. The instance <strong>is</strong> - * changed by this method. - * <ul> - * <li>{@link org.apache.commons.math3.exception.NullArgumentException} if - * {@code d} is {@code null},</li> - * <li>{@link org.apache.commons.math3.exception.MathArithmeticException} if - * {@code d} is zero.</li> - * </ul> - * + * Map a division operation to each entry. + * <p>The instance <strong>is</strong> changed by this method.</p> * @param d value to divide all entries by * @return for convenience, return {@code this} + * @throws NullArgumentException if {@code d} is {@code null}. + * @throws MathArithmeticException if {@code d} is zero. */ - FieldVector<T> mapDivideToSelf(T d); + FieldVector<T> mapDivideToSelf(T d) + throws NullArgumentException, MathArithmeticException; /** - * Map the 1/x function to each entry. Implementations should throw - * {@link org.apache.commons.math3.exception.MathArithmeticException} if - * one of the entries is zero. - * + * Map the 1/x function to each entry. * @return a vector containing the result of applying the function to each * entry. + * @throws MathArithmeticException if one of the entries is zero. */ - FieldVector<T> mapInv(); + FieldVector<T> mapInv() throws MathArithmeticException; /** - * Map the 1/x function to each entry. The instance <strong>is</strong> - * changed by this method. Implementations should throw - * {@link org.apache.commons.math3.exception.MathArithmeticException} if - * one of the entries is zero. - * + * Map the 1/x function to each entry. + * <p>The instance <strong>is</strong> changed by this method.</p> * @return for convenience, return {@code this} + * @throws MathArithmeticException if one of the entries is zero. */ - FieldVector<T> mapInvToSelf(); + FieldVector<T> mapInvToSelf() throws MathArithmeticException; /** - * Element-by-element multiplication. Implementations should throw - * {@link org.apache.commons.math3.exception.DimensionMismatchException} if - * {@code v} is not the same size as {@code this}. - * + * Element-by-element multiplication. * @param v vector by which instance elements must be multiplied * @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} */ - FieldVector<T> ebeMultiply(FieldVector<T> v); + FieldVector<T> ebeMultiply(FieldVector<T> v) + throws DimensionMismatchException; /** - * Element-by-element division. Implementations should throw - * <ul> - * <li>{@link org.apache.commons.math3.exception.DimensionMismatchException} - * if {@code v} is not the same size as {@code this},</li> - * <li>{@link org.apache.commons.math3.exception.MathArithmeticException} - * if one entry of {@code v} is zero. - * </li> - * </ul> - * + * Element-by-element division. * @param v vector by which instance elements must be divided * @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} + * @throws MathArithmeticException if one entry of {@code v} is zero. */ - FieldVector<T> ebeDivide(FieldVector<T> v); + FieldVector<T> ebeDivide(FieldVector<T> v) + throws DimensionMismatchException, MathArithmeticException; /** * Returns vector entries as a T array. @@ -221,30 +190,23 @@ public interface FieldVector<T extends F T[] getData(); /** - * Compute the dot product. Implementations should throw - * {@link org.apache.commons.math3.exception.DimensionMismatchException} if - * {@code v} is not the same size as {@code this}. - * + * Compute the dot product. * @param v vector with which dot product should be computed * @return the scalar dot product of {@code this} and {@code v} + * @throws DimensionMismatchException if {@code v} is not the same size as + * {@code this} */ - T dotProduct(FieldVector<T> v); + T dotProduct(FieldVector<T> v) throws DimensionMismatchException; - /** - * Find the orthogonal projection of this vector onto another vector. - * Implementations should throw - * <ul> - * <li>{@link org.apache.commons.math3.exception.DimensionMismatchException} - * if {@code v} is not the same size as {@code this},</li> - * <li>{@link org.apache.commons.math3.exception.MathArithmeticException} - * if {@code v} is the null vector. - * </li> - * </ul> - * + /** 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} + * @throws MathArithmeticException if {@code v} is the null vector. */ - FieldVector<T> projection(FieldVector<T> v); + FieldVector<T> projection(FieldVector<T> v) + throws DimensionMismatchException, MathArithmeticException; /** * Compute the outer product. @@ -254,30 +216,23 @@ public interface FieldVector<T extends F FieldMatrix<T> outerProduct(FieldVector<T> v); /** - * Returns the entry in the specified index. Implementations should throw - * {@link org.apache.commons.math3.exception.OutOfRangeException} if the - * index is not valid. + * Returns the entry in the specified index. * * @param index Index location of entry to be fetched. * @return the vector entry at {@code index}. + * @throws OutOfRangeException if the index is not valid. * @see #setEntry(int, FieldElement) */ - T getEntry(int index); + T getEntry(int index) throws OutOfRangeException; /** - * Set a single element. Implementations should throw - * <ul> - * <li>{@link org.apache.commons.math3.exception.OutOfRangeException} if the - * index is not valid,</li> - * <li>{@link org.apache.commons.math3.exception.NullArgumentException} if - * the value is {@code null}.</li> - * </ul> - * + * Set a single element. * @param index element index. * @param value new value for the element. + * @throws OutOfRangeException if the index is not valid. * @see #getEntry(int) */ - void setEntry(int index, T value); + void setEntry(int index, T value) throws OutOfRangeException; /** * Returns the size of the vector. @@ -300,29 +255,23 @@ public interface FieldVector<T extends F FieldVector<T> append(T d); /** - * Get a subvector from consecutive elements. Implementations should throw - * <ul> - * <li>{@link org.apache.commons.math3.exception.OutOfRangeException} if the - * index is not valid,</li> - * <li>{@link org.apache.commons.math3.exception.NotPositiveException} if - * the number of elements is not positive.</li> - * </ul> - * + * Get a subvector from consecutive elements. * @param index index of first element. * @param n number of elements to be retrieved. * @return a vector containing n elements. + * @throws OutOfRangeException if the index is not valid. + * @throws NotPositiveException if the number of elements if not positive. */ - FieldVector<T> getSubVector(int index, int n); + FieldVector<T> getSubVector(int index, int n) + throws OutOfRangeException, NotPositiveException; /** - * Set a set of consecutive elements. Implementations should throw - * {@link org.apache.commons.math3.exception.OutOfRangeException} if the - * index is not valid. - * + * Set a set of consecutive elements. * @param index index of first element to be set. * @param v vector containing the values to set. + * @throws OutOfRangeException if the index is not valid. */ - void setSubVector(int index, FieldVector<T> v); + void setSubVector(int index, FieldVector<T> v) throws OutOfRangeException; /** * Set all elements to a single value.