uninit.c File Reference

#include <stdio.h>
#include <string.h>
#include "arith.h"

Include dependency graph for uninit.c:

Go to the source code of this file.

Defines

#define TYSHORT   2
#define TYLONG   3
#define TYREAL   4
#define TYDREAL   5
#define TYCOMPLEX   6
#define TYDCOMPLEX   7
#define TYINT1   11
#define TYQUAD   14
#define Long   long
#define RNAN   0xff800001
#define DNAN0   1
#define DNAN1   0xfff00000
#define Void   void
#define FA7UL   0xfa7a7a7aUL

Functions

static void ieee0 (Void)
void _uninit_f2c (void *x, int type, long len)

Variables

static unsigned Long rnan = RNAN
static unsigned Long dnan0 = DNAN0
static unsigned Long dnan1 = DNAN1
double _0 = 0.


Define Documentation

#define DNAN0   1

Definition at line 35 of file uninit.c.

#define DNAN1   0xfff00000

Definition at line 36 of file uninit.c.

#define FA7UL   0xfa7a7a7aUL

Definition at line 45 of file uninit.c.

Referenced by _uninit_f2c().

#define Long   long

Definition at line 14 of file uninit.c.

#define RNAN   0xff800001

Definition at line 30 of file uninit.c.

#define TYCOMPLEX   6

Definition at line 9 of file uninit.c.

#define TYDCOMPLEX   7

Definition at line 10 of file uninit.c.

#define TYDREAL   5

Definition at line 8 of file uninit.c.

#define TYINT1   11

Definition at line 11 of file uninit.c.

#define TYLONG   3

Definition at line 6 of file uninit.c.

#define TYQUAD   14

Definition at line 12 of file uninit.c.

Referenced by _uninit_f2c(), c_type_decl(), cktype(), consbinop(), consconv(), consnegop(), conspower(), conssgn(), data_value(), fix_entry_returns(), fold(), foldminmax(), intrcall(), is_negatable(), isnegative_const(), l_write(), lengtype(), lit_name(), LRget(), mkbitcon(), mkconv(), mkintqcon(), mkpower(), negate_const(), out_const(), p1_const(), p1get_const(), Pftype(), Ptype(), putconst(), putx(), retval(), setdata(), wr_array_init(), wr_equiv_init(), wr_output_values(), and zeroconst().

#define TYREAL   4

Definition at line 7 of file uninit.c.

#define TYSHORT   2

Definition at line 5 of file uninit.c.

#define Void   void

Definition at line 44 of file uninit.c.


Function Documentation

void _uninit_f2c ( void *  x,
int  type,
long  len 
)

Definition at line 64 of file uninit.c.

References dnan0, dnan1, FA7UL, first, ieee0(), Long, memset(), TYCOMPLEX, TYDCOMPLEX, TYDREAL, TYINT1, TYLONG, TYQUAD, TYREAL, and TYSHORT.

00066 {
00067         static int first = 1;
00068 
00069         unsigned Long *lx, *lxe;
00070 
00071         if (first) {
00072                 first = 0;
00073                 ieee0();
00074                 }
00075         if (len == 1)
00076          switch(type) {
00077           case TYINT1:
00078                 *(char*)x = 'Z';
00079                 return;
00080           case TYSHORT:
00081                 *(short*)x = 0xfa7a;
00082                 break;
00083           case TYLONG:
00084                 *(unsigned Long*)x = FA7UL;
00085                 return;
00086           case TYQUAD:
00087           case TYCOMPLEX:
00088           case TYDCOMPLEX:
00089                 break;
00090           case TYREAL:
00091                 *(unsigned Long*)x = rnan;
00092                 return;
00093           case TYDREAL:
00094                 lx = (unsigned Long*)x;
00095                 lx[0] = dnan0;
00096                 lx[1] = dnan1;
00097                 return;
00098           default:
00099                 printf("Surprise type %d in _uninit_f2c\n", type);
00100           }
00101         switch(type) {
00102           case TYINT1:
00103                 memset(x, 'Z', len);
00104                 break;
00105           case TYSHORT:
00106                 *(short*)x = 0xfa7a;
00107                 break;
00108           case TYQUAD:
00109                 len *= 2;
00110                 /* no break */
00111           case TYLONG:
00112                 lx = (unsigned Long*)x;
00113                 lxe = lx + len;
00114                 while(lx < lxe)
00115                         *lx++ = FA7UL;
00116                 break;
00117           case TYCOMPLEX:
00118                 len *= 2;
00119                 /* no break */
00120           case TYREAL:
00121                 lx = (unsigned Long*)x;
00122                 lxe = lx + len;
00123                 while(lx < lxe)
00124                         *lx++ = rnan;
00125                 break;
00126           case TYDCOMPLEX:
00127                 len *= 2;
00128                 /* no break */
00129           case TYDREAL:
00130                 lx = (unsigned Long*)x;
00131                 for(lxe = lx + 2*len; lx < lxe; lx += 2) {
00132                         lx[0] = dnan0;
00133                         lx[1] = dnan1;
00134                         }
00135           }
00136         }

Here is the call graph for this function:

static void ieee0 ( Void   )  [static]

Definition at line 376 of file uninit.c.

Referenced by _uninit_f2c().

00376 {}

Here is the caller graph for this function:


Variable Documentation

double _0 = 0.

Definition at line 58 of file uninit.c.

unsigned Long dnan0 = DNAN0 [static]

Definition at line 55 of file uninit.c.

Referenced by _uninit_f2c().

unsigned Long dnan1 = DNAN1 [static]

Definition at line 56 of file uninit.c.

Referenced by _uninit_f2c().

unsigned Long rnan = RNAN [static]

Definition at line 54 of file uninit.c.


Generated on Sun Mar 4 15:05:50 2007 for Scilab [trunk] by  doxygen 1.5.1