Done using astyle: astyle --style=kr --add-brackets --indent=spaces=4 --indent-col1-comments --unpad-paren --pad-header --align-pointer=type --lineend=linux
88 lines
1.9 KiB
C++
88 lines
1.9 KiB
C++
|
|
/* Standard C source for D1MACH -- remove the * in column 1 */
|
|
#include <stdlib.h>
|
|
#include <stdio.h>
|
|
#include <float.h>
|
|
#include <math.h>
|
|
#include <limits.h>
|
|
|
|
extern "C" {
|
|
|
|
double d1mach_(long* i)
|
|
{
|
|
switch (*i) {
|
|
case 1:
|
|
return DBL_MIN;
|
|
case 2:
|
|
return DBL_MAX;
|
|
case 3:
|
|
return DBL_EPSILON/FLT_RADIX;
|
|
case 4:
|
|
return DBL_EPSILON;
|
|
case 5:
|
|
return log10((double)FLT_RADIX);
|
|
}
|
|
fprintf(stderr, "invalid argument: d1mach(%ld)\n", *i);
|
|
exit(1);
|
|
return 0; /* some compilers demand return values */
|
|
}
|
|
|
|
double d1mach(long* i)
|
|
{
|
|
return d1mach_(i);
|
|
}
|
|
|
|
|
|
long i1mach_(long* i)
|
|
{
|
|
switch (*i) {
|
|
case 1:
|
|
return 5; /* standard input */
|
|
case 2:
|
|
return 6; /* standard output */
|
|
case 3:
|
|
return 7; /* standard punch */
|
|
case 4:
|
|
return 0; /* standard error */
|
|
case 5:
|
|
return 32; /* bits per integer */
|
|
case 6:
|
|
return sizeof(int);
|
|
case 7:
|
|
return 2; /* base for integers */
|
|
case 8:
|
|
return 31; /* digits of integer base */
|
|
case 9:
|
|
return LONG_MAX;
|
|
case 10:
|
|
return FLT_RADIX;
|
|
case 11:
|
|
return FLT_MANT_DIG;
|
|
case 12:
|
|
return FLT_MIN_EXP;
|
|
case 13:
|
|
return FLT_MAX_EXP;
|
|
case 14:
|
|
return DBL_MANT_DIG;
|
|
case 15:
|
|
return DBL_MIN_EXP;
|
|
case 16:
|
|
return DBL_MAX_EXP;
|
|
}
|
|
fprintf(stderr, "invalid argument: i1mach(%ld)\n", *i);
|
|
exit(1);
|
|
return 0; /* some compilers demand return values */
|
|
}
|
|
|
|
long i1mach(long* i)
|
|
{
|
|
return i1mach_(i);
|
|
}
|
|
|
|
long _i1mach_(long* i)
|
|
{
|
|
return i1mach_(i);
|
|
}
|
|
|
|
}
|
|
|