@Override public InfiniteVector<KeyType> dotTimes( final InfiniteVector<KeyType> other) { final InfiniteVector<KeyType> result = this.clone(); result.dotTimesEquals(other); return result; }
@Override public void dotTimesEquals( final InfiniteVector<KeyType> other) { for (Map.Entry<KeyType, MutableDouble> entry : this.map.entrySet()) { final KeyType key = entry.getKey(); final MutableDouble value = entry.getValue(); final double thisValue = value.value; final double otherValue = other.get(key); value.value = thisValue * otherValue; } }
@Override public InfiniteVector<KeyType> minus( final InfiniteVector<KeyType> other) { final InfiniteVector<KeyType> result = this.clone(); result.minusEquals(other); return result; }
@Override public void scaledMinusEquals( final double scaleFactor, final InfiniteVector<KeyType> other) { for (ScalarMap.Entry<KeyType> entry : other.entrySet()) { this.decrement(entry.getKey(), scaleFactor * entry.getValue()); } }
@Override public double euclideanDistanceSquared( final InfiniteVector<KeyType> other) { return this.minus(other).norm2Squared(); }
@Override public InfiniteVector<KeyType> negative() { final InfiniteVector<KeyType> result = this.clone(); result.negativeEquals(); return result; }
@Override public InfiniteVector<KeyType> plus( final InfiniteVector<KeyType> other) { final InfiniteVector<KeyType> result = this.clone(); result.plusEquals(other); return result; }
@Override public InfiniteVector<KeyType> scaledMinus( final double scaleFactor, final InfiniteVector<KeyType> other) { final InfiniteVector<KeyType> result = this.clone(); result.scaledMinusEquals(scaleFactor, other); return result; }
@Override public InfiniteVector<KeyType> scale( final double scaleFactor) { final InfiniteVector<KeyType> result = this.clone(); result.scaleEquals(scaleFactor); return result; }
@Override public InfiniteVector<KeyType> scaledPlus( final double scaleFactor, final InfiniteVector<KeyType> other) { final InfiniteVector<KeyType> result = this.clone(); result.scaledPlusEquals(scaleFactor, other); return result; }
@Override public void scaledPlusEquals( final double scaleFactor, final InfiniteVector<KeyType> other) { for (ScalarMap.Entry<KeyType> entry : other.entrySet()) { this.increment(entry.getKey(), scaleFactor * entry.getValue()); } }
@Override public double euclideanDistanceSquared( final InfiniteVector<KeyType> other) { return this.minus(other).norm2Squared(); }
@Override public InfiniteVector<KeyType> negative() { final InfiniteVector<KeyType> result = this.clone(); result.negativeEquals(); return result; }
@Override public InfiniteVector<KeyType> plus( final InfiniteVector<KeyType> other) { final InfiniteVector<KeyType> result = this.clone(); result.plusEquals(other); return result; }
@Override public InfiniteVector<KeyType> scaledMinus( final double scaleFactor, final InfiniteVector<KeyType> other) { final InfiniteVector<KeyType> result = this.clone(); result.scaledMinusEquals(scaleFactor, other); return result; }
@Override public InfiniteVector<KeyType> scale( final double scaleFactor) { final InfiniteVector<KeyType> result = this.clone(); result.scaleEquals(scaleFactor); return result; }
@Override public InfiniteVector<KeyType> scaledPlus( final double scaleFactor, final InfiniteVector<KeyType> other) { final InfiniteVector<KeyType> result = this.clone(); result.scaledPlusEquals(scaleFactor, other); return result; }
@Override public void scaledPlusEquals( final double scaleFactor, final InfiniteVector<KeyType> other) { for (ScalarMap.Entry<KeyType> entry : other.entrySet()) { this.increment(entry.getKey(), scaleFactor * entry.getValue()); } }
@Override public double euclideanDistanceSquared( final InfiniteVector<KeyType> other) { return this.minus(other).norm2Squared(); }
@Override public void dotTimesEquals( final InfiniteVector<KeyType> other) { for (Map.Entry<KeyType, MutableDouble> entry : this.map.entrySet()) { final KeyType key = entry.getKey(); final MutableDouble value = entry.getValue(); final double thisValue = value.value; final double otherValue = other.get(key); value.value = thisValue * otherValue; } }