//! Sets ownership.
 int SetOwnership(bool ownership)
 {
   IFPACK2_RETURN(-1);
 }
 //! Scales the Tpetra_RowMatrix on the right with a Tpetra_Vector x (NOT IMPLEMENTED).
 virtual int RightScale(const Tpetra_Vector& x) 
 {
   IFPACK2_RETURN(-1); // not implemented
 }
 /* Returns the quantity \f$ \| A \|_1\f$ such that
    \f[\| A \|_1= \max_{1\lej\len} \sum_{j=1}^n |a_{ij}| \f].
    */ 
 virtual double NormOne() const
 {
   IFPACK2_RETURN(-1.0);
 }
 //! Computes the sum of absolute values of the columns of the Tpetra_RowMatrix, results returned in x (NOT IMPLEMENTED).
 virtual int InvColSums(Tpetra_Vector& x) const
 {
   IFPACK2_RETURN(-1); // not implemented
 }
  //! Returns result of a local-only solve using a triangular Tpetra_RowMatrix with Tpetra_MultiVectors X and Y (NOT IMPLEMENTED).
  virtual int Solve(bool Upper, bool Trans, bool UnitDiagonal, const Tpetra_MultiVector<Scalar,LocalOrdinal,GlobalOrdinal,Node>& X, 
		    Tpetra_MultiVector<Scalar,LocalOrdinal,GlobalOrdinal,Node>& Y) const
  {
    IFPACK2_RETURN(-1); // not implemented 
  }
 virtual int ExtractDiagonalCopy(Tpetra_Vector & Diagonal) const
 {
   IFPACK2_RETURN(A_->ExtractDiagonalCopy(Diagonal));
 }
  virtual int Apply(const Tpetra_MultiVector<Scalar,LocalOrdinal,GlobalOrdinal,Node>& X,
		    Tpetra_MultiVector<Scalar,LocalOrdinal,GlobalOrdinal,Node>& Y) const
  {
    IFPACK2_RETURN(Multiply(UseTranspose(),X,Y));
  }
//==============================================================================
int Ifpack2_ReorderFilter::
Apply(const Tpetra_MultiVector<Scalar,LocalOrdinal,GlobalOrdinal,Node>& X, Tpetra_MultiVector<Scalar,LocalOrdinal,GlobalOrdinal,Node>& Y) const
{
  IFPACK2_RETURN(Multiply(UseTranspose(),X,Y));
}