In Blas, the method DAXPY computes an in-place linear combination of two vectors. More precisely, a call to DAXPY(a, x, y) updates vector y with the value of a * x + y. This can lead to very compact code, which I feel the need for in Commons-Math. However, DAXPY also has its limitations. For example, it cannot perform the other combination y <- x + a * y.
I think it would be useful that RealVector had a method for computing a * this + b * y, and storing the result in this. In the spirit of the mapToSelf method, I propose to create two new methods in Interface RealVector
The former would return a new vector v such that
and the latter would update this,
Emulating DAXPY would then simply be a matter of implementing the appropriate bivariate function.
While we are at it, how about