STK++ 1.0
STK_Display1D.h
Go to the documentation of this file.
00001 /*--------------------------------------------------------------------*/
00002 /*     Copyright (C) 2004-2007  Serge Iovleff
00003 
00004     This program is free software; you can redistribute it and/or modify
00005     it under the terms of the GNU Lesser General Public License as
00006     published by the Free Software Foundation; either version 2 of the
00007     License, or (at your option) any later version.
00008 
00009     This program is distributed in the hope that it will be useful,
00010     but WITHOUT ANY WARRANTY; without even the implied warranty of
00011     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
00012     GNU Lesser General Public License for more details.
00013 
00014     You should have received a copy of the GNU Lesser General Public
00015     License along with this program; if not, write to the
00016     Free Software Foundation, Inc.,
00017     59 Temple Place,
00018     Suite 330,
00019     Boston, MA 02111-1307
00020     USA
00021 
00022     Contact : Serge.Iovleff@stkpp.org
00023 */
00024 
00025 /*
00026  * Project: stkpp::Arrays
00027  * Purpose:  Display on the standard output the one dimensional arrays.
00028  * Author:   Serge Iovleff, serge.iovleff@stkpp.org
00029  *
00030  **/
00031 
00037 #ifndef STK_DISPLAY1D_H
00038 #define STK_DISPLAY1D_H
00039 
00040 //#include <iomanip>
00041 
00042 #include "../../STKernel/include/STK_Proxy.h"
00043 #include "../../STKernel/include/STK_Integer.h"
00044 #include "../../STKernel/include/STK_Real.h"
00045 #include "../../STKernel/include/STK_Stream.h"
00046 
00047 namespace STK
00048 {
00049 
00055 template<class TYPE, template<class> class Container1D>
00056 ostream& out1D( ostream& s, const Container1D<TYPE>& V)
00057 {
00058   Integer rbeg = V.first(), rend = V.last();
00059 
00060   s << std::right;
00061 //    << std::setprecision(1);
00062   for (Integer i=rbeg; i<=rend; i++)
00063   { s << ConstProxy<TYPE>(V[i]) << _T(' ') ; }
00064   return s;
00065 }
00066 
00067 // Specialization
00073 template<template<class> class Container1D>
00074 ostream& out1D(ostream& s, const Container1D<Real>& V)
00075 {
00076   Integer rbeg = V.first(), rend = V.last();
00077 
00078   s << std::right;
00079 //    << std::setprecision(1);
00080   for (Integer i=rbeg; i<=rend; i++)
00081   { s << /* std::setw(12) << */ ConstProxy<Real>(V[i]) << _T(' ') ; }
00082 
00083   return s;
00084 
00085 }
00086 
00092 template<template<class> class Container1D>
00093 ostream& out1D(ostream& s, const Container1D<Integer> & V)
00094 {
00095   Integer rbeg = V.first(), rend = V.last();
00096 
00097   s << std::right;
00098   for (Integer i=rbeg; i<=rend; i++)
00099   { s << /* std::setw(5) << */ ConstProxy<Integer> (V[i]) << _T(' ') ; }
00100   return s;
00101 }
00102 
00103 } // namespace STK
00104 
00105 #endif // STK_DISPLAY_H