C-XSC - A C++ Class Library for Extended Scientific Computing
2.5.4
|
00001 /* 00002 ** CXSC is a C++ library for eXtended Scientific Computing (V 2.5.4) 00003 ** 00004 ** Copyright (C) 1990-2000 Institut fuer Angewandte Mathematik, 00005 ** Universitaet Karlsruhe, Germany 00006 ** (C) 2000-2014 Wiss. Rechnen/Softwaretechnologie 00007 ** Universitaet Wuppertal, Germany 00008 ** 00009 ** This library is free software; you can redistribute it and/or 00010 ** modify it under the terms of the GNU Library General Public 00011 ** License as published by the Free Software Foundation; either 00012 ** version 2 of the License, or (at your option) any later version. 00013 ** 00014 ** This library is distributed in the hope that it will be useful, 00015 ** but WITHOUT ANY WARRANTY; without even the implied warranty of 00016 ** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 00017 ** Library General Public License for more details. 00018 ** 00019 ** You should have received a copy of the GNU Library General Public 00020 ** License along with this library; if not, write to the Free 00021 ** Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA 00022 */ 00023 00024 /* CVS $Id: lx_real.cpp,v 1.8 2014/01/30 17:23:47 cxsc Exp $ */ 00025 00026 /* 00027 ** F. Blomquist, University of Wuppertal, 19.09.2007; 00028 */ 00029 00030 #include "lx_real.hpp" 00031 #include "lx_interval.hpp" 00032 00033 namespace cxsc { 00034 00035 inline std::ostream& operator << (std::ostream& s, const lx_real& b) throw() 00036 // A value a of type lx_real is written to the output channel. 00037 // The output has the form: {2**(ex),lr} 00038 { 00039 lx_interval a(b); 00040 real p; 00041 l_interval m; 00042 l_real x; 00043 00044 Bin2Dec(a,p,m); 00045 x = mid(m); 00046 00047 s << "{ " 00048 << "10**(" 00049 << SaveOpt << SetPrecision(0,0) << Fixed << p << RestoreOpt 00050 << ")" 00051 << "*" 00052 << x 00053 << " }"; 00054 return s; 00055 } 00056 00057 } // end namespace cxsc