Annotation of rpl/src/rpltypes.h, revision 1.14

1.1       bertrand    1: /*
                      2: ================================================================================
1.13      bertrand    3:   RPL/2 (R) version 4.0.20
1.14    ! bertrand    4:   Copyright (C) 1989-2011 Dr. BERTRAND Joël
1.1       bertrand    5: 
                      6:   This file is part of RPL/2.
                      7: 
                      8:   RPL/2 is free software; you can redistribute it and/or modify it
                      9:   under the terms of the CeCILL V2 License as published by the french
                     10:   CEA, CNRS and INRIA.
                     11:  
                     12:   RPL/2 is distributed in the hope that it will be useful, but WITHOUT
                     13:   ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
                     14:   FITNESS FOR A PARTICULAR PURPOSE.  See the CeCILL V2 License
                     15:   for more details.
                     16:  
                     17:   You should have received a copy of the CeCILL License
                     18:   along with RPL/2. If not, write to info@cecill.info.
                     19: ================================================================================
                     20: */
                     21: 
                     22: 
                     23: #ifndef INCLUSION_RPLTYPES
                     24: #  define INCLUSION_RPLTYPES
                     25: 
                     26: #  ifdef RPLCONFIG
                     27: #      define HAVE_CONFIG_H
                     28: #  endif
                     29: 
                     30: #  ifdef HAVE_CONFIG_H
                     31: 
                     32: /*
                     33: --------------------------------------------------------------------------------
                     34:   Configuratoin héritée du script configure
                     35: --------------------------------------------------------------------------------
                     36: */
                     37: 
                     38: #      include "rplconfig.h"
                     39: 
                     40:    /*
                     41:     * Entiers
                     42:     */
                     43: 
                     44: #      if (SIZEOF_CHAR == 1)
                     45: #          ifndef _INT1
                     46: #              define _INT1
                     47:                typedef signed char             integer1;
                     48:                typedef unsigned char           logical1;
                     49:                typedef logical1                unsigned_integer1;
                     50: #          endif
                     51: #      endif
                     52: 
                     53: #      if (SIZEOF_SHORT_INT == 2)
                     54: #          ifndef _INT2
                     55: #              define _INT2
                     56:                typedef short int               integer2;
                     57:                typedef unsigned short int      logical2;
                     58:                typedef logical2                unsigned_integer2;
                     59: #          endif
                     60: #      endif
                     61: 
                     62: #      if (SIZEOF_INT == 4)
                     63: #          ifndef _INT4
                     64: #              define _INT4
                     65:                typedef int                     integer4;
                     66:                typedef unsigned int            logical4;
                     67:                typedef logical4                unsigned_integer4;
                     68: #          endif
                     69: #      endif
                     70: 
                     71: #      if (SIZEOF_LONG_INT == 4)
                     72: #          ifndef _INT4
                     73: #              define _INT4
                     74:                typedef long int                integer4;
                     75:                typedef unsigned long int       logical4;
                     76:                typedef logical4                unsigned_integer4;
                     77: #          endif
                     78: #      endif
                     79: 
                     80: #      if (SIZEOF_LONG_INT == 8)
                     81: #          ifndef _INT8
                     82: #              define _INT8
                     83:                typedef long long int           integer8;
                     84:                typedef unsigned long long int  logical8;
                     85:                typedef logical8                unsigned_integer8;
                     86: #          endif
                     87: #      endif
                     88: 
                     89: #      if (SIZEOF_LONG_LONG_INT == 8)
                     90: #          ifndef _INT8
                     91: #              define _INT8
                     92:                typedef long long int           integer8;
                     93:                typedef unsigned long long int  logical8;
                     94:                typedef logical8                unsigned_integer8;
                     95: #          endif
                     96: #      endif
                     97: 
                     98: #      if (SIZEOF_FLOAT == 4)
                     99: #          ifndef _REAL4
                    100: #              define _REAL4
                    101:                typedef float                   real4;
                    102: #          endif
                    103: #      endif
                    104: 
                    105: #      if (SIZEOF_DOUBLE == 8)
                    106: #          ifndef _REAL8
                    107: #              define _REAL8
                    108:                typedef double                  real8;
                    109: #          endif
                    110: #      endif
                    111: 
                    112: #      if (SIZEOF_LONG_DOUBLE == 8)
                    113: #          ifndef _REAL8
                    114: #              define _REAL8
                    115:                typedef long double             real8;
                    116: #          endif
                    117: #      endif
                    118: 
                    119: #      ifndef _INT1
                    120: #          error "INTEGER*1 is not defined !"
                    121: #      endif
                    122: 
                    123: #      ifndef _INT2
                    124: #          error "INTEGER*2 is not defined !"
                    125: #      endif
                    126: 
                    127: #      ifndef _INT4
                    128: #          error "INTEGER*4 is not defined !"
                    129: #      endif
                    130: 
                    131: #      ifndef _INT8
                    132: #          error "INTEGER*8 is not defined !"
                    133: #      endif
                    134: 
                    135: #      ifndef _REAL4
                    136: #          error "REAL*4 is not defined !"
                    137: #      endif
                    138: 
                    139: #      ifndef _REAL8
                    140: #          error "REAL*8 is not defined !"
                    141: #      endif
                    142: #  else
                    143: 
                    144: /*
                    145: --------------------------------------------------------------------------------
                    146:   Configuration par défaut en absence du fichier rplconfig.h
                    147: --------------------------------------------------------------------------------
                    148: */
                    149: 
                    150: #      warning "rplconfig.h header not found !"
                    151: 
                    152:        typedef unsigned char               logical1;
                    153:        typedef unsigned short int          logical2;
                    154:        typedef unsigned int                logical4;
                    155:        typedef unsigned long long int      logical8;
                    156: 
                    157:        typedef signed char                 integer1;
                    158:        typedef short int                   integer2;
                    159:        typedef int                         integer4;
                    160:        typedef long long int               integer8;
                    161: 
                    162:        typedef logical1                    unsigned_integer1;
                    163:        typedef logical2                    unsigned_integer2;
                    164:        typedef logical4                    unsigned_integer4;
                    165:        typedef logical8                    unsigned_integer8;
                    166: 
                    167:        typedef float                       real4;
                    168:        typedef double                      real8;
                    169: #  endif
                    170: 
                    171:    typedef struct complex8
                    172:    {
                    173:        real4                               partie_reelle;
                    174:        real4                               partie_imaginaire;
                    175:    } struct_complexe8;
                    176: 
                    177:    typedef struct complex16
                    178:    {
                    179:        real8                               partie_reelle;
                    180:        real8                               partie_imaginaire;
                    181:    } struct_complexe16;
                    182: 
                    183:    typedef struct_complexe8                complex8;
                    184:    typedef struct_complexe16               complex16;
                    185: #endif
                    186: 
                    187: // vim: ts=4

CVSweb interface <joel.bertrand@systella.fr>