/other/netcdf_write_matrix/src/libsrc/t_ncxx.m4
m4 | 956 lines | 773 code | 106 blank | 77 comment | 0 complexity | 6009d3d0c602c38feea2660e39360ec3 MD5 | raw file
Possible License(s): AGPL-1.0
- dnl This is m4 source.
- dnl Process using m4 to produce 'C' language file.
- dnl
- dnl If you see this line, you can ignore the next one.
- /* Do not edit this file. It is produced from the corresponding .m4 source */
- dnl
- /*
- * Copyright 1996, University Corporation for Atmospheric Research
- * See netcdf/COPYRIGHT file for copying and redistribution conditions.
- */
- /* "$Id: t_ncxx.m4,v 2.17 2005/05/20 14:48:14 russ Exp $" */
- /*
- * This program tests the aggregate external representation conversion
- * functions "ncx_[pad_]{put,get}n_*()" declared in ncx.h.
- * Unlike t_ncx.c, it only checks self consistency,
- * not consistency with the xdr library.
- *
- * Link like this:
- * cc t_ncxx.c ncx.o -o t_nxc
- * (The xdr library is not needed.)
- *
- * If an assertion fails, there is a problem.
- * Otherwise, the program is silent and has exit code 0.
- */
- #undef NDEBUG /* always active assert() in this file */
- #include <stdio.h>
- #include <string.h>
- #include <limits.h>
- /* alias poorly named limits.h macros */
- #define SHORT_MAX SHRT_MAX
- #define SHORT_MIN SHRT_MIN
- #define USHORT_MAX USHRT_MAX
- #include <assert.h>
- #include "ncx.h"
- #define X_SIZEOF_SCHAR X_SIZEOF_CHAR
- #define X_LONG_MAX X_INT_MAX
- #define X_LONG_MIN X_INT_MIN
- #define XBSZ 1024
- char ncxb[XBSZ];
- char lbuf[XBSZ];
- #define ArraySize(thang) (sizeof(thang)/sizeof(thang[0]))
- #define eSizeOf(thang) ((size_t)(sizeof(thang[0])))
- /*
- * Some test data
- * The ideas is that ncx_putn_type_type(...., types)
- * should not return NC_ERANGE.
- */
- #if SCHAR_MAX == X_SCHAR_MAX && SCHAR_MIN == X_SCHAR_MIN
- static schar schars[] = {
- SCHAR_MIN, SCHAR_MIN +1,
- -1, 0, 1,
- SCHAR_MAX - 1, SCHAR_MAX
- };
- #else
- /* The implementation and this test assume 8 bit bytes. */
- #error "Not 8 bit bytes ??"
- #endif
- static short shorts[] = {
- #if SHORT_MAX <= X_SHORT_MAX
- SHORT_MIN, SHORT_MIN + 1,
- # if SCHAR_MAX < X_SHORT_MAX
- SCHAR_MIN - 1, SCHAR_MIN, SCHAR_MIN + 1,
- # endif
- -1, 0, 1,
- # if SCHAR_MAX < X_SHORT_MAX
- SCHAR_MAX - 1, SCHAR_MAX, SCHAR_MAX + 1,
- # endif
- SHORT_MAX - 1, SHORT_MAX
- #else
- X_SHORT_MIN, X_SHORT_MIN + 1,
- # if SCHAR_MAX < X_SHORT_MAX
- SCHAR_MIN - 1, SCHAR_MIN, SCHAR_MIN + 1,
- # endif
- -1, 0, 1,
- # if SCHAR_MAX < X_SHORT_MAX
- SCHAR_MAX - 1, SCHAR_MAX, SCHAR_MAX + 1,
- # endif
- X_SHORT_MAX - 1, X_SHORT_MAX
- #endif
- };
- static int ints[] = {
- #if INT_MAX <= X_INT_MAX
- INT_MIN, INT_MIN +1,
- # if SHORT_MAX < X_INT_MAX
- SHORT_MIN -1, SHORT_MIN, SHORT_MIN + 1,
- # endif
- # if SCHAR_MAX < X_INT_MAX
- SCHAR_MIN - 1, SCHAR_MIN, SCHAR_MIN + 1,
- # endif
- -1, 0, 1,
- # if SCHAR_MAX < X_INT_MAX
- SCHAR_MAX - 1, SCHAR_MAX, SCHAR_MAX + 1,
- # endif
- # if SHORT_MAX < X_INT_MAX
- SHORT_MAX - 1, SHORT_MAX, SHORT_MAX +1,
- # endif
- INT_MAX - 1, INT_MAX
- #else
- X_INT_MIN, X_INT_MIN +1,
- # if SHORT_MAX < X_INT_MAX
- SHORT_MIN -1, SHORT_MIN, SHORT_MIN + 1,
- # endif
- # if SCHAR_MAX < X_INT_MAX
- SCHAR_MIN - 1, SCHAR_MIN, SCHAR_MIN + 1,
- # endif
- -1, 0, 1,
- # if SCHAR_MAX < X_INT_MAX
- SCHAR_MAX - 1, SCHAR_MAX, SCHAR_MAX + 1,
- # endif
- # if SHORT_MAX < X_INT_MAX
- SHORT_MAX - 1, SHORT_MAX, SHORT_MAX +1,
- # endif
- X_INT_MAX - 1, X_INT_MAX
- #endif /* INT */
- };
- /* N.B. only testing longs over X_INT range for now */
- static long longs[] = {
- #if LONG_MAX <= X_INT_MAX
- LONG_MIN, LONG_MIN +1,
- # if INT_MAX < X_INT_MAX
- INT_MIN -1, INT_MIN, INT_MIN + 1,
- # endif
- # if SHORT_MAX < X_INT_MAX
- SHORT_MIN -1, SHORT_MIN, SHORT_MIN + 1,
- # endif
- # if SCHAR_MAX < X_INT_MAX
- SCHAR_MIN - 1, SCHAR_MIN, SCHAR_MIN + 1,
- # endif
- -1, 0, 1,
- # if SCHAR_MAX < X_INT_MAX
- SCHAR_MAX - 1, SCHAR_MAX, SCHAR_MAX + 1,
- # endif
- # if SHORT_MAX < X_INT_MAX
- SHORT_MAX - 1, SHORT_MAX, SHORT_MAX +1,
- # endif
- # if INT_MAX < X_INT_MAX
- INT_MAX -1, INT_MAX, INT_MAX + 1,
- # endif
- LONG_MAX - 1, LONG_MAX
- #else
- X_INT_MIN, X_INT_MIN +1,
- # if SHORT_MAX < X_INT_MAX
- SHORT_MIN -1, SHORT_MIN, SHORT_MIN + 1,
- # endif
- # if SCHAR_MAX < X_INT_MAX
- SCHAR_MIN - 1, SCHAR_MIN, SCHAR_MIN + 1,
- # endif
- -1, 0, 1,
- # if SCHAR_MAX < X_INT_MAX
- SCHAR_MAX - 1, SCHAR_MAX, SCHAR_MAX + 1,
- # endif
- # if SHORT_MAX < X_INT_MAX
- SHORT_MAX - 1, SHORT_MAX, SHORT_MAX +1,
- # endif
- X_INT_MAX - 1, X_INT_MAX
- #endif
- };
- static float floats[] = {
- -1.E9F,
- -16777215, -16777214,
- -999999,
- -32769, -32768, -32767,
- -129, -128, 127,
- -1, 0, 1,
- 126, 127, 128,
- 32766, 32767, 32768,
- 999999,
- 16777214, 16777215, /* 2^24 -1 */
- 1.E9F
- };
- static double doubles[] = {
- -1.E20,
- -4503599627370495., -4503599627370494.,
- -999999999999999.,
- -1.E9,
- -16777215, -16777214,
- -999999,
- -32769, -32768, -32767,
- -129, -128, 127,
- -1, 0, 1,
- 126, 127, 128,
- 32766, 32767, 32768,
- 999999,
- 16777214, 16777215, /* 2^24 -1 */
- 1.E9,
- 999999999999999.,
- 4503599627370494., 4503599627370495., /* 2^53 -1 */
- 1.E20
- };
- static uchar uchars[] = {
- 0, 1,
- UCHAR_MAX/2 -1, UCHAR_MAX/2, UCHAR_MAX/2 +1,
- UCHAR_MAX - 1, UCHAR_MAX
- };
- /* End of test data */
- dnl dnl dnl
- dnl
- dnl Macros
- dnl
- dnl dnl dnl
- dnl
- dnl Upcase(str)
- dnl
- define(`Upcase',dnl
- `dnl
- translit($1, abcdefghijklmnopqrstuvwxyz, ABCDEFGHIJKLMNOPQRSTUVWXYZ)')dnl
- dnl dnl dnl
- dnl
- dnl Xsizeof(Xtype)
- dnl
- define(`Xsizeof', ``X_SIZEOF_'Upcase($1)')dnl
- dnl dnl dnl
- define(`XMin', ``X_'Upcase($1)`_MIN'')dnl
- define(`XMax', ``X_'Upcase($1)`_MAX'')dnl
- dnl dnl dnl
- dnl
- dnl T_PUTN(XType, Type)
- dnl
- define(`T_PUTN',dnl
- `dnl
- static void
- t_putn_$1_$2(char *const buf)
- {
- char *xp = buf;
- const $2 *tp = `$2's;
- size_t nelems = ArraySize(`$2's);
- int status = ncx_putn_$1_$2((void **)&xp, nelems, tp);
- assert(xp == buf + nelems * Xsizeof($1));
- {
- size_t ii;
- for(ii = 0; ii < nelems; ii++)
- {
- if((double) tp[ii] > XMax($1))
- {
- assert(status == NC_ERANGE);
- return;
- }
- if((double) tp[ii] < XMin($1))
- {
- assert(status == NC_ERANGE);
- return;
- }
- }
- assert(status == 0);
- }
- }
- ')dnl
- dnl dnl dnl
- dnl
- dnl T_PUTN_U(XType, Type)
- dnl Doesn't make signed comparisons to unsigned type
- dnl
- define(`T_PUTN_U',dnl
- `dnl
- static void
- t_putn_$1_$2(char *const buf)
- {
- char *xp = buf;
- const $2 *tp = `$2's;
- size_t nelems = ArraySize(`$2's);
- int status = ncx_putn_$1_$2((void **)&xp, nelems, tp);
- assert(xp == buf + nelems * Xsizeof($1));
- {
- size_t ii;
- for(ii = 0; ii < nelems; ii++)
- {
- if((double) tp[ii] > XMax($1))
- {
- assert(status == NC_ERANGE);
- return;
- }
- }
- assert(status == 0);
- }
- }
- ')dnl
- dnl dnl dnl
- dnl
- dnl T_PAD_PUTN(XType, Type)
- dnl
- define(`T_PAD_PUTN',dnl
- `dnl
- static void
- t_pad_putn_$1_$2(char *const buf)
- {
- char *xp = buf;
- const $2 *tp = `$2's;
- size_t nelems = ArraySize(`$2's);
- const char *end = buf + nelems * Xsizeof($1);
- int status = ncx_pad_putn_$1_$2((void **)&xp, nelems, tp);
- assert(xp >= end);
- assert((xp - end) < 4);
- assert((xp - buf)%4 == 0);
- {
- size_t ii;
- for(ii = 0; ii < nelems; ii++)
- {
- if((double) tp[ii] > XMax($1))
- {
- assert(status == NC_ERANGE);
- return;
- }
- if((double) tp[ii] < XMin($1))
- {
- assert(status == NC_ERANGE);
- return;
- }
- }
- assert(status == 0);
- }
- }
- ')dnl
- dnl dnl dnl
- dnl
- dnl T_GETN(XType, Type)
- dnl
- define(`T_GETN',dnl
- `dnl
- static void
- t_getn_$1_$2(const char *const buf)
- {
- const char *xp = buf;
- const $2 *tp = `$2's;
- $2 *lp = ($2 *)lbuf;
- size_t nelems = ArraySize(`$2's);
- int status = ncx_getn_$1_$2((const void **)&xp, nelems, lp);
- assert(xp == buf + nelems * Xsizeof($1));
- assert(status == 0);
- {
- size_t ii;
- for(ii = 0; ii < nelems; ii++)
- {
- if(((double)tp[ii] <= XMax($1))
- && ((double)tp[ii] >= XMin($1)))
- {
- assert(tp[ii] == lp[ii]);
- }
- }
- }
- }
- ')dnl
- dnl dnl dnl
- dnl
- dnl T_GETN_U(XType, Type)
- dnl Doesn't make signed comparisons to unsigned type
- dnl
- define(`T_GETN_U',dnl
- `dnl
- static void
- t_getn_$1_$2(const char *const buf)
- {
- const char *xp = buf;
- const $2 *tp = `$2's;
- $2 *lp = ($2 *)lbuf;
- size_t nelems = ArraySize(`$2's);
- int status = ncx_getn_$1_$2((const void **)&xp, nelems, lp);
- assert(xp == buf + nelems * Xsizeof($1));
- assert(status == 0);
- {
- size_t ii;
- for(ii = 0; ii < nelems; ii++)
- {
- if((double) tp[ii] <= XMax($1))
- {
- assert(tp[ii] == lp[ii]);
- }
- }
- }
- }
- ')dnl
- dnl dnl dnl
- dnl
- dnl T_PAD_GETN(XType, Type)
- dnl
- define(`T_PAD_GETN',dnl
- `dnl
- static void
- t_pad_getn_$1_$2(const char *const buf)
- {
- const char *xp = buf;
- const $2 *tp = `$2's;
- $2 *lp = ($2 *)lbuf;
- size_t nelems = ArraySize(`$2's);
- const char *end = buf + nelems * Xsizeof($1);
- int status = ncx_pad_getn_$1_$2((const void **)&xp, nelems, lp);
- assert(xp >= end);
- assert((xp - end) < 4);
- assert((xp - buf)%4 == 0);
- assert(status == 0);
- {
- size_t ii;
- for(ii = 0; ii < nelems; ii++)
- {
- if(((double) tp[ii] <= XMax($1))
- && ((double) tp[ii] >= XMin($1)))
- {
- assert(tp[ii] == lp[ii]);
- }
- }
- }
- }
- ')dnl
- dnl dnl dnl
- dnl
- dnl Declare & define test routines
- dnl
- dnl dnl dnl
- T_PUTN(schar, schar)
- dnl T_PUTN(schar, uchar) replaced by special case code.
- dnl - we don't return conversion errors putting uchar to schar.
- static void
- t_putn_schar_uchar(char *const buf)
- {
- char *xp = buf;
- const uchar *tp = uchars;
- size_t nelems = ArraySize(schars);
- int status = ncx_putn_schar_uchar((void **)&xp, nelems, tp);
- assert(xp == buf + nelems * X_SIZEOF_SCHAR);
- assert(status == 0);
- }
- T_PUTN(schar, short)
- T_PUTN(schar, int)
- T_PUTN(schar, long)
- T_PUTN(schar, float)
- T_PUTN(schar, double)
- T_PAD_PUTN(schar, schar)
- dnl T_PAD_PUTN(schar, uchar) replaced by special case code.
- dnl - we don't return conversion errors putting uchar to schar.
- static void
- t_pad_putn_schar_uchar(char *const buf)
- {
- char *xp = buf;
- const uchar *tp = uchars;
- size_t nelems = ArraySize(uchars);
- const char *end = buf + nelems * X_SIZEOF_SCHAR;
- int status = ncx_pad_putn_schar_uchar((void **)&xp, nelems, tp);
- assert(xp >= end);
- assert((xp - end) < 4);
- assert((xp - buf)%4 == 0);
- assert(status == 0);
- }
- T_PAD_PUTN(schar, short)
- T_PAD_PUTN(schar, int)
- T_PAD_PUTN(schar, long)
- T_PAD_PUTN(schar, float)
- T_PAD_PUTN(schar, double)
- T_PUTN(short, schar)
- T_PUTN_U(short, uchar)
- T_PUTN(short, short)
- T_PUTN(short, int)
- T_PUTN(short, long)
- T_PUTN(short, float)
- T_PUTN(short, double)
- T_PAD_PUTN(short, schar)
- dnl T_PAD_PUTN(short, uchar)
- dnl Don't make signed comparisons to usigned type
- static void
- t_pad_putn_short_uchar(char *const buf)
- {
- char *xp = buf;
- const uchar *tp = uchars;
- size_t nelems = ArraySize(uchars);
- const char *end = buf + nelems * X_SIZEOF_SHORT;
- int status = ncx_pad_putn_short_uchar((void **)&xp, nelems, tp);
- assert(xp >= end);
- assert((xp - end) < 4);
- assert((xp - buf)%4 == 0);
- {
- size_t ii;
- for(ii = 0; ii < nelems; ii++)
- {
- if(tp[ii] > X_SHORT_MAX)
- {
- assert(status == NC_ERANGE);
- return;
- }
- }
- assert(status == 0);
- }
- }
- T_PAD_PUTN(short, short)
- T_PAD_PUTN(short, int)
- T_PAD_PUTN(short, long)
- T_PAD_PUTN(short, float)
- T_PAD_PUTN(short, double)
- T_PUTN(int, schar)
- T_PUTN_U(int, uchar)
- T_PUTN(int, short)
- T_PUTN(int, int)
- T_PUTN(int, long)
- T_PUTN(int, float)
- T_PUTN(int, double)
- T_PUTN(float, schar)
- T_PUTN_U(float, uchar)
- T_PUTN(float, short)
- T_PUTN(float, int)
- T_PUTN(float, long)
- T_PUTN(float, float)
- T_PUTN(float, double)
- T_PUTN(double, schar)
- T_PUTN_U(double, uchar)
- T_PUTN(double, short)
- T_PUTN(double, int)
- T_PUTN(double, long)
- T_PUTN(double, float)
- T_PUTN(double, double)
- T_GETN(schar, schar)
- dnl T_GETN(schar, uchar)
- dnl - we don't return conversion errors gettin schar to uchar.
- static void
- t_getn_schar_uchar(const char *const buf)
- {
- const char *xp = buf;
- const uchar *tp = uchars;
- uchar *lp = (uchar *)lbuf;
- size_t nelems = ArraySize(schars);
- int status = ncx_getn_schar_uchar((const void **)&xp, nelems, lp);
- assert(xp == buf + nelems * X_SIZEOF_SCHAR);
- assert(status == 0);
- {
- size_t ii;
- for(ii = 0; ii < nelems; ii++)
- {
- assert(tp[ii] == lp[ii]);
- }
- }
- }
- T_GETN(schar, short)
- T_GETN(schar, int)
- T_GETN(schar, long)
- T_GETN(schar, float)
- T_GETN(schar, double)
- T_PAD_GETN(schar, schar)
- dnl T_PAD_GETN(schar, uchar)
- dnl - we don't return conversion errors gettin schar to uchar.
- static void
- t_pad_getn_schar_uchar(const char *const buf)
- {
- const char *xp = buf;
- const uchar *tp = uchars;
- uchar *lp = (uchar *)lbuf;
- size_t nelems = ArraySize(schars);
- const char *end = buf + nelems * X_SIZEOF_SCHAR;
- int status = ncx_pad_getn_schar_uchar((const void **)&xp, nelems, lp);
- assert(xp >= end);
- assert((xp - end) < 4);
- assert((xp - buf)%4 == 0);
- assert(status == 0);
- {
- size_t ii;
- for(ii = 0; ii < nelems; ii++)
- {
- assert(tp[ii] == lp[ii]);
- }
- }
- }
- T_PAD_GETN(schar, short)
- T_PAD_GETN(schar, int)
- T_PAD_GETN(schar, long)
- T_PAD_GETN(schar, float)
- T_PAD_GETN(schar, double)
- T_GETN(short, schar)
- T_GETN_U(short, uchar)
- T_GETN(short, short)
- T_GETN(short, int)
- T_GETN(short, long)
- T_GETN(short, float)
- T_GETN(short, double)
- T_PAD_GETN(short, schar)
- dnl T_PAD_GETN(short, uchar)
- dnl Don't make signed comparisons to usigned type
- static void
- t_pad_getn_short_uchar(const char *const buf)
- {
- const char *xp = buf;
- const uchar *tp = uchars;
- uchar *lp = (uchar *)lbuf;
- size_t nelems = ArraySize(uchars);
- const char *end = buf + nelems * X_SIZEOF_SHORT;
- int status = ncx_pad_getn_short_uchar((const void **)&xp, nelems, lp);
- assert(xp >= end);
- assert((xp - end) < 4);
- assert((xp - buf)%4 == 0);
- assert(status == 0);
- {
- size_t ii;
- for(ii = 0; ii < nelems; ii++)
- {
- if((tp[ii] <= X_SHORT_MAX))
- {
- assert(tp[ii] == lp[ii]);
- }
- }
- }
- }
- T_PAD_GETN(short, short)
- T_PAD_GETN(short, int)
- T_PAD_GETN(short, long)
- T_PAD_GETN(short, float)
- T_PAD_GETN(short, double)
- T_GETN(int, schar)
- T_GETN_U(int, uchar)
- T_GETN(int, short)
- T_GETN(int, int)
- T_GETN(int, long)
- T_GETN(int, float)
- T_GETN(int, double)
- T_GETN(float, schar)
- T_GETN_U(float, uchar)
- T_GETN(float, short)
- dnl T_GETN(float, int)
- dnl Exact conversion of int to x_float is limited by external float mantissa
- static void
- t_getn_float_int(const char *const buf)
- {
- const char *xp = buf;
- const int *tp = ints;
- int *lp = (int *)lbuf;
- size_t nelems = ArraySize(ints);
- int status = ncx_getn_float_int((const void **)&xp, nelems, lp);
- assert(xp == buf + nelems * X_SIZEOF_FLOAT);
- /* If the system rounds up can get NC_ERANGE */
- assert(status == 0 || status == NC_ERANGE);
- {
- size_t ii;
- for(ii = 0; ii < nelems; ii++)
- {
- /* limited by x_float mantissa nbits */
- if((tp[ii] <= 16777215)
- && (tp[ii] >= -16777215))
- {
- assert(tp[ii] == lp[ii]);
- }
- }
- }
- }
- dnl T_GETN(float, long)
- dnl Exact conversion of long to x_float is limited by external float mantissa
- static void
- t_getn_float_long(const char *const buf)
- {
- const char *xp = buf;
- const long *tp = longs;
- long *lp = (long *)lbuf;
- size_t nelems = ArraySize(longs);
- int status = ncx_getn_float_long((const void **)&xp, nelems, lp);
- assert(xp == buf + nelems * X_SIZEOF_FLOAT);
- /* If the system rounds up can get NC_ERANGE */
- assert(status == 0 || status == NC_ERANGE);
- {
- size_t ii;
- for(ii = 0; ii < nelems; ii++)
- {
- /* limited by x_float mantissa nbits */
- if((tp[ii] <= 16777215)
- && (tp[ii] >= 16777215))
- {
- if(tp[ii] != lp[ii])
- (void) fprintf(stderr,
- "%.9e != %.9e float_float (diff %.9e)\n",
- (double)tp[ii], (double)lp[ii],
- (double)(tp[ii] - lp[ii]));
- }
- }
- }
- }
- T_GETN(float, float)
- dnl T_GETN(float, double)
- dnl Exact conversion of double to x_float is limited by external float mantissa
- static void
- t_getn_float_double(const char *const buf)
- {
- const char *xp = buf;
- const double *tp = doubles;
- double *lp = (double *)lbuf;
- size_t nelems = ArraySize(doubles);
- int status = ncx_getn_float_double((const void **)&xp, nelems, lp);
- assert(xp == buf + nelems * X_SIZEOF_FLOAT);
- assert(status == 0);
- {
- size_t ii;
- for(ii = 0; ii < nelems; ii++)
- {
- if((tp[ii] <= X_FLOAT_MAX)
- && (tp[ii] >= X_FLOAT_MIN))
- {
- if(((float)tp[ii]) != lp[ii])
- {
- if(tp[ii] != 0)
- {
- double eps = (tp[ii] - lp[ii])/tp[ii];
- if(eps > 1.19209290E-07F) /* X_FLT_EPSILON */
- {
- (void) fprintf(stderr,
- "%.9e != %.9e float_double (eps %.9e)\n",
- tp[ii], lp[ii], eps);
- }
- }
- else
- {
- (void) fprintf(stderr,
- "%.9e != %.9e float_double (diff %.9e)\n",
- tp[ii], lp[ii], tp[ii] - lp[ii]);
-
- }
- }
- }
- }
- }
- }
- T_GETN(double, schar)
- T_GETN_U(double, uchar)
- T_GETN(double, short)
- T_GETN(double, int)
- T_GETN(double, long)
- T_GETN(double, float)
- T_GETN(double, double)
- #if defined(_CRAYIEEE) && !defined(_CRAYMPP) /* T90 */
- #include <signal.h>
- #endif /* T90 */
- int
- main(int ac, char *av[])
- {
- #if defined(_CRAYIEEE) && !defined(_CRAYMPP) /* T90 */
- /*
- * Some of the extreme test assignments in this program trigger
- * floating point exceptions on CRAY T90
- */
- (void) signal(SIGFPE, SIG_IGN);
- #endif /* T90 */
- /* x_schar */
- t_putn_schar_schar(ncxb);
- t_getn_schar_schar(ncxb);
- t_putn_schar_uchar(ncxb);
- t_getn_schar_uchar(ncxb);
- t_putn_schar_short(ncxb);
- t_getn_schar_short(ncxb);
- t_putn_schar_int(ncxb);
- t_getn_schar_int(ncxb);
- t_putn_schar_long(ncxb);
- t_getn_schar_long(ncxb);
- t_putn_schar_float(ncxb);
- t_getn_schar_float(ncxb);
- t_putn_schar_double(ncxb);
- t_getn_schar_double(ncxb);
- /* pad x_schar */
- t_pad_putn_schar_schar(ncxb);
- t_getn_schar_schar(ncxb);
- t_pad_getn_schar_schar(ncxb);
- t_pad_putn_schar_uchar(ncxb);
- t_getn_schar_uchar(ncxb);
- t_pad_getn_schar_uchar(ncxb);
- t_pad_putn_schar_short(ncxb);
- t_getn_schar_short(ncxb);
- t_pad_getn_schar_short(ncxb);
- t_pad_putn_schar_int(ncxb);
- t_getn_schar_int(ncxb);
- t_pad_getn_schar_int(ncxb);
- t_pad_putn_schar_long(ncxb);
- t_getn_schar_long(ncxb);
- t_pad_getn_schar_long(ncxb);
- t_pad_putn_schar_float(ncxb);
- t_getn_schar_float(ncxb);
- t_pad_getn_schar_float(ncxb);
- t_pad_putn_schar_double(ncxb);
- t_getn_schar_double(ncxb);
- t_pad_getn_schar_double(ncxb);
- /* x_short */
- t_putn_short_schar(ncxb);
- t_getn_short_schar(ncxb);
- t_putn_short_uchar(ncxb);
- t_getn_short_uchar(ncxb);
- t_putn_short_short(ncxb);
- t_getn_short_short(ncxb);
- t_putn_short_int(ncxb);
- t_getn_short_int(ncxb);
- t_putn_short_long(ncxb);
- t_getn_short_long(ncxb);
- t_putn_short_float(ncxb);
- t_getn_short_float(ncxb);
- t_putn_short_double(ncxb);
- t_getn_short_double(ncxb);
- /* pad x_short */
- t_pad_putn_short_schar(ncxb);
- t_getn_short_schar(ncxb);
- t_pad_getn_short_schar(ncxb);
- t_pad_putn_short_uchar(ncxb);
- t_getn_short_uchar(ncxb);
- t_pad_getn_short_uchar(ncxb);
- t_pad_putn_short_short(ncxb);
- t_getn_short_short(ncxb);
- t_pad_getn_short_short(ncxb);
- t_pad_putn_short_int(ncxb);
- t_getn_short_int(ncxb);
- t_pad_getn_short_int(ncxb);
- t_pad_putn_short_long(ncxb);
- t_getn_short_long(ncxb);
- t_pad_getn_short_long(ncxb);
- t_pad_putn_short_float(ncxb);
- t_getn_short_float(ncxb);
- t_pad_getn_short_float(ncxb);
- t_pad_putn_short_double(ncxb);
- t_getn_short_double(ncxb);
- t_pad_getn_short_double(ncxb);
- /* x_int */
- t_putn_int_schar(ncxb);
- t_getn_int_schar(ncxb);
- t_putn_int_uchar(ncxb);
- t_getn_int_uchar(ncxb);
- t_putn_int_short(ncxb);
- t_getn_int_short(ncxb);
- t_putn_int_int(ncxb);
- t_getn_int_int(ncxb);
- t_putn_int_long(ncxb);
- t_getn_int_long(ncxb);
- t_putn_int_float(ncxb);
- t_getn_int_float(ncxb);
- t_putn_int_double(ncxb);
- t_getn_int_double(ncxb);
- /* x_float */
- t_putn_float_schar(ncxb);
- t_getn_float_schar(ncxb);
- t_putn_float_uchar(ncxb);
- t_getn_float_uchar(ncxb);
- t_putn_float_short(ncxb);
- t_getn_float_short(ncxb);
- t_putn_float_int(ncxb);
- t_getn_float_int(ncxb);
- t_putn_float_long(ncxb);
- t_getn_float_long(ncxb);
- t_putn_float_float(ncxb);
- t_getn_float_float(ncxb);
- t_putn_float_double(ncxb);
- t_getn_float_double(ncxb);
- /* x_double */
- t_putn_double_schar(ncxb);
- t_getn_double_schar(ncxb);
- t_putn_double_uchar(ncxb);
- t_getn_double_uchar(ncxb);
- t_putn_double_short(ncxb);
- t_getn_double_short(ncxb);
- t_putn_double_int(ncxb);
- t_getn_double_int(ncxb);
- t_putn_double_long(ncxb);
- t_getn_double_long(ncxb);
- t_putn_double_float(ncxb);
- t_getn_double_float(ncxb);
- t_putn_double_double(ncxb);
- t_getn_double_double(ncxb);
- return 0;
- }