#include <perms.h>

                                                                //      1  %begin
#line 1 "regression-bugs-tmp/i77print.imp"
int main(int argc, char **argv) {
  __label__ _imp_endofblock;
  _imp_initialise(argc, argv);
                                                                //      2  
                                                                //      3      {----------------------------------------------------------------------------}
                                                                //      4      ! Convert a floating point number to a string, along the lines of
                                                                //      5      ! +/-nnn.nnn@+/-nn, to occupy Places character spaces
                                                                //      6      !                        with sf significant figures.
                                                                //      7      ! Rounding/truncation will occur to ensure sf limits
                                                                //      8      !
                                                                //      9      ! %longreal f = floating point number to convert to a string
                                                                //     10      ! %integer sf = number of significant figures required
                                                                //     11      !      places = number of characters in converted string
                                                                //     12      !
                                                                //     13      ! N.B. sf must be in the range of accuracy of %longreal (<15)
                                                                //     14      !  places must be slightly greater than sf
                                                                //     15      !         (to allow for sign and scientific notation)
                                                                //     16      !         sign uses 1 character (+ is omitted)
                                                                //     17      !         decimal point uses 1 character
                                                                //     18      !         scientific notation could use :
                                                                //     19      !                1 char for "@" ndicating scientific notation
                                                                //     20      !                1 char for sign of exponent (sign always present)
                                                                //     21      !                1+ char for integer exponent
                                                                //     22      !
                                                                //     23      ! N.B. scientific notation is only used if the decimal string could
                                                                //     24      !      not fit in the places required
                                                                //     25      !
                                                                //     26      ! eg. F to S (0.003999, 3, 7) -> " 0.004 " (note rounding creates zeros after the 4)
                                                                //     27      ! or
                                                                //     28      ! eg. F to S (0.003999, 3, 4) -> " 4.00@-3" (converted to scientific notation to fit)
                                                                //     29      ! eg. F to S (0.003999, 3, 6) -> " 0.004" (fits exactly)
                                                                //     30      !
                                                                //     31      %string(255) %function imp77 F to S( %longreal f, %integer sf, places)
_imp_current_line = 31; _imp_current_file = "regression-bugs-tmp/i77print.imp";
#line 31 "regression-bugs-tmp/i77print.imp"
_imp_string /*%string(255)*/ IMP77FTOS( double F, int SF, int PLACES )
#line 31 "regression-bugs-tmp/i77print.imp"
{
  __label__ _imp_endofblock;
                                                                //     32          %string(255) s,sx
_imp_current_line = 32; _imp_current_file = "regression-bugs-tmp/i77print.imp";
#line 32 "regression-bugs-tmp/i77print.imp"
_imp_string /*%string(255)*/ S;
#line 32 "regression-bugs-tmp/i77print.imp"
_imp_string /*%string(255)*/ SX;
                                                                //     33          %string(15) science
_imp_current_line = 33; _imp_current_file = "regression-bugs-tmp/i77print.imp";
#line 33 "regression-bugs-tmp/i77print.imp"
_imp_string /*%string(15)*/ SCIENCE;
                                                                //     34          %integer dc,carry
_imp_current_line = 34; _imp_current_file = "regression-bugs-tmp/i77print.imp";
#line 34 "regression-bugs-tmp/i77print.imp"
int DC;
#line 34 "regression-bugs-tmp/i77print.imp"
int CARRY;
                                                                //     35          %integer sign,exponent, digit, point
_imp_current_line = 35; _imp_current_file = "regression-bugs-tmp/i77print.imp";
#line 35 "regression-bugs-tmp/i77print.imp"
int SIGN;
#line 35 "regression-bugs-tmp/i77print.imp"
int EXPONENT;
#line 35 "regression-bugs-tmp/i77print.imp"
int DIGIT;
#line 35 "regression-bugs-tmp/i77print.imp"
int POINT;
                                                                //     36  
                                                                //     37          %if (sf > 14) %then sf = 14
_imp_current_line = 37; _imp_current_file = "regression-bugs-tmp/i77print.imp";
#line 37 "regression-bugs-tmp/i77print.imp"
if (((SF) <= (14))) goto L_0002;
#line 37 "regression-bugs-tmp/i77print.imp"
SF = 14;
#line 37 "regression-bugs-tmp/i77print.imp"
L_0002:;
                                                                //     38  
                                                                //     39          %begin
_imp_current_line = 39; _imp_current_file = "regression-bugs-tmp/i77print.imp";
#line 39 "regression-bugs-tmp/i77print.imp"
void _BLOCK_1_LEVEL_2_(void) {
  __label__ _imp_endofblock;
                                                                //     40              %integer i
_imp_current_line = 40; _imp_current_file = "regression-bugs-tmp/i77print.imp";
#line 40 "regression-bugs-tmp/i77print.imp"
int I;
                                                                //     41              %integerarray digits(1:sf+1)
_imp_current_line = 41; _imp_current_file = "regression-bugs-tmp/i77print.imp";
#line 41 "regression-bugs-tmp/i77print.imp"
int DIGITS[(((unsigned char)((((int)((((int)(SF)) + (1)))) - (1)))) + (1))];
                                                                //     42  
                                                                //     43              sign = 0
_imp_current_line = 43; _imp_current_file = "regression-bugs-tmp/i77print.imp";
#line 43 "regression-bugs-tmp/i77print.imp"
SIGN = 0;
                                                                //     44  
                                                                //     45              %for i = 1,1,sf+1 %cycle
_imp_current_line = 45; _imp_current_file = "regression-bugs-tmp/i77print.imp";
#line 45 "regression-bugs-tmp/i77print.imp"
{static int _initial, _increment, _final, _control;
_initial = 1; _increment = 1; _final = (((int)(SF)) + (1)); I = _control = _initial;
if (((_final-_initial) % _increment) != 0) _imp_signal(5,1,0,"Illegal cycle I = 1, 1, (((int)(SF)) + (1))");
I -= _increment; _control -= _increment;
L_0003:;
if (I == _final) goto L_0004;
I += _increment; _control += _increment;
if (I != _control) _imp_signal(4,2,0,"Corrupt control variable I"); /* FOR loop control variable corrupted */
}
                                                                //     46                  digits(i) = 0
_imp_current_line = 46; _imp_current_file = "regression-bugs-tmp/i77print.imp";
#line 46 "regression-bugs-tmp/i77print.imp"
DIGITS[(((int)(I)) - (1))] = 0;
                                                                //     47              %repeat
_imp_current_line = 47; _imp_current_file = "regression-bugs-tmp/i77print.imp";
#line 47 "regression-bugs-tmp/i77print.imp"
goto L_0003;
#line 47 "regression-bugs-tmp/i77print.imp"
L_0004:;
                                                                //     48  
                                                                //     49              %if (f < 0) %then sign = 1 %and f = -f
_imp_current_line = 49; _imp_current_file = "regression-bugs-tmp/i77print.imp";
#line 49 "regression-bugs-tmp/i77print.imp"
if (((F) >= (0))) goto L_0006;
#line 49 "regression-bugs-tmp/i77print.imp"
SIGN = 1;
#line 49 "regression-bugs-tmp/i77print.imp"
F = (-(F));
#line 49 "regression-bugs-tmp/i77print.imp"
L_0006:;
                                                                //     50  
                                                                //     51              ! clear the floating point string
                                                                //     52              length(s) = 0
_imp_current_line = 52; _imp_current_file = "regression-bugs-tmp/i77print.imp";
#line 52 "regression-bugs-tmp/i77print.imp"
*_imp_LENGTH(&S) = 0;
                                                                //     53  
                                                                //     54              %if (f = 0) %start
_imp_current_line = 54; _imp_current_file = "regression-bugs-tmp/i77print.imp";
#line 54 "regression-bugs-tmp/i77print.imp"
if (((F) != (0))) goto L_0007;
                                                                //     55                  ! convert to positive zero
                                                                //     56                  sign = 0
_imp_current_line = 56; _imp_current_file = "regression-bugs-tmp/i77print.imp";
#line 56 "regression-bugs-tmp/i77print.imp"
SIGN = 0;
                                                                //     57                  dc = 2
_imp_current_line = 57; _imp_current_file = "regression-bugs-tmp/i77print.imp";
#line 57 "regression-bugs-tmp/i77print.imp"
DC = 2;
                                                                //     58                  sf = 2
_imp_current_line = 58; _imp_current_file = "regression-bugs-tmp/i77print.imp";
#line 58 "regression-bugs-tmp/i77print.imp"
SF = 2;
                                                                //     59                  exponent = 0
_imp_current_line = 59; _imp_current_file = "regression-bugs-tmp/i77print.imp";
#line 59 "regression-bugs-tmp/i77print.imp"
EXPONENT = 0;
                                                                //     60                  point = 1
_imp_current_line = 60; _imp_current_file = "regression-bugs-tmp/i77print.imp";
#line 60 "regression-bugs-tmp/i77print.imp"
POINT = 1;
                                                                //     61              %finish %else %start
_imp_current_line = 61; _imp_current_file = "regression-bugs-tmp/i77print.imp";
#line 61 "regression-bugs-tmp/i77print.imp"
goto L_0008;
#line 61 "regression-bugs-tmp/i77print.imp"
L_0007:;
                                                                //     62                  ! prepare the exponent, point values for (f # 0)
                                                                //     63                  ! evaluate the exponent value
                                                                //     64                  exponent = 0
_imp_current_line = 64; _imp_current_file = "regression-bugs-tmp/i77print.imp";
#line 64 "regression-bugs-tmp/i77print.imp"
EXPONENT = 0;
                                                                //     65                  %while f < 1 %cycle
_imp_current_line = 65; _imp_current_file = "regression-bugs-tmp/i77print.imp";
#line 65 "regression-bugs-tmp/i77print.imp"
L_0009:;
#line 65 "regression-bugs-tmp/i77print.imp"
if (((F) >= (1))) goto L_000a;
/*promote*/                                                                //     66                      f = f * 10
_imp_current_line = 66; _imp_current_file = "regression-bugs-tmp/i77print.imp";
#line 66 "regression-bugs-tmp/i77print.imp"
F = ((F) * ((double)(10)));
                                                                //     67                      exponent = exponent - 1
_imp_current_line = 67; _imp_current_file = "regression-bugs-tmp/i77print.imp";
#line 67 "regression-bugs-tmp/i77print.imp"
EXPONENT = (((int)(EXPONENT)) - (1));
                                                                //     68                  %repeat
_imp_current_line = 68; _imp_current_file = "regression-bugs-tmp/i77print.imp";
#line 68 "regression-bugs-tmp/i77print.imp"
goto L_0009;
#line 68 "regression-bugs-tmp/i77print.imp"
L_000a:;
                                                                //     69  
                                                                //     70                  %while f >= 10 %cycle
_imp_current_line = 70; _imp_current_file = "regression-bugs-tmp/i77print.imp";
#line 70 "regression-bugs-tmp/i77print.imp"
L_000c:;
#line 70 "regression-bugs-tmp/i77print.imp"
if (((F) < (10))) goto L_000d;
                                                                //     71                      f = f / 10
_imp_current_line = 71; _imp_current_file = "regression-bugs-tmp/i77print.imp";
#line 71 "regression-bugs-tmp/i77print.imp"
F = (double)((double)((double)(F)) / (double)((float)(10)));
                                                                //     72                      exponent = exponent + 1
_imp_current_line = 72; _imp_current_file = "regression-bugs-tmp/i77print.imp";
#line 72 "regression-bugs-tmp/i77print.imp"
EXPONENT = (((int)(EXPONENT)) + (1));
                                                                //     73                  %repeat
_imp_current_line = 73; _imp_current_file = "regression-bugs-tmp/i77print.imp";
#line 73 "regression-bugs-tmp/i77print.imp"
goto L_000c;
#line 73 "regression-bugs-tmp/i77print.imp"
L_000d:;
                                                                //     74  
                                                                //     75                  ! locate the decimal point
                                                                //     76                  point = 1
_imp_current_line = 76; _imp_current_file = "regression-bugs-tmp/i77print.imp";
#line 76 "regression-bugs-tmp/i77print.imp"
POINT = 1;
                                                                //     77                  ! zero the digit count
                                                                //     78                  dc = 0
_imp_current_line = 78; _imp_current_file = "regression-bugs-tmp/i77print.imp";
#line 78 "regression-bugs-tmp/i77print.imp"
DC = 0;
                                                                //     79  
                                                                //     80                  ! Loop to get the significant figure digits with an extra digit
                                                                //     81                  ! so we can use it to round the the required sig figs
                                                                //     82                  ! Rounding as we go through this loop can "oversize" the digit.
                                                                //     83                  ! The next stage does the rounding to the correct sig fig.
                                                                //     84                  %for i = 1,1,sf + 1 %cycle
_imp_current_line = 84; _imp_current_file = "regression-bugs-tmp/i77print.imp";
#line 84 "regression-bugs-tmp/i77print.imp"
{static int _initial, _increment, _final, _control;
_initial = 1; _increment = 1; _final = (((int)(SF)) + (1)); I = _control = _initial;
if (((_final-_initial) % _increment) != 0) _imp_signal(5,1,0,"Illegal cycle I = 1, 1, (((int)(SF)) + (1))");
I -= _increment; _control -= _increment;
L_000f:;
if (I == _final) goto L_0010;
I += _increment; _control += _increment;
if (I != _control) _imp_signal(4,2,0,"Corrupt control variable I"); /* FOR loop control variable corrupted */
}
                                                                //     85                      digit = int pt(f)
_imp_current_line = 85; _imp_current_file = "regression-bugs-tmp/i77print.imp";
#line 85 "regression-bugs-tmp/i77print.imp"
DIGIT = _imp_INTPT(F);
                                                                //     86                      %if (digit > 9) %then digit = 9
_imp_current_line = 86; _imp_current_file = "regression-bugs-tmp/i77print.imp";
#line 86 "regression-bugs-tmp/i77print.imp"
if (((DIGIT) <= (9))) goto L_0012;
#line 86 "regression-bugs-tmp/i77print.imp"
DIGIT = 9;
#line 86 "regression-bugs-tmp/i77print.imp"
L_0012:;
                                                                //     87                      dc = dc + 1
_imp_current_line = 87; _imp_current_file = "regression-bugs-tmp/i77print.imp";
#line 87 "regression-bugs-tmp/i77print.imp"
DC = (((int)(DC)) + (1));
                                                                //     88                      digits(dc) = digit
_imp_current_line = 88; _imp_current_file = "regression-bugs-tmp/i77print.imp";
#line 88 "regression-bugs-tmp/i77print.imp"
DIGITS[(((int)(DC)) - (1))] = DIGIT;
/*promote*//*Warning: potential loss of precision converting from integer AST_ICONST (10 - 4 bytes) to real AST_BINOP (((F) - ((double)(DIGIT))) - 0 bytes) detected at ast.c line 108 */
                                                                //     89                      f = (f - digit)*10
_imp_current_line = 89; _imp_current_file = "regression-bugs-tmp/i77print.imp";
#line 89 "regression-bugs-tmp/i77print.imp"
F = ((((F) - ((double)(DIGIT)))) * ((10)));
                                                                //     90                  %repeat
_imp_current_line = 90; _imp_current_file = "regression-bugs-tmp/i77print.imp";
#line 90 "regression-bugs-tmp/i77print.imp"
goto L_000f;
#line 90 "regression-bugs-tmp/i77print.imp"
L_0010:;
                                                                //     91  
                                                                //     92                  ! do the rounding to the sf significant figures
                                                                //     93                  %if (digits(dc) > 4) %start
_imp_current_line = 93; _imp_current_file = "regression-bugs-tmp/i77print.imp";
#line 93 "regression-bugs-tmp/i77print.imp"
if (((DIGITS[(((int)(DC)) - (1))]) <= (4))) goto L_0013;
                                                                //     94                      ! we need to possibly round up the digits sequence
                                                                //     95                      carry = 1
_imp_current_line = 95; _imp_current_file = "regression-bugs-tmp/i77print.imp";
#line 95 "regression-bugs-tmp/i77print.imp"
CARRY = 1;
                                                                //     96                      %for i = dc - 1,-1,1 %cycle
_imp_current_line = 96; _imp_current_file = "regression-bugs-tmp/i77print.imp";
#line 96 "regression-bugs-tmp/i77print.imp"
I = (((unsigned char)((((int)(DC)) - (1)))) + (1));
if ((((1)-((((int)(DC)) - (1)))) % ((-1))) != 0) _imp_signal(5,1,0,"Illegal cycle I = (((int)(DC)) - (1)), (-1), 1");
L_0014:;
if (I == 1) goto L_0015;
I += (-1);
                                                                //     97                          digits(i) = digits(i) + carry
_imp_current_line = 97; _imp_current_file = "regression-bugs-tmp/i77print.imp";
#line 97 "regression-bugs-tmp/i77print.imp"
DIGITS[(((int)(I)) - (1))] = (((int)(DIGITS[(((int)(I)) - (1))])) + (CARRY));
                                                                //     98                          %if (digits(i) > 9) %start
_imp_current_line = 98; _imp_current_file = "regression-bugs-tmp/i77print.imp";
#line 98 "regression-bugs-tmp/i77print.imp"
if (((DIGITS[(((int)(I)) - (1))]) <= (9))) goto L_0017;
                                                                //     99                              carry = 1
_imp_current_line = 99; _imp_current_file = "regression-bugs-tmp/i77print.imp";
#line 99 "regression-bugs-tmp/i77print.imp"
CARRY = 1;
                                                                //    100                              digits(i) = 0
_imp_current_line = 100; _imp_current_file = "regression-bugs-tmp/i77print.imp";
#line 100 "regression-bugs-tmp/i77print.imp"
DIGITS[(((int)(I)) - (1))] = 0;
                                                                //    101                          %finish %else %start
_imp_current_line = 101; _imp_current_file = "regression-bugs-tmp/i77print.imp";
#line 101 "regression-bugs-tmp/i77print.imp"
goto L_0018;
#line 101 "regression-bugs-tmp/i77print.imp"
L_0017:;
                                                                //    102                              carry = 0
_imp_current_line = 102; _imp_current_file = "regression-bugs-tmp/i77print.imp";
#line 102 "regression-bugs-tmp/i77print.imp"
CARRY = 0;
                                                                //    103                          %finish
_imp_current_line = 103; _imp_current_file = "regression-bugs-tmp/i77print.imp";
#line 103 "regression-bugs-tmp/i77print.imp"
L_0018:;
                                                                //    104                      %repeat
_imp_current_line = 104; _imp_current_file = "regression-bugs-tmp/i77print.imp";
#line 104 "regression-bugs-tmp/i77print.imp"
goto L_0014;
#line 104 "regression-bugs-tmp/i77print.imp"
L_0015:;
                                                                //    105                  %finish
_imp_current_line = 105; _imp_current_file = "regression-bugs-tmp/i77print.imp";
#line 105 "regression-bugs-tmp/i77print.imp"
L_0013:;
                                                                //    106                  ! ignore the rounding digit
                                                                //    107                  dc = dc - 1
_imp_current_line = 107; _imp_current_file = "regression-bugs-tmp/i77print.imp";
#line 107 "regression-bugs-tmp/i77print.imp"
DC = (((int)(DC)) - (1));
                                                                //    108  
                                                                //    109                  ! Now eliminate any trailing zeros
                                                                //    110                  ! We assume that rounding has created
                                                                //    111                  ! a sequence of trailing zeros
                                                                //    112                  %while (digits(dc) = 0) %and (dc > 1) %cycle
_imp_current_line = 112; _imp_current_file = "regression-bugs-tmp/i77print.imp";
#line 112 "regression-bugs-tmp/i77print.imp"
L_0019:;
#line 112 "regression-bugs-tmp/i77print.imp"
if (((DIGITS[(((int)(DC)) - (1))]) != (0))) goto L_001a;
#line 112 "regression-bugs-tmp/i77print.imp"
if (((DC) <= (1))) goto L_001a;
                                                                //    113                      dc = dc - 1
_imp_current_line = 113; _imp_current_file = "regression-bugs-tmp/i77print.imp";
#line 113 "regression-bugs-tmp/i77print.imp"
DC = (((int)(DC)) - (1));
                                                                //    114                  %repeat
_imp_current_line = 114; _imp_current_file = "regression-bugs-tmp/i77print.imp";
#line 114 "regression-bugs-tmp/i77print.imp"
goto L_0019;
#line 114 "regression-bugs-tmp/i77print.imp"
L_001a:;
                                                                //    115                  sf = dc
_imp_current_line = 115; _imp_current_file = "regression-bugs-tmp/i77print.imp";
#line 115 "regression-bugs-tmp/i77print.imp"
SF = DC;
                                                                //    116              %finish
_imp_current_line = 116; _imp_current_file = "regression-bugs-tmp/i77print.imp";
#line 116 "regression-bugs-tmp/i77print.imp"
L_0008:;
                                                                //    117  
                                                                //    118              length(s) = 0
_imp_current_line = 118; _imp_current_file = "regression-bugs-tmp/i77print.imp";
#line 118 "regression-bugs-tmp/i77print.imp"
*_imp_LENGTH(&S) = 0;
                                                                //    119              point = 1
_imp_current_line = 119; _imp_current_file = "regression-bugs-tmp/i77print.imp";
#line 119 "regression-bugs-tmp/i77print.imp"
POINT = 1;
                                                                //    120              %for i = 1,1,sf %cycle
_imp_current_line = 120; _imp_current_file = "regression-bugs-tmp/i77print.imp";
#line 120 "regression-bugs-tmp/i77print.imp"
{static int _initial, _increment, _final, _control;
_initial = 1; _increment = 1; _final = SF; I = _control = _initial;
if (((_final-_initial) % _increment) != 0) _imp_signal(5,1,0,"Illegal cycle I = 1, 1, SF");
I -= _increment; _control -= _increment;
L_001c:;
if (I == _final) goto L_001d;
I += _increment; _control += _increment;
if (I != _control) _imp_signal(4,2,0,"Corrupt control variable I"); /* FOR loop control variable corrupted */
}
                                                                //    121                  s = s.tostring(digits(i) + '0')
_imp_current_line = 121; _imp_current_file = "regression-bugs-tmp/i77print.imp";
#line 121 "regression-bugs-tmp/i77print.imp"
S = _imp_join((_imp_string)S,(_imp_string)_imp_TOSTRING((((int)(DIGITS[(((int)(I)) - (1))])) + (48))));
                                                                //    122                  %if (point = i) %then s = s."."
_imp_current_line = 122; _imp_current_file = "regression-bugs-tmp/i77print.imp";
#line 122 "regression-bugs-tmp/i77print.imp"
if (((POINT) != (I))) goto L_001f;
#line 122 "regression-bugs-tmp/i77print.imp"
S = _imp_join((_imp_string)S,(_imp_string)_imp_str_literal("."));
#line 122 "regression-bugs-tmp/i77print.imp"
L_001f:;
                                                                //    123              %repeat
_imp_current_line = 123; _imp_current_file = "regression-bugs-tmp/i77print.imp";
#line 123 "regression-bugs-tmp/i77print.imp"
goto L_001c;
#line 123 "regression-bugs-tmp/i77print.imp"
L_001d:;
                                                                //    124              %if (sf = point) %then s = s."0"
_imp_current_line = 124; _imp_current_file = "regression-bugs-tmp/i77print.imp";
#line 124 "regression-bugs-tmp/i77print.imp"
if (((SF) != (POINT))) goto L_0020;
#line 124 "regression-bugs-tmp/i77print.imp"
S = _imp_join((_imp_string)S,(_imp_string)_imp_str_literal("0"));
#line 124 "regression-bugs-tmp/i77print.imp"
L_0020:;
                                                                //    125              %if (exponent < 0) %then s=s."@-".itos(-exponent,0)
_imp_current_line = 125; _imp_current_file = "regression-bugs-tmp/i77print.imp";
#line 125 "regression-bugs-tmp/i77print.imp"
if (((EXPONENT) >= (0))) goto L_0021;
#line 125 "regression-bugs-tmp/i77print.imp"
S = _imp_join((_imp_string)_imp_join((_imp_string)S,(_imp_string)_imp_str_literal("@-")),(_imp_string)_imp_ITOS((-(EXPONENT)), 0));
#line 125 "regression-bugs-tmp/i77print.imp"
L_0021:;
                                                                //    126              %if (exponent > 0) %then s=s."@+".itos(exponent,0)
_imp_current_line = 126; _imp_current_file = "regression-bugs-tmp/i77print.imp";
#line 126 "regression-bugs-tmp/i77print.imp"
if (((EXPONENT) <= (0))) goto L_0022;
#line 126 "regression-bugs-tmp/i77print.imp"
S = _imp_join((_imp_string)_imp_join((_imp_string)S,(_imp_string)_imp_str_literal("@+")),(_imp_string)_imp_ITOS(EXPONENT, 0));
#line 126 "regression-bugs-tmp/i77print.imp"
L_0022:;
                                                                //    127              science = s
_imp_current_line = 127; _imp_current_file = "regression-bugs-tmp/i77print.imp";
#line 127 "regression-bugs-tmp/i77print.imp"
SCIENCE = S;
                                                                //    128  
                                                                //    129              ! So, now for the other floating point layouts
                                                                //    130              ! we should see which version will fit into the places allowed
                                                                //    131              ! 1) 0.00000nnnn (point <= 0)
                                                                //    132              ! OR
                                                                //    133              ! 2) nnnn.0 (point = sf)
                                                                //    134              ! OR
                                                                //    135              ! 3) nnnn00000.0 (point > sf)
                                                                //    136              !
                                                                //    137              length(s) = 0
_imp_current_line = 137; _imp_current_file = "regression-bugs-tmp/i77print.imp";
#line 137 "regression-bugs-tmp/i77print.imp"
*_imp_LENGTH(&S) = 0;
                                                                //    138              point = exponent + 1
_imp_current_line = 138; _imp_current_file = "regression-bugs-tmp/i77print.imp";
#line 138 "regression-bugs-tmp/i77print.imp"
POINT = (((int)(EXPONENT)) + (1));
                                                                //    139              ! First form the sig fig digit string
                                                                //    140              ! possibly including a decimal point
                                                                //    141              %for i = 1,1,sf %cycle
_imp_current_line = 141; _imp_current_file = "regression-bugs-tmp/i77print.imp";
#line 141 "regression-bugs-tmp/i77print.imp"
{static int _initial, _increment, _final, _control;
_initial = 1; _increment = 1; _final = SF; I = _control = _initial;
if (((_final-_initial) % _increment) != 0) _imp_signal(5,1,0,"Illegal cycle I = 1, 1, SF");
I -= _increment; _control -= _increment;
L_0023:;
if (I == _final) goto L_0024;
I += _increment; _control += _increment;
if (I != _control) _imp_signal(4,2,0,"Corrupt control variable I"); /* FOR loop control variable corrupted */
}
                                                                //    142                  s = s.tostring(digits(i) + '0')
_imp_current_line = 142; _imp_current_file = "regression-bugs-tmp/i77print.imp";
#line 142 "regression-bugs-tmp/i77print.imp"
S = _imp_join((_imp_string)S,(_imp_string)_imp_TOSTRING((((int)(DIGITS[(((int)(I)) - (1))])) + (48))));
                                                                //    143                  %if (point = i) %then s = s."."
_imp_current_line = 143; _imp_current_file = "regression-bugs-tmp/i77print.imp";
#line 143 "regression-bugs-tmp/i77print.imp"
if (((POINT) != (I))) goto L_0026;
#line 143 "regression-bugs-tmp/i77print.imp"
S = _imp_join((_imp_string)S,(_imp_string)_imp_str_literal("."));
#line 143 "regression-bugs-tmp/i77print.imp"
L_0026:;
                                                                //    144              %repeat
_imp_current_line = 144; _imp_current_file = "regression-bugs-tmp/i77print.imp";
#line 144 "regression-bugs-tmp/i77print.imp"
goto L_0023;
#line 144 "regression-bugs-tmp/i77print.imp"
L_0024:;
                                                                //    145  
                                                                //    146              ! Checking for format (1)
                                                                //    147              ! 1) 0.00000nnnn (point <= 0)
                                                                //    148              %if (point <= 0) %start
_imp_current_line = 148; _imp_current_file = "regression-bugs-tmp/i77print.imp";
#line 148 "regression-bugs-tmp/i77print.imp"
if (((POINT) > (0))) goto L_0027;
                                                                //    149                  %for i=1,1,-point %cycle
_imp_current_line = 149; _imp_current_file = "regression-bugs-tmp/i77print.imp";
#line 149 "regression-bugs-tmp/i77print.imp"
{static int _initial, _increment, _final, _control;
_initial = 1; _increment = 1; _final = (-(POINT)); I = _control = _initial;
if (((_final-_initial) % _increment) != 0) _imp_signal(5,1,0,"Illegal cycle I = 1, 1, (-(POINT))");
I -= _increment; _control -= _increment;
L_0028:;
if (I == _final) goto L_0029;
I += _increment; _control += _increment;
if (I != _control) _imp_signal(4,2,0,"Corrupt control variable I"); /* FOR loop control variable corrupted */
}
                                                                //    150                      s = "0".s
_imp_current_line = 150; _imp_current_file = "regression-bugs-tmp/i77print.imp";
#line 150 "regression-bugs-tmp/i77print.imp"
S = _imp_join((_imp_string)_imp_str_literal("0"),(_imp_string)S);
                                                                //    151                  %repeat
_imp_current_line = 151; _imp_current_file = "regression-bugs-tmp/i77print.imp";
#line 151 "regression-bugs-tmp/i77print.imp"
goto L_0028;
#line 151 "regression-bugs-tmp/i77print.imp"
L_0029:;
                                                                //    152                  s = "0.".s
_imp_current_line = 152; _imp_current_file = "regression-bugs-tmp/i77print.imp";
#line 152 "regression-bugs-tmp/i77print.imp"
S = _imp_join((_imp_string)_imp_str_literal("0."),(_imp_string)S);
                                                                //    153              %finish
_imp_current_line = 153; _imp_current_file = "regression-bugs-tmp/i77print.imp";
#line 153 "regression-bugs-tmp/i77print.imp"
L_0027:;
                                                                //    154  
                                                                //    155              ! Checking for format (2)
                                                                //    156              ! 2) nnnn.0 (point = sf)
                                                                //    157              %if (point = sf) %start
_imp_current_line = 157; _imp_current_file = "regression-bugs-tmp/i77print.imp";
#line 157 "regression-bugs-tmp/i77print.imp"
if (((POINT) != (SF))) goto L_002b;
                                                                //    158                  s = s."0"
_imp_current_line = 158; _imp_current_file = "regression-bugs-tmp/i77print.imp";
#line 158 "regression-bugs-tmp/i77print.imp"
S = _imp_join((_imp_string)S,(_imp_string)_imp_str_literal("0"));
                                                                //    159              %finish
_imp_current_line = 159; _imp_current_file = "regression-bugs-tmp/i77print.imp";
#line 159 "regression-bugs-tmp/i77print.imp"
L_002b:;
                                                                //    160  
                                                                //    161              ! Checking for format (3)
                                                                //    162              ! 3) nnnn00000.0 (point > sf)
                                                                //    163              %if (point > sf) %start
_imp_current_line = 163; _imp_current_file = "regression-bugs-tmp/i77print.imp";
#line 163 "regression-bugs-tmp/i77print.imp"
if (((POINT) <= (SF))) goto L_002c;
                                                                //    164                  %for i = 1,1,(point - sf) %cycle
_imp_current_line = 164; _imp_current_file = "regression-bugs-tmp/i77print.imp";
#line 164 "regression-bugs-tmp/i77print.imp"
{static int _initial, _increment, _final, _control;
_initial = 1; _increment = 1; _final = (((int)(POINT)) - (SF)); I = _control = _initial;
if (((_final-_initial) % _increment) != 0) _imp_signal(5,1,0,"Illegal cycle I = 1, 1, (((int)(POINT)) - (SF))");
I -= _increment; _control -= _increment;
L_002d:;
if (I == _final) goto L_002e;
I += _increment; _control += _increment;
if (I != _control) _imp_signal(4,2,0,"Corrupt control variable I"); /* FOR loop control variable corrupted */
}
                                                                //    165                      s = s."0"
_imp_current_line = 165; _imp_current_file = "regression-bugs-tmp/i77print.imp";
#line 165 "regression-bugs-tmp/i77print.imp"
S = _imp_join((_imp_string)S,(_imp_string)_imp_str_literal("0"));
                                                                //    166                  %repeat
_imp_current_line = 166; _imp_current_file = "regression-bugs-tmp/i77print.imp";
#line 166 "regression-bugs-tmp/i77print.imp"
goto L_002d;
#line 166 "regression-bugs-tmp/i77print.imp"
L_002e:;
                                                                //    167                  s = s.".0"
_imp_current_line = 167; _imp_current_file = "regression-bugs-tmp/i77print.imp";
#line 167 "regression-bugs-tmp/i77print.imp"
S = _imp_join((_imp_string)S,(_imp_string)_imp_str_literal(".0"));
                                                                //    168              %finish
_imp_current_line = 168; _imp_current_file = "regression-bugs-tmp/i77print.imp";
#line 168 "regression-bugs-tmp/i77print.imp"
L_002c:;
                                                                //    169  
                                                                //    170              ! Check to see which fits scientific v decimal notation
                                                                //    171              ! Preference is for the decimal notation
                                                                //    172              %if (length(s) > places) %start
_imp_current_line = 172; _imp_current_file = "regression-bugs-tmp/i77print.imp";
#line 172 "regression-bugs-tmp/i77print.imp"
if (((*_imp_LENGTH(&S)) <= (PLACES))) goto L_0030;
                                                                //    173                  s = science
_imp_current_line = 173; _imp_current_file = "regression-bugs-tmp/i77print.imp";
#line 173 "regression-bugs-tmp/i77print.imp"
S = SCIENCE;
                                                                //    174              %finish
_imp_current_line = 174; _imp_current_file = "regression-bugs-tmp/i77print.imp";
#line 174 "regression-bugs-tmp/i77print.imp"
L_0030:;
                                                                //    175  
                                                                //    176              %if (sign # 0) %start
_imp_current_line = 176; _imp_current_file = "regression-bugs-tmp/i77print.imp";
#line 176 "regression-bugs-tmp/i77print.imp"
if (((SIGN) == (0))) goto L_0031;
                                                                //    177                  s = "-".s
_imp_current_line = 177; _imp_current_file = "regression-bugs-tmp/i77print.imp";
#line 177 "regression-bugs-tmp/i77print.imp"
S = _imp_join((_imp_string)_imp_str_literal("-"),(_imp_string)S);
                                                                //    178              %finish %else %start
_imp_current_line = 178; _imp_current_file = "regression-bugs-tmp/i77print.imp";
#line 178 "regression-bugs-tmp/i77print.imp"
goto L_0032;
#line 178 "regression-bugs-tmp/i77print.imp"
L_0031:;
                                                                //    179                  s = " ".s
_imp_current_line = 179; _imp_current_file = "regression-bugs-tmp/i77print.imp";
#line 179 "regression-bugs-tmp/i77print.imp"
S = _imp_join((_imp_string)_imp_str_literal(" "),(_imp_string)S);
                                                                //    180              %finish
_imp_current_line = 180; _imp_current_file = "regression-bugs-tmp/i77print.imp";
#line 180 "regression-bugs-tmp/i77print.imp"
L_0032:;
                                                                //    181  
                                                                //    182              %if (length(s) < places) %start
_imp_current_line = 182; _imp_current_file = "regression-bugs-tmp/i77print.imp";
#line 182 "regression-bugs-tmp/i77print.imp"
if (((*_imp_LENGTH(&S)) >= (PLACES))) goto L_0033;
                                                                //    183                  %while (length(s) < places) %cycle
_imp_current_line = 183; _imp_current_file = "regression-bugs-tmp/i77print.imp";
#line 183 "regression-bugs-tmp/i77print.imp"
L_0034:;
#line 183 "regression-bugs-tmp/i77print.imp"
if (((*_imp_LENGTH(&S)) >= (PLACES))) goto L_0035;
                                                                //    184                      s = s." "
_imp_current_line = 184; _imp_current_file = "regression-bugs-tmp/i77print.imp";
#line 184 "regression-bugs-tmp/i77print.imp"
S = _imp_join((_imp_string)S,(_imp_string)_imp_str_literal(" "));
                                                                //    185                  %repeat
_imp_current_line = 185; _imp_current_file = "regression-bugs-tmp/i77print.imp";
#line 185 "regression-bugs-tmp/i77print.imp"
goto L_0034;
#line 185 "regression-bugs-tmp/i77print.imp"
L_0035:;
                                                                //    186              %finish
_imp_current_line = 186; _imp_current_file = "regression-bugs-tmp/i77print.imp";
#line 186 "regression-bugs-tmp/i77print.imp"
L_0033:;
                                                                //    187          %end
_imp_current_line = 187; _imp_current_file = "regression-bugs-tmp/i77print.imp";
#line 187 "regression-bugs-tmp/i77print.imp"
goto _imp_endofblock;
_imp_endofblock: ;
} // End of block _BLOCK_1_LEVEL_2_ at level 3
_BLOCK_1_LEVEL_2_();
                                                                //    188  
                                                                //    189          %result = s
_imp_current_line = 189; _imp_current_file = "regression-bugs-tmp/i77print.imp";
#line 189 "regression-bugs-tmp/i77print.imp"
return S;
                                                                //    190      %end
_imp_current_line = 190; _imp_current_file = "regression-bugs-tmp/i77print.imp";
#line 190 "regression-bugs-tmp/i77print.imp"
_imp_endofblock: ;
} // End of block IMP77FTOS at level 2
                                                                //    191  {----------------------------------------------------------------------------}
                                                                //    192  {----------------------------------------------------------------------------}
                                                                //    193      %routine imp77 print(%longreal f, %integer sf,places)
_imp_current_line = 193; _imp_current_file = "regression-bugs-tmp/i77print.imp";
#line 193 "regression-bugs-tmp/i77print.imp"
void IMP77PRINT( double F, int SF, int PLACES )
#line 193 "regression-bugs-tmp/i77print.imp"
{
  __label__ _imp_endofblock;
                                                                //    194          printstring( imp77 F to S( f, sf, places ) )
_imp_current_line = 194; _imp_current_file = "regression-bugs-tmp/i77print.imp";
#line 194 "regression-bugs-tmp/i77print.imp"
_imp_PRINTSTRING(IMP77FTOS(F, SF, PLACES));
                                                                //    195      %end
_imp_current_line = 195; _imp_current_file = "regression-bugs-tmp/i77print.imp";
#line 195 "regression-bugs-tmp/i77print.imp"
return;
_imp_endofblock: ;
} // End of block IMP77PRINT at level 2
                                                                //    196  {----------------------------------------------------------------------------}
                                                                //    197  {----------------------------------------------------------------------------}
                                                                //    198      ! Print a floating point number out, along the lines of
                                                                //    199      ! +/-nnn.nnn@+/-nn, to occupy Places character spaces.
                                                                //    200      ! Note - there's a bug in this code such that it does not
                                                                //    201      ! round the number properly.  EG 3.999999999 to 4 places
                                                                //    202      ! should be 4.00 but we print 3.99
                                                                //    203  
                                                                //    204      %routine imp77 printfl(%longreal x, %integer places)
_imp_current_line = 204; _imp_current_file = "regression-bugs-tmp/i77print.imp";
#line 204 "regression-bugs-tmp/i77print.imp"
void IMP77PRINTFL( double X, int PLACES )
#line 204 "regression-bugs-tmp/i77print.imp"
{
  __label__ _imp_endofblock;
                                                                //    205          %integer exponent, digit, point, printexpo
_imp_current_line = 205; _imp_current_file = "regression-bugs-tmp/i77print.imp";
#line 205 "regression-bugs-tmp/i77print.imp"
int EXPONENT;
#line 205 "regression-bugs-tmp/i77print.imp"
int DIGIT;
#line 205 "regression-bugs-tmp/i77print.imp"
int POINT;
#line 205 "regression-bugs-tmp/i77print.imp"
int PRINTEXPO;
                                                                //    206  
                                                                //    207          %if x = 0 %start
_imp_current_line = 207; _imp_current_file = "regression-bugs-tmp/i77print.imp";
#line 207 "regression-bugs-tmp/i77print.imp"
if (((X) != (0))) goto L_0037;
                                                                //    208              printsymbol('0')
_imp_current_line = 208; _imp_current_file = "regression-bugs-tmp/i77print.imp";
#line 208 "regression-bugs-tmp/i77print.imp"
_imp_PRINTSYMBOL(48);
                                                                //    209              printsymbol('.')
_imp_current_line = 209; _imp_current_file = "regression-bugs-tmp/i77print.imp";
#line 209 "regression-bugs-tmp/i77print.imp"
_imp_PRINTSYMBOL(46);
                                                                //    210              printsymbol('0')
_imp_current_line = 210; _imp_current_file = "regression-bugs-tmp/i77print.imp";
#line 210 "regression-bugs-tmp/i77print.imp"
_imp_PRINTSYMBOL(48);
                                                                //    211              %while places > 3 %cycle
_imp_current_line = 211; _imp_current_file = "regression-bugs-tmp/i77print.imp";
#line 211 "regression-bugs-tmp/i77print.imp"
L_0038:;
#line 211 "regression-bugs-tmp/i77print.imp"
if (((PLACES) <= (3))) goto L_0039;
                                                                //    212                  printsymbol('0')
_imp_current_line = 212; _imp_current_file = "regression-bugs-tmp/i77print.imp";
#line 212 "regression-bugs-tmp/i77print.imp"
_imp_PRINTSYMBOL(48);
                                                                //    213                  places = places - 1
_imp_current_line = 213; _imp_current_file = "regression-bugs-tmp/i77print.imp";
#line 213 "regression-bugs-tmp/i77print.imp"
PLACES = (((int)(PLACES)) - (1));
                                                                //    214              %repeat
_imp_current_line = 214; _imp_current_file = "regression-bugs-tmp/i77print.imp";
#line 214 "regression-bugs-tmp/i77print.imp"
goto L_0038;
#line 214 "regression-bugs-tmp/i77print.imp"
L_0039:;
                                                                //    215              %return
_imp_current_line = 215; _imp_current_file = "regression-bugs-tmp/i77print.imp";
#line 215 "regression-bugs-tmp/i77print.imp"
return;
                                                                //    216          %finish
_imp_current_line = 216; _imp_current_file = "regression-bugs-tmp/i77print.imp";
#line 216 "regression-bugs-tmp/i77print.imp"
L_0037:;
                                                                //    217  
                                                                //    218          %if x < 0 %then printsymbol('-') %and x = -x %and places = places - 1
_imp_current_line = 218; _imp_current_file = "regression-bugs-tmp/i77print.imp";
#line 218 "regression-bugs-tmp/i77print.imp"
if (((X) >= (0))) goto L_003b;
#line 218 "regression-bugs-tmp/i77print.imp"
_imp_PRINTSYMBOL(45);
#line 218 "regression-bugs-tmp/i77print.imp"
X = (-(X));
#line 218 "regression-bugs-tmp/i77print.imp"
PLACES = (((int)(PLACES)) - (1));
#line 218 "regression-bugs-tmp/i77print.imp"
L_003b:;
                                                                //    219  
                                                                //    220          %if places < 3 %then places = 3
_imp_current_line = 220; _imp_current_file = "regression-bugs-tmp/i77print.imp";
#line 220 "regression-bugs-tmp/i77print.imp"
if (((PLACES) >= (3))) goto L_003c;
#line 220 "regression-bugs-tmp/i77print.imp"
PLACES = 3;
#line 220 "regression-bugs-tmp/i77print.imp"
L_003c:;
                                                                //    221     
                                                                //    222          exponent = 0
_imp_current_line = 222; _imp_current_file = "regression-bugs-tmp/i77print.imp";
#line 222 "regression-bugs-tmp/i77print.imp"
EXPONENT = 0;
                                                                //    223          printexpo = 0
_imp_current_line = 223; _imp_current_file = "regression-bugs-tmp/i77print.imp";
#line 223 "regression-bugs-tmp/i77print.imp"
PRINTEXPO = 0;
                                                                //    224  
                                                                //    225          %while x < 1 %cycle
_imp_current_line = 225; _imp_current_file = "regression-bugs-tmp/i77print.imp";
#line 225 "regression-bugs-tmp/i77print.imp"
L_003d:;
#line 225 "regression-bugs-tmp/i77print.imp"
if (((X) >= (1))) goto L_003e;
/*promote*/                                                                //    226              x = x * 10
_imp_current_line = 226; _imp_current_file = "regression-bugs-tmp/i77print.imp";
#line 226 "regression-bugs-tmp/i77print.imp"
X = ((X) * ((double)(10)));
                                                                //    227              exponent = exponent - 1
_imp_current_line = 227; _imp_current_file = "regression-bugs-tmp/i77print.imp";
#line 227 "regression-bugs-tmp/i77print.imp"
EXPONENT = (((int)(EXPONENT)) - (1));
                                                                //    228          %repeat
_imp_current_line = 228; _imp_current_file = "regression-bugs-tmp/i77print.imp";
#line 228 "regression-bugs-tmp/i77print.imp"
goto L_003d;
#line 228 "regression-bugs-tmp/i77print.imp"
L_003e:;
                                                                //    229  
                                                                //    230          %while x >= 10 %cycle
_imp_current_line = 230; _imp_current_file = "regression-bugs-tmp/i77print.imp";
#line 230 "regression-bugs-tmp/i77print.imp"
L_0040:;
#line 230 "regression-bugs-tmp/i77print.imp"
if (((X) < (10))) goto L_0041;
                                                                //    231              x = x / 10
_imp_current_line = 231; _imp_current_file = "regression-bugs-tmp/i77print.imp";
#line 231 "regression-bugs-tmp/i77print.imp"
X = (double)((double)((double)(X)) / (double)((float)(10)));
                                                                //    232              exponent = exponent + 1
_imp_current_line = 232; _imp_current_file = "regression-bugs-tmp/i77print.imp";
#line 232 "regression-bugs-tmp/i77print.imp"
EXPONENT = (((int)(EXPONENT)) + (1));
                                                                //    233          %repeat
_imp_current_line = 233; _imp_current_file = "regression-bugs-tmp/i77print.imp";
#line 233 "regression-bugs-tmp/i77print.imp"
goto L_0040;
#line 233 "regression-bugs-tmp/i77print.imp"
L_0041:;
                                                                //    234  
                                                                //    235          ! Now X is between 1.0 and 9.99 and exponent is set accordingly
                                                                //    236          ! If the exponent is "large" we will use scientific notation
                                                                //    237          point = places - 2;     ! for useful digits after the "0."
_imp_current_line = 237; _imp_current_file = "regression-bugs-tmp/i77print.imp";
#line 237 "regression-bugs-tmp/i77print.imp"
POINT = (((int)(PLACES)) - (2));
                                                                //    238          %if exponent >= places %or exponent < -point %start
_imp_current_line = 238; _imp_current_file = "regression-bugs-tmp/i77print.imp";
#line 238 "regression-bugs-tmp/i77print.imp"
if (((EXPONENT) >= (PLACES))) goto L_0042;
#line 238 "regression-bugs-tmp/i77print.imp"
if (((EXPONENT) >= ((-(POINT))))) goto L_0043;
#line 238 "regression-bugs-tmp/i77print.imp"
L_0042:;
                                                                //    239              printexpo = exponent
_imp_current_line = 239; _imp_current_file = "regression-bugs-tmp/i77print.imp";
#line 239 "regression-bugs-tmp/i77print.imp"
PRINTEXPO = EXPONENT;
                                                                //    240              exponent = 0
_imp_current_line = 240; _imp_current_file = "regression-bugs-tmp/i77print.imp";
#line 240 "regression-bugs-tmp/i77print.imp"
EXPONENT = 0;
                                                                //    241              places = places - 2
_imp_current_line = 241; _imp_current_file = "regression-bugs-tmp/i77print.imp";
#line 241 "regression-bugs-tmp/i77print.imp"
PLACES = (((int)(PLACES)) - (2));
                                                                //    242          %finish
_imp_current_line = 242; _imp_current_file = "regression-bugs-tmp/i77print.imp";
#line 242 "regression-bugs-tmp/i77print.imp"
L_0043:;
                                                                //    243  
                                                                //    244          ! Now the exponent is small-ish
                                                                //    245          %if exponent < 0 %start;      ! 0.nnnn
_imp_current_line = 245; _imp_current_file = "regression-bugs-tmp/i77print.imp";
#line 245 "regression-bugs-tmp/i77print.imp"
if (((EXPONENT) >= (0))) goto L_0044;
                                                                //    246              printsymbol('0')
_imp_current_line = 246; _imp_current_file = "regression-bugs-tmp/i77print.imp";
#line 246 "regression-bugs-tmp/i77print.imp"
_imp_PRINTSYMBOL(48);
                                                                //    247              printsymbol('.')
_imp_current_line = 247; _imp_current_file = "regression-bugs-tmp/i77print.imp";
#line 247 "regression-bugs-tmp/i77print.imp"
_imp_PRINTSYMBOL(46);
                                                                //    248              places = places - 2
_imp_current_line = 248; _imp_current_file = "regression-bugs-tmp/i77print.imp";
#line 248 "regression-bugs-tmp/i77print.imp"
PLACES = (((int)(PLACES)) - (2));
                                                                //    249  
                                                                //    250              %while exponent < -1 %cycle
_imp_current_line = 250; _imp_current_file = "regression-bugs-tmp/i77print.imp";
#line 250 "regression-bugs-tmp/i77print.imp"
L_0045:;
#line 250 "regression-bugs-tmp/i77print.imp"
if (((EXPONENT) >= ((-1)))) goto L_0046;
                                                                //    251                  printsymbol('0')
_imp_current_line = 251; _imp_current_file = "regression-bugs-tmp/i77print.imp";
#line 251 "regression-bugs-tmp/i77print.imp"
_imp_PRINTSYMBOL(48);
                                                                //    252                  exponent = exponent + 1
_imp_current_line = 252; _imp_current_file = "regression-bugs-tmp/i77print.imp";
#line 252 "regression-bugs-tmp/i77print.imp"
EXPONENT = (((int)(EXPONENT)) + (1));
                                                                //    253                  places = places - 1
_imp_current_line = 253; _imp_current_file = "regression-bugs-tmp/i77print.imp";
#line 253 "regression-bugs-tmp/i77print.imp"
PLACES = (((int)(PLACES)) - (1));
                                                                //    254              %repeat
_imp_current_line = 254; _imp_current_file = "regression-bugs-tmp/i77print.imp";
#line 254 "regression-bugs-tmp/i77print.imp"
goto L_0045;
#line 254 "regression-bugs-tmp/i77print.imp"
L_0046:;
                                                                //    255  
                                                                //    256              point = -1; ! because we've already passed that
_imp_current_line = 256; _imp_current_file = "regression-bugs-tmp/i77print.imp";
#line 256 "regression-bugs-tmp/i77print.imp"
POINT = (-1);
                                                                //    257          %else;          ! nnn.nnn
_imp_current_line = 257; _imp_current_file = "regression-bugs-tmp/i77print.imp";
#line 257 "regression-bugs-tmp/i77print.imp"
goto L_0048;
#line 257 "regression-bugs-tmp/i77print.imp"
L_0044:;
                                                                //    258              point = exponent
_imp_current_line = 258; _imp_current_file = "regression-bugs-tmp/i77print.imp";
#line 258 "regression-bugs-tmp/i77print.imp"
POINT = EXPONENT;
                                                                //    259          %finish
_imp_current_line = 259; _imp_current_file = "regression-bugs-tmp/i77print.imp";
#line 259 "regression-bugs-tmp/i77print.imp"
L_0048:;
                                                                //    260  
                                                                //    261          %while places > 0 %cycle
_imp_current_line = 261; _imp_current_file = "regression-bugs-tmp/i77print.imp";
#line 261 "regression-bugs-tmp/i77print.imp"
L_0049:;
#line 261 "regression-bugs-tmp/i77print.imp"
if (((PLACES) <= (0))) goto L_004a;
                                                                //    262              digit = int pt(x)
_imp_current_line = 262; _imp_current_file = "regression-bugs-tmp/i77print.imp";
#line 262 "regression-bugs-tmp/i77print.imp"
DIGIT = _imp_INTPT(X);
                                                                //    263              ! Rounding as we go through this loop can "oversize" the digit.  This
                                                                //    264              ! of course tells us that we should have printed (eg) 40000 but we
                                                                //    265              ! are now stuck with printing 39999
                                                                //    266              %if digit > 9 %then digit = 9
_imp_current_line = 266; _imp_current_file = "regression-bugs-tmp/i77print.imp";
#line 266 "regression-bugs-tmp/i77print.imp"
if (((DIGIT) <= (9))) goto L_004c;
#line 266 "regression-bugs-tmp/i77print.imp"
DIGIT = 9;
#line 266 "regression-bugs-tmp/i77print.imp"
L_004c:;
                                                                //    267              printsymbol(digit + '0')
_imp_current_line = 267; _imp_current_file = "regression-bugs-tmp/i77print.imp";
#line 267 "regression-bugs-tmp/i77print.imp"
_imp_PRINTSYMBOL((((int)(DIGIT)) + (48)));
/*promote*//*Warning: potential loss of precision converting from integer AST_ICONST (10 - 4 bytes) to real AST_BINOP (((X) - ((double)(DIGIT))) - 0 bytes) detected at ast.c line 108 */
                                                                //    268              x = (x - digit)*10
_imp_current_line = 268; _imp_current_file = "regression-bugs-tmp/i77print.imp";
#line 268 "regression-bugs-tmp/i77print.imp"
X = ((((X) - ((double)(DIGIT)))) * ((10)));
                                                                //    269              %if point = 0 %then printsymbol('.') %and places = places - 1
_imp_current_line = 269; _imp_current_file = "regression-bugs-tmp/i77print.imp";
#line 269 "regression-bugs-tmp/i77print.imp"
if (((POINT) != (0))) goto L_004d;
#line 269 "regression-bugs-tmp/i77print.imp"
_imp_PRINTSYMBOL(46);
#line 269 "regression-bugs-tmp/i77print.imp"
PLACES = (((int)(PLACES)) - (1));
#line 269 "regression-bugs-tmp/i77print.imp"
L_004d:;
                                                                //    270              point = point - 1
_imp_current_line = 270; _imp_current_file = "regression-bugs-tmp/i77print.imp";
#line 270 "regression-bugs-tmp/i77print.imp"
POINT = (((int)(POINT)) - (1));
                                                                //    271              places = places - 1
_imp_current_line = 271; _imp_current_file = "regression-bugs-tmp/i77print.imp";
#line 271 "regression-bugs-tmp/i77print.imp"
PLACES = (((int)(PLACES)) - (1));
                                                                //    272          %repeat
_imp_current_line = 272; _imp_current_file = "regression-bugs-tmp/i77print.imp";
#line 272 "regression-bugs-tmp/i77print.imp"
goto L_0049;
#line 272 "regression-bugs-tmp/i77print.imp"
L_004a:;
                                                                //    273  
                                                                //    274          %if printexpo # 0 %start
_imp_current_line = 274; _imp_current_file = "regression-bugs-tmp/i77print.imp";
#line 274 "regression-bugs-tmp/i77print.imp"
if (((PRINTEXPO) == (0))) goto L_004e;
                                                                //    275              printsymbol('@')
_imp_current_line = 275; _imp_current_file = "regression-bugs-tmp/i77print.imp";
#line 275 "regression-bugs-tmp/i77print.imp"
_imp_PRINTSYMBOL(64);
                                                                //    276  !!            write68k(printexpo, 1)
                                                                //    277          %finish
_imp_current_line = 277; _imp_current_file = "regression-bugs-tmp/i77print.imp";
#line 277 "regression-bugs-tmp/i77print.imp"
L_004e:;
                                                                //    278      %end
_imp_current_line = 278; _imp_current_file = "regression-bugs-tmp/i77print.imp";
#line 278 "regression-bugs-tmp/i77print.imp"
return;
_imp_endofblock: ;
} // End of block IMP77PRINTFL at level 2
                                                                //    279  
                                                                //    280  %endofprogram
_imp_current_line = 280; _imp_current_file = "regression-bugs-tmp/i77print.imp";
#line 280 "regression-bugs-tmp/i77print.imp"
return 0;
_imp_endofblock: ;
} // End of block _imp_main at level 1
#line 280 "regression-bugs-tmp/i77print.imp"
// End of file
