C-XSC - A C++ Class Library for Extended Scientific Computing  2.5.4
dot_defs.hpp
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: dot_defs.hpp,v 1.25 2014/01/30 17:23:45 cxsc Exp $ */
00025 
00026 /**********************************************************************
00027  * (C) 1993 University of Karlsruhe
00028  **********************************************************************/
00029 #ifndef _CXSC_DOT_DEFS_HPP_INCLUDED
00030 #define _CXSC_DOT_DEFS_HPP_INCLUDED
00031 
00032 namespace cxsc {
00033 
00034 /* ----------------------------------------------------------------- */
00035 /* Maximale dezimale Laenge des ganzzahligen Anteils eines Akkus ist */
00036 /*    log(2)/log(10) * maximale binaere Laenge                       */
00037 
00038 #define A_I_DIGITS  ((a_intg)((A_I_LENGTH * B_LENGTH * 30103L) / 100000L))
00039 
00040 /* ---------------------------------------------------------------- */
00041 /* Maximale dezimale Laenge des gebrochenen Anteils eines Akkus ist */
00042 /*     maximale binaere Laenge                                      */
00043 
00044 #define A_F_DIGITS  ((A_F_LENGTH * B_LENGTH) + 1)
00045 
00046 /* ---------------------------------------------------------------- */
00047 /* Anzahl der Digits fuer den Exponenten                            */
00048 
00049 #define A_E_DIGITS  4
00050 #define A_E_MAX     10000
00051 
00052 /* ---------------------------------------------------------------- */
00053 /* Laenge eines Strings zur Aufnahme eines Akku                     */
00054 
00055 #define A_DIGITS   (1 + A_I_DIGITS + 1 + A_F_DIGITS + 2 + A_E_DIGITS + 1 + 20)
00056 
00057 #if _WIN32
00058 extern __declspec(thread) char *dm;
00059 extern __declspec(thread) char *dmhlp;
00060 #elif __APPLE__ && !CXSC_FORCE_TLS
00061 extern char *dm;
00062 extern char *dmhlp;
00063 #else
00064 extern __thread char *dm;
00065 extern __thread char *dmhlp;
00066 #endif
00067 
00068 
00069 int d_init_dm (void);
00070 
00071 /* ---------------------------------------------------------------- */
00072 
00073   /*---- D_OUT.C -- mr 30.09.1990 ----------------------------------*/
00074   void d_out(a_intg*, char*, a_intg*, a_intg*, Dotprecision);
00075 
00076   /*---- D_OUTP.C - mr 30.09.1990 ----------------------------------*/
00077   void d_outp(char*, Dotprecision, a_intg, a_intg, a_intg, a_intg*);
00078 
00079   /*---- D_SCAN.C - mr 19.10.1990 ----------------------------------*/
00080   char* d_scan (char*, a_intg*, a_intg*, char*, a_intg*, a_intg*);
00081 
00082   /*---- D_SCANI.C - mr 19.10.1990 ---------------------------------*/
00083   void d_scani(Dotprecision, char*, a_intg*, a_intg*, a_intg*);
00084 
00085   /*---- D_SCANF.C - mr 19.10.1990 ---------------------------------*/
00086   a_intg d_scanf(Dotprecision, char*, a_intg*, a_intg*, a_intg*, a_intg);
00087 
00088   /*---- D_SCANP.C - mr 20.10.1990 --------------------------------*/
00089   char* d_scanp(Dotprecision, char*, a_intg, a_intg*);
00090 
00091 /* ---------------------------------------------------------------- */
00092 
00093 } // namespace cxsc 
00094 
00095 #endif // _CXSC_DOT_DEFS_HPP_INCLUDED