$search
00001 // Copyright (C) 2008-2011 NICTA (www.nicta.com.au) 00002 // Copyright (C) 2008-2011 Conrad Sanderson 00003 // 00004 // This file is part of the Armadillo C++ library. 00005 // It is provided without any warranty of fitness 00006 // for any purpose. You can redistribute this file 00007 // and/or modify it under the terms of the GNU 00008 // Lesser General Public License (LGPL) as published 00009 // by the Free Software Foundation, either version 3 00010 // of the License or (at your option) any later version. 00011 // (see http://www.opensource.org/licenses for more info) 00012 00013 00016 00017 00018 00019 class arma_ostream_state 00020 { 00021 private: 00022 00023 const ios::fmtflags orig_flags; 00024 const std::streamsize orig_precision; 00025 const std::streamsize orig_width; 00026 const char orig_fill; 00027 00028 00029 public: 00030 00031 inline arma_ostream_state(const std::ostream& o); 00032 00033 inline void restore(std::ostream& o) const; 00034 }; 00035 00036 00037 00038 class arma_ostream 00039 { 00040 public: 00041 00042 template<typename eT> inline static std::streamsize modify_stream(std::ostream& o, const eT* data, const uword n_elem); 00043 template<typename T> inline static std::streamsize modify_stream(std::ostream& o, const std::complex<T>* data, const uword n_elem); 00044 00045 template<typename eT> inline static void print_elem_zero(std::ostream& o); 00046 00047 template<typename eT> arma_inline static void print_elem(std::ostream& o, const eT& x); 00048 template<typename T> inline static void print_elem(std::ostream& o, const std::complex<T>& x); 00049 00050 template<typename eT> inline static void print(std::ostream& o, const Mat<eT>& m, const bool modify); 00051 template<typename eT> inline static void print(std::ostream& o, const Cube<eT>& m, const bool modify); 00052 00053 template<typename oT> inline static void print(std::ostream& o, const field<oT>& m); 00054 template<typename oT> inline static void print(std::ostream& o, const subview_field<oT>& m); 00055 }; 00056 00057 00058