Add assign(DenseVector)/assign(DenseMatrix) function to DenseVector/DenseMatrix
-------------------------------------------------------------------------------

                 Key: MAHOUT-435
                 URL: https://issues.apache.org/jira/browse/MAHOUT-435
             Project: Mahout
          Issue Type: New Feature
          Components: Math
            Reporter: Max Heimel
            Priority: Minor


This new feature would add a new overloaded assign function to 
(Dense)Vector/(Dense)Matrix, that allows to assign the content of another  
(Dense)Vector / (Dense)Matrix by overwriting the existing double[][] array. 

Compared to using .clone(), this feature would reduce the number of memory 
allocations. For example in case of an iterative algorithm, that needs to check 
for convergence;

{code:title=Convergence check using .clone()|borderStyle=solid}
Densematrix newMatrix = oldMatrix.clone();
while(!converged)
{
    // perform iteration computation on newMatrix
    converged=checkConvergence(newMatrix,oldMatrix);
    oldMatrix = newMatrix.clone(); // results in memory allocation
}
{code}

{code:title=Convergence check using .assign(Matrix)|borderStyle=solid}
Densematrix newMatrix = oldMatrix.clone();
while(!converged)
{
    // perform iteration computation on newMatrix
    converged=checkConvergence(newMatrix,oldMatrix);
    oldMatrix.assign(newMatrix); // no memory allocation
}
{code}

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.

Reply via email to