// This file is part of Eigen, a lightweight C++ template library // for linear algebra. Eigen itself is part of the KDE project. // // Copyright (C) 2006-2008 Benoit Jacob // // Eigen is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 3 of the License, or (at your option) any later version. // // Alternatively, you can redistribute it and/or // modify it under the terms of the GNU General Public License as // published by the Free Software Foundation; either version 2 of // the License, or (at your option) any later version. // // Eigen is distributed in the hope that it will be useful, but WITHOUT ANY // WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS // FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License or the // GNU General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License and a copy of the GNU General Public License along with // Eigen. If not, see . #ifndef EIGEN_IO_H #define EIGEN_IO_H template std::ostream & ei_print_matrix (std::ostream & s, const MatrixBase & m) { for(int i = 0; i < m.rows(); i++) { s << m.coeff(i, 0); for(int j = 1; j < m.cols(); j++) s << " " << m.coeff(i, j); if( i < m.rows() - 1) s << "\n"; } return s; } /** \relates MatrixBase * * Outputs the matrix, laid out as an array as usual, to the given stream. */ template std::ostream & operator << (std::ostream & s, const MatrixBase & m) { return ei_print_matrix(s, m.eval()); } #endif // EIGEN_IO_H