Example #1
0
void NOX::Epetra::Scaling::applyLeftScaling(const Epetra_Vector& input,
                        Epetra_Vector& result)
{
  if (scaleVector.size() == 0) {
    result = input;
  }
  else {
    Epetra_Vector* diagonal = 0;
    for (unsigned int i = 0; i < scaleVector.size(); i ++) {

      if (scaleType[i] == Left) {
    diagonal = scaleVector[i].get();

    tmpVectorPtr->Reciprocal(*diagonal);

    result.Multiply(1.0, input, *tmpVectorPtr, 0.0);
      }
    }
  }
}