[ 
https://issues.apache.org/jira/browse/MATH-1249?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14624576#comment-14624576
 ] 

Gilles commented on MATH-1249:
------------------------------

bq. \[...\] aftre recompiling without the FINAL keyword for 
BlockRealMatrix.BLOCK_SIZE) \[...\]

So, *you* introduced the bug...
"final" is there for a good reason: it _cannot_ be changed after construction!

Discussion and questions about usage or design should go through the project's 
MLs:
  http://commons.apache.org/proper/commons-math/mail-lists.html


> BlockRealMatrix BLOCK_SIZE value change
> ---------------------------------------
>
>                 Key: MATH-1249
>                 URL: https://issues.apache.org/jira/browse/MATH-1249
>             Project: Commons Math
>          Issue Type: Bug
>            Reporter: alberto trivellato
>            Priority: Minor
>
> Changing the value of the filed BlockRealMatrix.BLOCK_SIZE takes to a 
> java.lang.ArrayIndexOutOfBoundsException in the method multiply(); The 
> thest is the following (aftre recompiling without the FINAL keyword for 
> BlockRealMatrix.BLOCK_SIZE):
> public void testBlockRealMatrix() throws Exception{
>               logger.debug("testBlockRealMatrix");
>               
>               long seed = 12345L;
>               Random random = new Random(seed);
>               int rows = 100;
>               int cols = 100;
>               double[][] data = new double[rows][cols];
>               for(int i=0; i<rows; i++){
>                       for(int j=0; j<cols; j++){
>                               data[i][j] = random.nextDouble();
>                       }
>               }
>               
>               BlockRealMatrix m1 = new BlockRealMatrix(data);
>               BlockRealMatrix m2 = new BlockRealMatrix(data);
>               
>               BlockRealMatrix.BLOCK_SIZE = 52;
>               long t0 = System.currentTimeMillis();
>               m2.multiply(m1);
>               logger.debug("time : " + (System.currentTimeMillis() - t0));
>               
>               BlockRealMatrix.BLOCK_SIZE = 26;
>               t0 = System.currentTimeMillis();
>               m2.multiply(m1);
>               logger.debug("time : " + (System.currentTimeMillis() - t0));
>               
>               BlockRealMatrix.BLOCK_SIZE = 104;
>               t0 = System.currentTimeMillis();
>               m2.multiply(m1);
>               logger.debug("time : " + (System.currentTimeMillis() - t0));
>       }



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to