a68g-mach.h

     
   1  //! @file a68g-mach.h
   2  //! @author J. Marcel van der Veer
   3  
   4  //! @section Copyright
   5  //!
   6  //! This file is part of Algol68G - an Algol 68 compiler-interpreter.
   7  //! Copyright 2001-2024 J. Marcel van der Veer [algol68g@xs4all.nl].
   8  
   9  //! @section License
  10  //!
  11  //! This program is free software; you can redistribute it and/or modify it 
  12  //! under the terms of the GNU General Public License as published by the 
  13  //! Free Software Foundation; either version 3 of the License, or 
  14  //! (at your option) any later version.
  15  //!
  16  //! This program is distributed in the hope that it will be useful, but 
  17  //! WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY 
  18  //! or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for 
  19  //! more details. You should have received a copy of the GNU General Public 
  20  //! License along with this program. If not, see [http://www.gnu.org/licenses/].
  21  
  22  //! @section Synopsis
  23  //!
  24  //! Machine parameters.
  25  
  26  #if ! defined (__A68G_MACH_H__)
  27  #define __A68G_MACH_H__
  28  
  29  #if (A68_LEVEL >= 3)
  30  #define A68_MAX_INT (a68g_i64mach (9))
  31  #else
  32  #define A68_MAX_INT (a68g_i32mach (9))
  33  #endif
  34  
  35  #define A68_STDIN  (a68g_i32mach (1))
  36  #define A68_STDOUT (a68g_i32mach (2))
  37  #define A68_STDPUN (a68g_i32mach (3))
  38  #define A68_STDERR (a68g_i32mach (4))
  39  
  40  #define A68_REAL_MIN (a68g_r64mach (1))
  41  #define A68_REAL_MAX (a68g_r64mach (2))
  42  #define A68_REAL_EPS (a68g_r64mach (4))
  43  #define A68_REAL_MIN_EXP ((int) a68g_r64mach (6))
  44  #define A68_REAL_MAX_EXP ((int) a68g_r64mach (7))
  45  #define A68_REAL_DIG ((int) a68g_r64mach (8))
  46  #define A68_REAL_MAN ((int) a68g_r64mach (9))
  47  
  48  #define A68_DOUBLE_MIN (a68g_r128mach (1))
  49  #define A68_DOUBLE_MAX (a68g_r128mach (2))
  50  #define A68_DOUBLE_EPS (a68g_r128mach (4))
  51  #define A68_DOUBLE_MIN_EXP ((int) a68g_r128mach (6))
  52  #define A68_DOUBLE_MAX_EXP ((int) a68g_r128mach (7))
  53  #define A68_DOUBLE_DIG ((int) a68g_r128mach (8))
  54  #define A68_DOUBLE_MAN ((int) a68g_r128mach (9))
  55  
  56  int a68g_i32mach (int);
  57  GPROC genie_i32mach;
  58  
  59  REAL_T a68g_r64mach (int);
  60  GPROC genie_r64mach;
  61  
  62  #if (A68_LEVEL >= 3)
  63  
  64  INT_T a68g_i64mach (int);
  65  GPROC genie_i64mach;
  66  
  67  DOUBLE_T a68g_r128mach (int);
  68  GPROC genie_r128mach;
  69  
  70  #endif
  71  
  72  #endif