/** {@inheritDoc} */ @Override public int hashCode() { final int prime = 31; int result = 1; result = prime * result + ((field == null) ? 0 : field.hashCode()); result = prime * result + virtualSize; OpenIntToFieldHashMap<T>.Iterator iter = entries.iterator(); while (iter.hasNext()) { iter.advance(); int temp = iter.value().hashCode(); result = prime * result + temp; } return result; }
/** {@inheritDoc} */ public T[] getData() { T[] res = buildArray(virtualSize); OpenIntToFieldHashMap<T>.Iterator iter = entries.iterator(); while (iter.hasNext()) { iter.advance(); res[iter.key()] = iter.value(); } return res; }
/** {@inheritDoc} */ public T[] getData() { T[] res = buildArray(virtualSize); OpenIntToFieldHashMap<T>.Iterator iter = entries.iterator(); while (iter.hasNext()) { iter.advance(); res[iter.key()] = iter.value(); } return res; }
/** {@inheritDoc} */ public FieldVector<T> mapDivideToSelf(T d) { OpenIntToFieldHashMap<T>.Iterator iter = entries.iterator(); while (iter.hasNext()) { iter.advance(); entries.put(iter.key(), iter.value().divide(d)); } return this; }
/** {@inheritDoc} */ public FieldVector<T> mapMultiplyToSelf(T d) { OpenIntToFieldHashMap<T>.Iterator iter = entries.iterator(); while (iter.hasNext()) { iter.advance(); entries.put(iter.key(), iter.value().multiply(d)); } return this; }
/** {@inheritDoc} */ public FieldVector<T> mapMultiplyToSelf(T d) { OpenIntToFieldHashMap<T>.Iterator iter = entries.iterator(); while (iter.hasNext()) { iter.advance(); entries.put(iter.key(), iter.value().multiply(d)); } return this; }
/** {@inheritDoc} */ public FieldVector<T> mapDivideToSelf(T d) { OpenIntToFieldHashMap<T>.Iterator iter = entries.iterator(); while (iter.hasNext()) { iter.advance(); entries.put(iter.key(), iter.value().divide(d)); } return this; }
/** * Construct a vector by appending a vector to this vector. * @param v vector to append to this one. * @return a new vector */ public FieldVector<T> append(SparseFieldVector<T> v) { SparseFieldVector<T> res = new SparseFieldVector<T>(this, v.getDimension()); OpenIntToFieldHashMap<T>.Iterator iter = v.entries.iterator(); while (iter.hasNext()) { iter.advance(); res.setEntry(iter.key() + virtualSize, iter.value()); } return res; }
/** {@inheritDoc} */ public FieldVector<T> ebeMultiply(T[] v) throws IllegalArgumentException { checkVectorDimensions(v.length); SparseFieldVector<T> res = new SparseFieldVector<T>(this); OpenIntToFieldHashMap<T>.Iterator iter = res.entries.iterator(); while (iter.hasNext()) { iter.advance(); res.setEntry(iter.key(), iter.value().multiply(v[iter.key()])); } return res; }
/** {@inheritDoc} */ public T dotProduct(T[] v) throws IllegalArgumentException { checkVectorDimensions(v.length); T res = field.getZero(); OpenIntToFieldHashMap<T>.Iterator iter = entries.iterator(); while (iter.hasNext()) { int idx = iter.key(); T value = field.getZero(); if (idx < v.length) { value = v[idx]; } res = res.add(value.multiply(iter.value())); } return res; }
/** {@inheritDoc} */ public FieldVector<T> ebeDivide(T[] v) throws IllegalArgumentException { checkVectorDimensions(v.length); SparseFieldVector<T> res = new SparseFieldVector<T>(this); OpenIntToFieldHashMap<T>.Iterator iter = res.entries.iterator(); while (iter.hasNext()) { iter.advance(); res.setEntry(iter.key(), iter.value().divide(v[iter.key()])); } return res; }
/** {@inheritDoc} */ public FieldMatrix<T> outerProduct(T[] v) throws IllegalArgumentException { checkVectorDimensions(v.length); FieldMatrix<T> res = new SparseFieldMatrix<T>(field, virtualSize, virtualSize); OpenIntToFieldHashMap<T>.Iterator iter = entries.iterator(); while (iter.hasNext()) { iter.advance(); int row = iter.key(); FieldElement<T>value = iter.value(); for (int col = 0; col < virtualSize; col++) { res.setEntry(row, col, value.multiply(v[col])); } } return res; }
/** {@inheritDoc} */ public FieldVector<T> ebeMultiply(T[] v) throws IllegalArgumentException { checkVectorDimensions(v.length); SparseFieldVector<T> res = new SparseFieldVector<T>(this); OpenIntToFieldHashMap<T>.Iterator iter = res.entries.iterator(); while (iter.hasNext()) { iter.advance(); res.setEntry(iter.key(), iter.value().multiply(v[iter.key()])); } return res; }
/** {@inheritDoc} */ public FieldVector<T> ebeDivide(T[] v) throws IllegalArgumentException { checkVectorDimensions(v.length); SparseFieldVector<T> res = new SparseFieldVector<T>(this); OpenIntToFieldHashMap<T>.Iterator iter = res.entries.iterator(); while (iter.hasNext()) { iter.advance(); res.setEntry(iter.key(), iter.value().divide(v[iter.key()])); } return res; }
/** {@inheritDoc} */ public T dotProduct(FieldVector<T> v) throws IllegalArgumentException { checkVectorDimensions(v.getDimension()); T res = field.getZero(); OpenIntToFieldHashMap<T>.Iterator iter = entries.iterator(); while (iter.hasNext()) { iter.advance(); res = res.add(v.getEntry(iter.key()).multiply(iter.value())); } return res; }
/** {@inheritDoc} */ public T dotProduct(FieldVector<T> v) throws IllegalArgumentException { checkVectorDimensions(v.getDimension()); T res = field.getZero(); OpenIntToFieldHashMap<T>.Iterator iter = entries.iterator(); while (iter.hasNext()) { iter.advance(); res = res.add(v.getEntry(iter.key()).multiply(iter.value())); } return res; }
/** {@inheritDoc} */ public FieldVector<T> ebeDivide(FieldVector<T> v) throws IllegalArgumentException { checkVectorDimensions(v.getDimension()); SparseFieldVector<T> res = new SparseFieldVector<T>(this); OpenIntToFieldHashMap<T>.Iterator iter = res.entries.iterator(); while (iter.hasNext()) { iter.advance(); res.setEntry(iter.key(), iter.value().divide(v.getEntry(iter.key()))); } return res; }
/** {@inheritDoc} */ public FieldVector<T> ebeMultiply(FieldVector<T> v)throws IllegalArgumentException { checkVectorDimensions(v.getDimension()); SparseFieldVector<T> res = new SparseFieldVector<T>(this); OpenIntToFieldHashMap<T>.Iterator iter = res.entries.iterator(); while (iter.hasNext()) { iter.advance(); res.setEntry(iter.key(), iter.value().multiply(v.getEntry(iter.key()))); } return res; }
/** {@inheritDoc} */ public FieldVector<T> ebeMultiply(FieldVector<T> v)throws IllegalArgumentException { checkVectorDimensions(v.getDimension()); SparseFieldVector<T> res = new SparseFieldVector<T>(this); OpenIntToFieldHashMap<T>.Iterator iter = res.entries.iterator(); while (iter.hasNext()) { iter.advance(); res.setEntry(iter.key(), iter.value().multiply(v.getEntry(iter.key()))); } return res; }
/** {@inheritDoc} */ public FieldVector<T> ebeDivide(FieldVector<T> v) throws IllegalArgumentException { checkVectorDimensions(v.getDimension()); SparseFieldVector<T> res = new SparseFieldVector<T>(this); OpenIntToFieldHashMap<T>.Iterator iter = res.entries.iterator(); while (iter.hasNext()) { iter.advance(); res.setEntry(iter.key(), iter.value().divide(v.getEntry(iter.key()))); } return res; }