Hi,
while testing the implementation of UnmodifiableRealVector which has
previously been discussed on Commons Developers, I came across the
following problem. The simple code below
=====
import org.apache.commons.math.linear.OpenMapRealVector;
import org.apache.commons.math.linear.RealVector;
public class DemoBugOpenMapRealVector {
public static void main(String[] args) {
final RealVector u = new OpenMapRealVector(3, 1E-6);
u.setEntry(0, 1.);
u.setEntry(1, 0.);
u.setEntry(2, 2.);
final RealVector v = new OpenMapRealVector(3, 1E-6);
v.setEntry(0, 0.);
v.setEntry(1, 3.);
v.setEntry(2, 0.);
System.out.println(u);
System.out.println(v);
System.out.println(u.ebeMultiply(v));
}
}
=====
Raises an exception
Exception in thread "main"
org.apache.commons.math.MathRuntimeException$6: map has been modified
while iterating
at
org.apache.commons.math.MathRuntimeException.createConcurrentModificationException(MathRuntimeException.java:373)
at
org.apache.commons.math.util.OpenIntToDoubleHashMap$Iterator.advance(OpenIntToDoubleHashMap.java:564)
at
org.apache.commons.math.linear.OpenMapRealVector.ebeMultiply(OpenMapRealVector.java:372)
at DemoBugOpenMapRealVector.main(DemoBugOpenMapRealVector.java:16)
I think I misunderstood the use of OpenMapRealVector. Could you help me?
Sebastien
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]