1 /* -- translated by f2c (version 20100827).
2 You must link the resulting object file with libf2c:
3 on Microsoft Windows system, link with libf2c.lib;
4 on Linux or Unix systems, link with .../path/to/libf2c.a -lm
5 or, if you install libf2c.a in a standard place, with -lf2c -lm
6 -- in that order, at the end of the command line, as in
7 cc *.o -lf2c -lm
8 Source for libf2c is in /netlib/f2c/libf2c.zip, e.g.,
9
10 http://www.netlib.org/f2c/libf2c.zip
11 */
12
13 #include "libtinyf2c.h"
14
15 /* Table of constant values */
16
17 static integer c__31 = 31;
18 static integer c__1 = 1;
19
20 /* ----------------------------------------------------------------------- */
21 /* PRESISION OF REAL VARIABLE (94/09/17) */
22 /* ----------------------------------------------------------------------- */
23 /* Copyright (C) 2000-2004 GFD Dennou Club. All rights reserved. */
24 /* ----------------------------------------------------------------------- */
MAIN__(void)25 /* Main program */ int MAIN__(void)
26 {
27 /* System generated locals */
28 real r__1;
29
30 /* Builtin functions */
31 double atan(doublereal), sin(doublereal);
32 integer s_wsfe(cilist *), do_fio(integer *, char *, ftnlen), e_wsfe(void);
33 /* Subroutine */ int s_stop(char *, ftnlen);
34
35 /* Local variables */
36 static integer i__, i0, i1;
37 static real s0, s1, pi, th, eps;
38 static integer iou;
39 static real emin, emax, delta;
40 extern /* Subroutine */ int sbyte_(real *, integer *, integer *, integer *
41 ), gliget_(char *, integer *, ftnlen);
42
43 /* Fortran I/O blocks */
44 static cilist io___13 = { 0, 0, 0, "(A,1P,E10.3)", 0 };
45
46
47 pi = atan(1.f) * 4;
48 emin = 1.f;
49 emax = 0.f;
50 for (i__ = 1; i__ <= 179; ++i__) {
51 th = pi / 180 * i__;
52 s0 = sin(th);
53 s1 = s0;
54 i0 = 0;
55 i1 = 1;
56 sbyte_(&s0, &i0, &c__31, &c__1);
57 sbyte_(&s1, &i1, &c__31, &c__1);
58 delta = s1 - s0;
59 eps = (r__1 = delta / s1, abs(r__1));
60 emax = max(eps,emax);
61 emin = min(eps,emin);
62 /* L100: */
63 }
64 gliget_("IOUNIT", &iou, (ftnlen)6);
65 /* WRITE(IOU,*) ' MAX ERROR = ',EMAX */
66 /* WRITE(IOU,*) ' MIN ERROR = ',EMIN */
67 io___13.ciunit = iou;
68 s_wsfe(&io___13);
69 do_fio(&c__1, "< REPSL > IN GLPGET/GLPSET SHOULD BE ", (ftnlen)37);
70 r__1 = emax * 10;
71 do_fio(&c__1, (char *)&r__1, (ftnlen)sizeof(real));
72 e_wsfe();
73 s_stop("", (ftnlen)0);
74 return 0;
75 } /* MAIN__ */
76
repsl_()77 /* Main program alias */ int repsl_ () { MAIN__ (); return 0; }
78