#include <perms.h>

                                                                //      1  !MINIMO: multiple output logic function minimiser
                                                                //      2  !
                                                                //      3  !        Hamish Dewar 1981
                                                                //      4  !
                                                                //      5  
                                                                //      6  %external %integer %fn %spec CPUTIME
#line 6 "regression-compile-tmp/nminimo.imp"
extern int CPUTIME( void );
                                                                //      7  
                                                                //      8  %external %string(255) %fn %spec CLIPARAM
#line 8 "regression-compile-tmp/nminimo.imp"
extern _imp_string /*%string(255)*/ CLIPARAM( void );
                                                                //      9  
                                                                //     10  %record %format PAMINFO(%byte groupsep,keyflag, %short allflags, %record(*)%name params)
#line 10 "regression-compile-tmp/nminimo.imp"
typedef struct PAMINFO PAMINFO;
struct PAMINFO {
  unsigned char GROUPSEP;
  unsigned char KEYFLAG;
  short ALLFLAGS;
   void /*name*/*PARAMS;
};
                                                                //     11  
                                                                //     12  %external %record(paminfo) %map %spec PAM
#line 12 "regression-compile-tmp/nminimo.imp"
extern  PAMINFO /*map*/*PAM( void );
                                                                //     13  
                                                                //     14  %constinteger PAM NEWGROUP=1, PAM NODEFAULT=2, PAM MAJOR=4, PAM KEEPCASE=8, PAM INFILE=16, PAM OUTFILE=32
                                                                //     15  
                                                                //     16  %external %routine %spec DEFINE PARAM          %alias "PAM_DEFSTRING" (%string(255) text, %string(*)%name variable, %integer flags)
#line 16 "regression-compile-tmp/nminimo.imp"
extern void DEFINEPARAM( _imp_string /*%string(255)*/ TEXT, _imp_string /*%string(255)*/ /*name*/*VARIABLE, int FLAGS ) __asm__("PAM_DEFSTRING");
                                                                //     17  %external %routine %spec DEFINE INT PARAM      %alias "PAM_DEFINT"    (%string(255) text, %integername variable, %integer flags)
#line 17 "regression-compile-tmp/nminimo.imp"
extern void DEFINEINTPARAM( _imp_string /*%string(255)*/ TEXT, int /*name*/*VARIABLE, int FLAGS ) __asm__("PAM_DEFINT");
                                                                //     18  %external %routine %spec DEFINE ENUM PARAM     %alias "PAM_DEFENUM"   (%string(255) text, %bytename variable, %integer flags)
#line 18 "regression-compile-tmp/nminimo.imp"
extern void DEFINEENUMPARAM( _imp_string /*%string(255)*/ TEXT, unsigned char /*name*/*VARIABLE, int FLAGS ) __asm__("PAM_DEFENUM");
                                                                //     19  %external %routine %spec DEFINE BOOLEAN PARAMS %alias "PAM_DEFBOOL"   (%string(255) text, %integername variable, %integer flags)
#line 19 "regression-compile-tmp/nminimo.imp"
extern void DEFINEBOOLEANPARAMS( _imp_string /*%string(255)*/ TEXT, int /*name*/*VARIABLE, int FLAGS ) __asm__("PAM_DEFBOOL");
                                                                //     20  %external %routine %spec PROCESS PARAMETERS    %alias "PAM_PROCESS"   (%string(255) parm)
#line 20 "regression-compile-tmp/nminimo.imp"
extern void PROCESSPARAMETERS( _imp_string /*%string(255)*/ PARM ) __asm__("PAM_PROCESS");
                                                                //     21   
                                                                //     22  %begin
#line 22 "regression-compile-tmp/nminimo.imp"
int main(int argc, char **argv) {
  _imp_initialise(argc, argv);
                                                                //     23  
                                                                //     24  %constinteger outstream=1
                                                                //     25  ! Codes for logical operators
                                                                //     26  %constinteger not=-1, or=-2, and=-3;  !(OR-1=AND)
                                                                //     27  ! Flag-bit
                                                                //     28  %constinteger sign=16_80000000, forced=16_40000000
                                                                //     29  
                                                                //     30  ! Control parameters
                                                                //     31  %owninteger min=4096
#line 31 "regression-compile-tmp/nminimo.imp"
static int MIN = 4096;
                                                                //     32  %owninteger inc=4096
#line 32 "regression-compile-tmp/nminimo.imp"
static int INC = 4096;
                                                                //     33  %owninteger echo=0;             !copy input to output stream
#line 33 "regression-compile-tmp/nminimo.imp"
static int ECHO = 0;
                                                                //     34  %owninteger squash=0;           !compress output tables
#line 34 "regression-compile-tmp/nminimo.imp"
static int SQUASH = 0;
                                                                //     35  %owninteger nin=0;              !negate input variables
#line 35 "regression-compile-tmp/nminimo.imp"
static int NIN = 0;
                                                                //     36  %owninteger nout=0;             !negate output variables
#line 36 "regression-compile-tmp/nminimo.imp"
static int NOUT = 0;
                                                                //     37  %owninteger check=0;            !check completeness
#line 37 "regression-compile-tmp/nminimo.imp"
static int CHECK = 0;
                                                                //     38  %owninteger mon=0;              !monitoring selector (bits)
#line 38 "regression-compile-tmp/nminimo.imp"
static int MON = 0;
                                                                //     39  %owninteger single=0;           !apply single (rather than multiple) method
#line 39 "regression-compile-tmp/nminimo.imp"
static int SINGLE = 0;
                                                                //     40  %owninteger tabin=0;            !tabular input
#line 40 "regression-compile-tmp/nminimo.imp"
static int TABIN = 0;
                                                                //     41  
                                                                //     42  %owninteger instream=3
#line 42 "regression-compile-tmp/nminimo.imp"
static int INSTREAM = 3;
                                                                //     43  
                                                                //     44  %integer negin,ignorin,negout,ignorout
#line 44 "regression-compile-tmp/nminimo.imp"
int NEGIN;
#line 44 "regression-compile-tmp/nminimo.imp"
int IGNORIN;
#line 44 "regression-compile-tmp/nminimo.imp"
int NEGOUT;
#line 44 "regression-compile-tmp/nminimo.imp"
int IGNOROUT;
                                                                //     45  %integer count,aim;             !current,target score
#line 45 "regression-compile-tmp/nminimo.imp"
int COUNT;
#line 45 "regression-compile-tmp/nminimo.imp"
int AIM;
                                                                //     46  %integer minsep;                !minimum free space in array W
#line 46 "regression-compile-tmp/nminimo.imp"
int MINSEP;
                                                                //     47  %integer sym
#line 47 "regression-compile-tmp/nminimo.imp"
int SYM;
                                                                //     48  %integer start
#line 48 "regression-compile-tmp/nminimo.imp"
int START;
                                                                //     49  
                                                                //     50  %constinteger storebound=2000
                                                                //     51  %integer dclim,esslim,sp1,sp,np,np1;      !index vars to array W
#line 51 "regression-compile-tmp/nminimo.imp"
int DCLIM;
#line 51 "regression-compile-tmp/nminimo.imp"
int ESSLIM;
#line 51 "regression-compile-tmp/nminimo.imp"
int SP1;
#line 51 "regression-compile-tmp/nminimo.imp"
int SP;
#line 51 "regression-compile-tmp/nminimo.imp"
int NP;
#line 51 "regression-compile-tmp/nminimo.imp"
int NP1;
                                                                //     52  %integer needsp
#line 52 "regression-compile-tmp/nminimo.imp"
int NEEDSP;
                                                                //     53  %recordformat cell(%integer t,f,outs,flags)
#line 53 "regression-compile-tmp/nminimo.imp"
typedef struct CELL CELL;
struct CELL {
  int T;
  int F;
  int OUTS;
  int FLAGS;
};
                                                                //     54  %record(cell) %array w(1:storebound);     !stack -> <- nest
#line 54 "regression-compile-tmp/nminimo.imp"
 CELL W[2000];
                                                                //     55  
                                                                //     56  %constinteger namebound=256
                                                                //     57  %integer inmax,outmin,namemax;            !index vars to NAME,EXP
#line 57 "regression-compile-tmp/nminimo.imp"
int INMAX;
#line 57 "regression-compile-tmp/nminimo.imp"
int OUTMIN;
#line 57 "regression-compile-tmp/nminimo.imp"
int NAMEMAX;
                                                                //     58  %string(7)%array name(1:namebound)
#line 58 "regression-compile-tmp/nminimo.imp"
_imp_string /*%string(7)*/ NAME[256];
                                                                //     59  %integerarray exp(1:namebound)
#line 59 "regression-compile-tmp/nminimo.imp"
int EXP[256];
                                                                //     60  
                                                                //     61  %constinteger defbound=8192
                                                                //     62  %integer dp
#line 62 "regression-compile-tmp/nminimo.imp"
int DP;
                                                                //     63  %integerarray def(1:defbound)
#line 63 "regression-compile-tmp/nminimo.imp"
int DEF[8192];
                                                                //     64  
                                                                //     65  %integerfn bits(%integer v)
#line 65 "regression-compile-tmp/nminimo.imp"
int BITS( int V )
#line 65 "regression-compile-tmp/nminimo.imp"
{
                                                                //     66  %integer k
#line 66 "regression-compile-tmp/nminimo.imp"
int K;
                                                                //     67  k = 0
#line 67 "regression-compile-tmp/nminimo.imp"
K = 0;
                                                                //     68  k = 1 %and v = v<<1>>1 %if v < 0
#line 68 "regression-compile-tmp/nminimo.imp"
if (((V) >= (0))) goto L_0002;
#line 68 "regression-compile-tmp/nminimo.imp"
K = 1;
#line 68 "regression-compile-tmp/nminimo.imp"
V = ((((((V) << (1)))) >> (1)));
#line 68 "regression-compile-tmp/nminimo.imp"
L_0002:;
                                                                //     69  %while v # 0 %cycle
#line 69 "regression-compile-tmp/nminimo.imp"
L_0003:;
#line 69 "regression-compile-tmp/nminimo.imp"
if (((V) == (0))) goto L_0004;
                                                                //     70    k = k+1
#line 70 "regression-compile-tmp/nminimo.imp"
K = (((int)(K)) + (1));
                                                                //     71    v = v&(v-1)
#line 71 "regression-compile-tmp/nminimo.imp"
V = ((V) & ((((int)(V)) - (1))));
                                                                //     72  %repeat
#line 72 "regression-compile-tmp/nminimo.imp"
goto L_0003;
#line 72 "regression-compile-tmp/nminimo.imp"
L_0004:;
                                                                //     73  %result = k
#line 73 "regression-compile-tmp/nminimo.imp"
/* Remove %on %event handler here if present for this block */
return K;
                                                                //     74  %end
#line 74 "regression-compile-tmp/nminimo.imp"
} // End of block BITS at level 2
                                                                //     75  
                                                                //     76  %routine out(%integer v)
#line 76 "regression-compile-tmp/nminimo.imp"
void OUT( int V )
#line 76 "regression-compile-tmp/nminimo.imp"
{
                                                                //     77    out(v//10) %and v = v-v//10*10 %if v >= 10
#line 77 "regression-compile-tmp/nminimo.imp"
if (((V) < (10))) goto L_0006;
#line 77 "regression-compile-tmp/nminimo.imp"
OUT(((long)((long)((int)(V)) / (long)((int)(10)))));
#line 77 "regression-compile-tmp/nminimo.imp"
V = ((V) - (((((long)((long)((int)(V)) / (long)((int)(10))))) * (10))));
#line 77 "regression-compile-tmp/nminimo.imp"
L_0006:;
                                                                //     78    printsymbol(v+'0')
#line 78 "regression-compile-tmp/nminimo.imp"
_imp_PRINTSYMBOL((((int)(V)) + (48)));
                                                                //     79  %end
#line 79 "regression-compile-tmp/nminimo.imp"
/* Remove %on %event handler here if present for this block */
return;
} // End of block OUT at level 2
                                                                //     80  
                                                                //     81  %routine croak(%string(32) s)
#line 81 "regression-compile-tmp/nminimo.imp"
void CROAK( _imp_string /*%string(32)*/ S )
#line 81 "regression-compile-tmp/nminimo.imp"
{
                                                                //     82    select output(0)
#line 82 "regression-compile-tmp/nminimo.imp"
_imp_SELECTOUTPUT(0);
                                                                //     83    newline
#line 83 "regression-compile-tmp/nminimo.imp"
_imp_NEWLINE();
                                                                //     84    printstring("*".s."  Abandoned")
#line 84 "regression-compile-tmp/nminimo.imp"
_imp_PRINTSTRING(_imp_join((_imp_string)_imp_join((_imp_string)_imp_str_literal("*"),(_imp_string)S),(_imp_string)_imp_str_literal("  Abandoned")));
                                                                //     85    %if sym # nl %start
#line 85 "regression-compile-tmp/nminimo.imp"
if (((SYM) == (10))) goto L_0007;
                                                                //     86      printstring(" at: ")
#line 86 "regression-compile-tmp/nminimo.imp"
_imp_PRINTSTRING(_imp_str_literal(" at: "));
                                                                //     87      %cycle
#line 87 "regression-compile-tmp/nminimo.imp"
L_0008:;
                                                                //     88        readsymbol(sym)
#line 88 "regression-compile-tmp/nminimo.imp"
_imp_READSYMBOL(&SYM);
                                                                //     89        printsymbol(sym)
#line 89 "regression-compile-tmp/nminimo.imp"
_imp_PRINTSYMBOL(SYM);
                                                                //     90      %repeat %until sym = nl
#line 90 "regression-compile-tmp/nminimo.imp"
if (((SYM) == (10))) goto L_0009;
#line 90 "regression-compile-tmp/nminimo.imp"
goto L_0008;
#line 90 "regression-compile-tmp/nminimo.imp"
L_0009:;
                                                                //     91    %finish
#line 91 "regression-compile-tmp/nminimo.imp"
L_0007:;
                                                                //     92    %stop
#line 92 "regression-compile-tmp/nminimo.imp"
exit(0);
                                                                //     93  %end
#line 93 "regression-compile-tmp/nminimo.imp"
return;
} // End of block CROAK at level 2
                                                                //     94  
                                                                //     95  %routine print time
#line 95 "regression-compile-tmp/nminimo.imp"
void PRINTTIME( void )
#line 95 "regression-compile-tmp/nminimo.imp"
{
                                                                //     96  %integer t
#line 96 "regression-compile-tmp/nminimo.imp"
int T;
                                                                //     97    t = cputime
#line 97 "regression-compile-tmp/nminimo.imp"
T = CPUTIME();
                                                                //     98    print((t-start)/1000,5,3)
#line 98 "regression-compile-tmp/nminimo.imp"
_imp_PRINT(((double)((double)(((((int)(T)) - (START)))) / (double)((float)(1000)))), 5, 3);
                                                                //     99    start = t
#line 99 "regression-compile-tmp/nminimo.imp"
START = T;
                                                                //    100  %end
#line 100 "regression-compile-tmp/nminimo.imp"
/* Remove %on %event handler here if present for this block */
return;
} // End of block PRINTTIME at level 2
                                                                //    101  
                                                                //    102  %routine push(%record(cell) v)
#line 102 "regression-compile-tmp/nminimo.imp"
void PUSH(  CELL V )
#line 102 "regression-compile-tmp/nminimo.imp"
{
                                                                //    103  ! Store V on (descending) nest
                                                                //    104    np = np-1;  w(np) = v
#line 104 "regression-compile-tmp/nminimo.imp"
NP = (((int)(NP)) - (1));
#line 104 "regression-compile-tmp/nminimo.imp"
W[(((int)(NP)) - (1))] = V;
                                                                //    105    %return %if np-sp >= minsep
#line 105 "regression-compile-tmp/nminimo.imp"
if ((((((int)(NP)) - (SP))) < (MINSEP))) goto L_000b;
#line 105 "regression-compile-tmp/nminimo.imp"
/* Remove %on %event handler here if present for this block */
return;
#line 105 "regression-compile-tmp/nminimo.imp"
L_000b:;
                                                                //    106    minsep = np-sp
#line 106 "regression-compile-tmp/nminimo.imp"
MINSEP = (((int)(NP)) - (SP));
                                                                //    107    %return %if minsep > 2
#line 107 "regression-compile-tmp/nminimo.imp"
if (((MINSEP) <= (2))) goto L_000c;
#line 107 "regression-compile-tmp/nminimo.imp"
/* Remove %on %event handler here if present for this block */
return;
#line 107 "regression-compile-tmp/nminimo.imp"
L_000c:;
                                                                //    108    croak("No space.")
#line 108 "regression-compile-tmp/nminimo.imp"
CROAK(_imp_str_literal("No space."));
                                                                //    109  %end
#line 109 "regression-compile-tmp/nminimo.imp"
/* Remove %on %event handler here if present for this block */
return;
} // End of block PUSH at level 2
                                                                //    110  
                                                                //    111  %routine stack(%record(cell) v)
#line 111 "regression-compile-tmp/nminimo.imp"
void STACK(  CELL V )
#line 111 "regression-compile-tmp/nminimo.imp"
{
                                                                //    112  ! Store V on (ascending) stack
                                                                //    113    w(sp) = v;  sp = sp+1
#line 113 "regression-compile-tmp/nminimo.imp"
W[(((int)(SP)) - (1))] = V;
#line 113 "regression-compile-tmp/nminimo.imp"
SP = (((int)(SP)) + (1));
                                                                //    114    %return %if np-sp > minsep
#line 114 "regression-compile-tmp/nminimo.imp"
if ((((((int)(NP)) - (SP))) <= (MINSEP))) goto L_000d;
#line 114 "regression-compile-tmp/nminimo.imp"
/* Remove %on %event handler here if present for this block */
return;
#line 114 "regression-compile-tmp/nminimo.imp"
L_000d:;
                                                                //    115    minsep = np-sp
#line 115 "regression-compile-tmp/nminimo.imp"
MINSEP = (((int)(NP)) - (SP));
                                                                //    116    %return %if minsep > 2
#line 116 "regression-compile-tmp/nminimo.imp"
if (((MINSEP) <= (2))) goto L_000e;
#line 116 "regression-compile-tmp/nminimo.imp"
/* Remove %on %event handler here if present for this block */
return;
#line 116 "regression-compile-tmp/nminimo.imp"
L_000e:;
                                                                //    117    croak("No space.")
#line 117 "regression-compile-tmp/nminimo.imp"
CROAK(_imp_str_literal("No space."));
                                                                //    118  %end
#line 118 "regression-compile-tmp/nminimo.imp"
/* Remove %on %event handler here if present for this block */
return;
} // End of block STACK at level 2
                                                                //    119  
                                                                //    120  ! R e a d   a n d   c h e c k   d a t a
                                                                //    121  !
                                                                //    122  %routine readin
#line 122 "regression-compile-tmp/nminimo.imp"
void READIN( void )
#line 122 "regression-compile-tmp/nminimo.imp"
{
                                                                //    123  %integer bit,pos,pos1,found,first,dp1,outmax
#line 123 "regression-compile-tmp/nminimo.imp"
int BIT;
#line 123 "regression-compile-tmp/nminimo.imp"
int POS;
#line 123 "regression-compile-tmp/nminimo.imp"
int POS1;
#line 123 "regression-compile-tmp/nminimo.imp"
int FOUND;
#line 123 "regression-compile-tmp/nminimo.imp"
int FIRST;
#line 123 "regression-compile-tmp/nminimo.imp"
int DP1;
#line 123 "regression-compile-tmp/nminimo.imp"
int OUTMAX;
                                                                //    124  %integer pend
#line 124 "regression-compile-tmp/nminimo.imp"
int PEND;
                                                                //    125  %string(7) curname
#line 125 "regression-compile-tmp/nminimo.imp"
_imp_string /*%string(7)*/ CURNAME;
                                                                //    126  
                                                                //    127  %routine put(%integer v)
#line 127 "regression-compile-tmp/nminimo.imp"
void PUT( int V )
#line 127 "regression-compile-tmp/nminimo.imp"
{
                                                                //    128    croak(" Definitions too long") %if dp > defbound
#line 128 "regression-compile-tmp/nminimo.imp"
if (((DP) <= (8192))) goto L_000f;
#line 128 "regression-compile-tmp/nminimo.imp"
CROAK(_imp_str_literal(" Definitions too long"));
#line 128 "regression-compile-tmp/nminimo.imp"
L_000f:;
                                                                //    129    def(dp) = v;  dp = dp+1
#line 129 "regression-compile-tmp/nminimo.imp"
DEF[(((int)(DP)) - (1))] = V;
#line 129 "regression-compile-tmp/nminimo.imp"
DP = (((int)(DP)) + (1));
                                                                //    130  %end
#line 130 "regression-compile-tmp/nminimo.imp"
/* Remove %on %event handler here if present for this block */
return;
} // End of block PUT at level 3
                                                                //    131  
                                                                //    132  %routine read sym
#line 132 "regression-compile-tmp/nminimo.imp"
void READSYM( void )
#line 132 "regression-compile-tmp/nminimo.imp"
{
                                                                //    133    %on %event 9 %start
#line 133 "regression-compile-tmp/nminimo.imp"
if (!_imp_on_event(9)) goto L_0010;  /* TO DO: Remove %on %event handler just before L_0010: if present for this block */
                                                                //    134      sym = '*'
#line 134 "regression-compile-tmp/nminimo.imp"
SYM = 42;
                                                                //    135      instream = instream-1
#line 135 "regression-compile-tmp/nminimo.imp"
INSTREAM = (((int)(INSTREAM)) - (1));
                                                                //    136      %return %if instream = 0
#line 136 "regression-compile-tmp/nminimo.imp"
if (((INSTREAM) != (0))) goto L_0011;
#line 136 "regression-compile-tmp/nminimo.imp"
/* Remove %on %event handler here if present for this block */
return;
#line 136 "regression-compile-tmp/nminimo.imp"
L_0011:;
                                                                //    137      %if instream < 0 %start
#line 137 "regression-compile-tmp/nminimo.imp"
if (((INSTREAM) >= (0))) goto L_0012;
                                                                //    138        sym = nl
#line 138 "regression-compile-tmp/nminimo.imp"
SYM = 10;
                                                                //    139        croak("Premature end of input.")
#line 139 "regression-compile-tmp/nminimo.imp"
CROAK(_imp_str_literal("Premature end of input."));
                                                                //    140      %finish
#line 140 "regression-compile-tmp/nminimo.imp"
L_0012:;
                                                                //    141      select input(instream)
#line 141 "regression-compile-tmp/nminimo.imp"
_imp_SELECTINPUT(INSTREAM);
                                                                //    142    %finish
#line 142 "regression-compile-tmp/nminimo.imp"
L_0010:;
                                                                //    143    sym = pend;  pend = 0
#line 143 "regression-compile-tmp/nminimo.imp"
SYM = PEND;
#line 143 "regression-compile-tmp/nminimo.imp"
PEND = 0;
                                                                //    144    %return %if sym # 0
#line 144 "regression-compile-tmp/nminimo.imp"
if (((SYM) == (0))) goto L_0013;
#line 144 "regression-compile-tmp/nminimo.imp"
/* Remove %on %event handler here if present for this block */
return;
#line 144 "regression-compile-tmp/nminimo.imp"
L_0013:;
                                                                //    145    %cycle
#line 145 "regression-compile-tmp/nminimo.imp"
L_0014:;
                                                                //    146      readsymbol(sym)
#line 146 "regression-compile-tmp/nminimo.imp"
_imp_READSYMBOL(&SYM);
                                                                //    147      printsymbol(sym) %if echo # 0
#line 147 "regression-compile-tmp/nminimo.imp"
if (((ECHO) == (0))) goto L_0017;
#line 147 "regression-compile-tmp/nminimo.imp"
_imp_PRINTSYMBOL(SYM);
#line 147 "regression-compile-tmp/nminimo.imp"
L_0017:;
                                                                //    148      %return %unless sym = '{'
#line 148 "regression-compile-tmp/nminimo.imp"
if (((SYM) == (123))) goto L_0018;
#line 148 "regression-compile-tmp/nminimo.imp"
/* Remove %on %event handler here if present for this block */
return;
#line 148 "regression-compile-tmp/nminimo.imp"
L_0018:;
                                                                //    149      %cycle
#line 149 "regression-compile-tmp/nminimo.imp"
L_0019:;
                                                                //    150        read symbol(sym)
#line 150 "regression-compile-tmp/nminimo.imp"
_imp_READSYMBOL(&SYM);
                                                                //    151        print symbol(sym) %if echo # 0
#line 151 "regression-compile-tmp/nminimo.imp"
if (((ECHO) == (0))) goto L_001c;
#line 151 "regression-compile-tmp/nminimo.imp"
_imp_PRINTSYMBOL(SYM);
#line 151 "regression-compile-tmp/nminimo.imp"
L_001c:;
                                                                //    152      %repeat %until sym = '}'
#line 152 "regression-compile-tmp/nminimo.imp"
if (((SYM) == (125))) goto L_001a;
#line 152 "regression-compile-tmp/nminimo.imp"
goto L_0019;
#line 152 "regression-compile-tmp/nminimo.imp"
L_001a:;
                                                                //    153    %repeat
#line 153 "regression-compile-tmp/nminimo.imp"
goto L_0014;
                                                                //    154  %end
#line 154 "regression-compile-tmp/nminimo.imp"
return;
} // End of block READSYM at level 3
                                                                //    155  
                                                                //    156  %routine read name
#line 156 "regression-compile-tmp/nminimo.imp"
void READNAME( void )
#line 156 "regression-compile-tmp/nminimo.imp"
{
                                                                //    157  !Read name (possibly null) to CURNAME leaving terminator in SYM
                                                                //    158  %integer k,l
#line 158 "regression-compile-tmp/nminimo.imp"
int K;
#line 158 "regression-compile-tmp/nminimo.imp"
int L;
                                                                //    159    read sym %until sym > ' '
#line 159 "regression-compile-tmp/nminimo.imp"
L_001d:;
#line 159 "regression-compile-tmp/nminimo.imp"
READSYM();
#line 159 "regression-compile-tmp/nminimo.imp"
if (((SYM) > (32))) goto L_001e;
#line 159 "regression-compile-tmp/nminimo.imp"
goto L_001d;
#line 159 "regression-compile-tmp/nminimo.imp"
L_001e:;
                                                                //    160    l = 0
#line 160 "regression-compile-tmp/nminimo.imp"
L = 0;
                                                                //    161    k = sym;  k = k-'a'+'A' %if k >= 'a'
#line 161 "regression-compile-tmp/nminimo.imp"
K = SYM;
#line 161 "regression-compile-tmp/nminimo.imp"
if (((K) < (97))) goto L_0020;
#line 161 "regression-compile-tmp/nminimo.imp"
K = (((int)((((int)(K)) - (97)))) + (65));
#line 161 "regression-compile-tmp/nminimo.imp"
L_0020:;
                                                                //    162    %if 'A' <= k <= 'Z' %start
#line 162 "regression-compile-tmp/nminimo.imp"
if ((((65) > (K))) || (((K) > (90)))) goto L_0021;
                                                                //    163      %cycle
#line 163 "regression-compile-tmp/nminimo.imp"
L_0022:;
                                                                //    164        %if l < 6 %start
#line 164 "regression-compile-tmp/nminimo.imp"
if (((L) >= (6))) goto L_0025;
                                                                //    165          l = l+1;  charno(curname,l) = k
#line 165 "regression-compile-tmp/nminimo.imp"
L = (((int)(L)) + (1));
#line 165 "regression-compile-tmp/nminimo.imp"
*_imp_CHARNO(&CURNAME, L) = K;
                                                                //    166        %finish
#line 166 "regression-compile-tmp/nminimo.imp"
L_0025:;
                                                                //    167        read sym
#line 167 "regression-compile-tmp/nminimo.imp"
READSYM();
                                                                //    168        k = sym;  k = k-'a'+'A' %if k >= 'a'
#line 168 "regression-compile-tmp/nminimo.imp"
K = SYM;
#line 168 "regression-compile-tmp/nminimo.imp"
if (((K) < (97))) goto L_0026;
#line 168 "regression-compile-tmp/nminimo.imp"
K = (((int)((((int)(K)) - (97)))) + (65));
#line 168 "regression-compile-tmp/nminimo.imp"
L_0026:;
                                                                //    169        %exit %unless '0' <= k <= '9' %c
#line 169 "regression-compile-tmp/nminimo.imp"
if ((((48) > (K))) || (((K) <= (57)))) goto L_0028;
#line 169 "regression-compile-tmp/nminimo.imp"
L_0027:;
#line 169 "regression-compile-tmp/nminimo.imp"
if (((*_imp_CHARNO(&CURNAME, L)) < (65))) goto L_0029;
#line 169 "regression-compile-tmp/nminimo.imp"
if ((((65) > (K))) || (((K) <= (90)))) goto L_0028;
#line 169 "regression-compile-tmp/nminimo.imp"
L_0029:;
#line 169 "regression-compile-tmp/nminimo.imp"
goto L_0023;
#line 169 "regression-compile-tmp/nminimo.imp"
L_0028:;
                                                                //    170              %or (charno(curname,l) >= 'A' %and 'A' <= k <= 'Z')
                                                                //    171      %repeat
#line 171 "regression-compile-tmp/nminimo.imp"
goto L_0022;
#line 171 "regression-compile-tmp/nminimo.imp"
L_0023:;
                                                                //    172      %if sym = '?' %start
#line 172 "regression-compile-tmp/nminimo.imp"
if (((SYM) != (63))) goto L_002a;
                                                                //    173        l = l+1;  charno(curname,l) = sym
#line 173 "regression-compile-tmp/nminimo.imp"
L = (((int)(L)) + (1));
#line 173 "regression-compile-tmp/nminimo.imp"
*_imp_CHARNO(&CURNAME, L) = SYM;
                                                                //    174        read sym
#line 174 "regression-compile-tmp/nminimo.imp"
READSYM();
                                                                //    175      %finish
#line 175 "regression-compile-tmp/nminimo.imp"
L_002a:;
                                                                //    176    %finish
#line 176 "regression-compile-tmp/nminimo.imp"
L_0021:;
                                                                //    177    length(curname) = l
#line 177 "regression-compile-tmp/nminimo.imp"
*_imp_LENGTH(&CURNAME) = L;
                                                                //    178    %if sym=' ' %start
#line 178 "regression-compile-tmp/nminimo.imp"
if (((SYM) != (32))) goto L_002b;
                                                                //    179      read sym %until sym#' '
#line 179 "regression-compile-tmp/nminimo.imp"
L_002c:;
#line 179 "regression-compile-tmp/nminimo.imp"
READSYM();
#line 179 "regression-compile-tmp/nminimo.imp"
if (((SYM) != (32))) goto L_002d;
#line 179 "regression-compile-tmp/nminimo.imp"
goto L_002c;
#line 179 "regression-compile-tmp/nminimo.imp"
L_002d:;
                                                                //    180      %if 'A'<=sym&95<='Z' %start
#line 180 "regression-compile-tmp/nminimo.imp"
if ((((65) > (((SYM) & (95))))) || (((((SYM) & (95))) > (90)))) goto L_002f;
                                                                //    181        pend = sym; sym = ' '
#line 181 "regression-compile-tmp/nminimo.imp"
PEND = SYM;
#line 181 "regression-compile-tmp/nminimo.imp"
SYM = 32;
                                                                //    182      %finish
#line 182 "regression-compile-tmp/nminimo.imp"
L_002f:;
                                                                //    183    %finish
#line 183 "regression-compile-tmp/nminimo.imp"
L_002b:;
                                                                //    184  %end
#line 184 "regression-compile-tmp/nminimo.imp"
/* Remove %on %event handler here if present for this block */
return;
} // End of block READNAME at level 3
                                                                //    185  
                                                                //    186  %routine init(%integername v)
#line 186 "regression-compile-tmp/nminimo.imp"
void INIT( int /*name*/*V )
#line 186 "regression-compile-tmp/nminimo.imp"
{
                                                                //    187  ! Read asignment for mode variable V (default 1)
                                                                //    188    found = 1
#line 188 "regression-compile-tmp/nminimo.imp"
FOUND = 1;
                                                                //    189    v = 1
#line 189 "regression-compile-tmp/nminimo.imp"
*V = 1;
                                                                //    190    read(v) %and out(v) %if sym = '='
#line 190 "regression-compile-tmp/nminimo.imp"
if (((SYM) != (61))) goto L_0030;
#line 190 "regression-compile-tmp/nminimo.imp"
_imp_READ(V);
#line 190 "regression-compile-tmp/nminimo.imp"
OUT(*V);
#line 190 "regression-compile-tmp/nminimo.imp"
L_0030:;
                                                                //    191  %end
#line 191 "regression-compile-tmp/nminimo.imp"
/* Remove %on %event handler here if present for this block */
return;
} // End of block INIT at level 3
                                                                //    192  
                                                                //    193  %routine lookup
#line 193 "regression-compile-tmp/nminimo.imp"
void LOOKUP( void )
#line 193 "regression-compile-tmp/nminimo.imp"
{
                                                                //    194    pos = namemax+1
#line 194 "regression-compile-tmp/nminimo.imp"
POS = (((int)(NAMEMAX)) + (1));
                                                                //    195    pos = pos-1 %until pos = 0  %or name(pos) = curname
#line 195 "regression-compile-tmp/nminimo.imp"
L_0031:;
#line 195 "regression-compile-tmp/nminimo.imp"
POS = (((int)(POS)) - (1));
#line 195 "regression-compile-tmp/nminimo.imp"
if (((POS) == (0))) goto L_0032;
#line 195 "regression-compile-tmp/nminimo.imp"
if ((_imp_strcmp(NAME[(((int)(POS)) - (1))], CURNAME) == 0)) goto L_0032;
#line 195 "regression-compile-tmp/nminimo.imp"
goto L_0031;
#line 195 "regression-compile-tmp/nminimo.imp"
L_0032:;
                                                                //    196  %end
#line 196 "regression-compile-tmp/nminimo.imp"
/* Remove %on %event handler here if present for this block */
return;
} // End of block LOOKUP at level 3
                                                                //    197  
                                                                //    198  %routine queryname
#line 198 "regression-compile-tmp/nminimo.imp"
void QUERYNAME( void )
#line 198 "regression-compile-tmp/nminimo.imp"
{
                                                                //    199    newline %if echo # 0
#line 199 "regression-compile-tmp/nminimo.imp"
if (((ECHO) == (0))) goto L_0034;
#line 199 "regression-compile-tmp/nminimo.imp"
_imp_NEWLINE();
#line 199 "regression-compile-tmp/nminimo.imp"
L_0034:;
                                                                //    200    printstring(curname." not known")
#line 200 "regression-compile-tmp/nminimo.imp"
_imp_PRINTSTRING(_imp_join((_imp_string)CURNAME,(_imp_string)_imp_str_literal(" not known")));
                                                                //    201    newline
#line 201 "regression-compile-tmp/nminimo.imp"
_imp_NEWLINE();
                                                                //    202  %end
#line 202 "regression-compile-tmp/nminimo.imp"
/* Remove %on %event handler here if present for this block */
return;
} // End of block QUERYNAME at level 3
                                                                //    203  
                                                                //    204  %routine addname
#line 204 "regression-compile-tmp/nminimo.imp"
void ADDNAME( void )
#line 204 "regression-compile-tmp/nminimo.imp"
{
                                                                //    205    namemax = namemax+1
#line 205 "regression-compile-tmp/nminimo.imp"
NAMEMAX = (((int)(NAMEMAX)) + (1));
                                                                //    206    name(namemax) = curname
#line 206 "regression-compile-tmp/nminimo.imp"
NAME[(((int)(NAMEMAX)) - (1))] = CURNAME;
                                                                //    207  %end
#line 207 "regression-compile-tmp/nminimo.imp"
/* Remove %on %event handler here if present for this block */
return;
} // End of block ADDNAME at level 3
                                                                //    208  
                                                                //    209  %routine newname
#line 209 "regression-compile-tmp/nminimo.imp"
void NEWNAME( void )
#line 209 "regression-compile-tmp/nminimo.imp"
{
                                                                //    210    croak("Duplicate: ".curname.". ") %if pos # 0
#line 210 "regression-compile-tmp/nminimo.imp"
if (((POS) == (0))) goto L_0035;
#line 210 "regression-compile-tmp/nminimo.imp"
CROAK(_imp_join((_imp_string)_imp_join((_imp_string)_imp_str_literal("Duplicate: "),(_imp_string)CURNAME),(_imp_string)_imp_str_literal(". ")));
#line 210 "regression-compile-tmp/nminimo.imp"
L_0035:;
                                                                //    211    addname
#line 211 "regression-compile-tmp/nminimo.imp"
ADDNAME();
                                                                //    212  %end
#line 212 "regression-compile-tmp/nminimo.imp"
/* Remove %on %event handler here if present for this block */
return;
} // End of block NEWNAME at level 3
                                                                //    213  
                                                                //    214  %routine read exp
#line 214 "regression-compile-tmp/nminimo.imp"
void READEXP( void )
#line 214 "regression-compile-tmp/nminimo.imp"
{
                                                                //    215  ! Read logic expression: store as Polish
                                                                //    216  !   operands represented as name index values (> 0)
                                                                //    217  !   operators < 0
                                                                //    218  !  eg A&B ! \A&\B  ==>  1 2 AND NOT 1 NOT NOT 2 NOT AND OR 0
                                                                //    219  !                       A B  &   \  A  \   \  B  \   &   !
                                                                //    220  !  note duplication of NOT before and after
                                                                //    221  
                                                                //    222  %routine read term
#line 222 "regression-compile-tmp/nminimo.imp"
void READTERM( void )
#line 222 "regression-compile-tmp/nminimo.imp"
{
                                                                //    223    read name
#line 223 "regression-compile-tmp/nminimo.imp"
READNAME();
                                                                //    224    %if curname # "" %start
#line 224 "regression-compile-tmp/nminimo.imp"
if ((_imp_strcmp(CURNAME, _imp_str_literal("")) == 0)) goto L_0036;
                                                                //    225      pend = sym %if sym >= 'A' %or sym = '('
#line 225 "regression-compile-tmp/nminimo.imp"
if (((SYM) >= (65))) goto L_002e;
#line 225 "regression-compile-tmp/nminimo.imp"
if (((SYM) != (40))) goto L_0037;
#line 225 "regression-compile-tmp/nminimo.imp"
L_002e:;
#line 225 "regression-compile-tmp/nminimo.imp"
PEND = SYM;
#line 225 "regression-compile-tmp/nminimo.imp"
L_0037:;
                                                                //    226      lookup
#line 226 "regression-compile-tmp/nminimo.imp"
LOOKUP();
                                                                //    227      queryname %and pos = 1 %if pos = 0
#line 227 "regression-compile-tmp/nminimo.imp"
if (((POS) != (0))) goto L_0038;
#line 227 "regression-compile-tmp/nminimo.imp"
QUERYNAME();
#line 227 "regression-compile-tmp/nminimo.imp"
POS = 1;
#line 227 "regression-compile-tmp/nminimo.imp"
L_0038:;
                                                                //    228      put(pos)
#line 228 "regression-compile-tmp/nminimo.imp"
PUT(POS);
                                                                //    229    %finish %else %if sym = '\' %start
#line 229 "regression-compile-tmp/nminimo.imp"
goto L_0039;
#line 229 "regression-compile-tmp/nminimo.imp"
L_0036:;
#line 229 "regression-compile-tmp/nminimo.imp"
if (((SYM) != (92))) goto L_003a;
                                                                //    230      put(not);                           !fore ..
#line 230 "regression-compile-tmp/nminimo.imp"
PUT((-1));
                                                                //    231      read term
#line 231 "regression-compile-tmp/nminimo.imp"
READTERM();
                                                                //    232      put(not);                           ! .. as well as aft
#line 232 "regression-compile-tmp/nminimo.imp"
PUT((-1));
                                                                //    233    %finish %else %start
#line 233 "regression-compile-tmp/nminimo.imp"
goto L_0039;
#line 233 "regression-compile-tmp/nminimo.imp"
L_003a:;
                                                                //    234      croak("Faulty format. ") %if sym # '('
#line 234 "regression-compile-tmp/nminimo.imp"
if (((SYM) == (40))) goto L_003b;
#line 234 "regression-compile-tmp/nminimo.imp"
CROAK(_imp_str_literal("Faulty format. "));
#line 234 "regression-compile-tmp/nminimo.imp"
L_003b:;
                                                                //    235      read exp
#line 235 "regression-compile-tmp/nminimo.imp"
READEXP();
                                                                //    236      croak("Missing ')'. ") %if sym # ')'
#line 236 "regression-compile-tmp/nminimo.imp"
if (((SYM) == (41))) goto L_003c;
#line 236 "regression-compile-tmp/nminimo.imp"
CROAK(_imp_str_literal("Missing ')'. "));
#line 236 "regression-compile-tmp/nminimo.imp"
L_003c:;
                                                                //    237      read sym
#line 237 "regression-compile-tmp/nminimo.imp"
READSYM();
                                                                //    238    %finish
#line 238 "regression-compile-tmp/nminimo.imp"
L_0039:;
                                                                //    239  %end
#line 239 "regression-compile-tmp/nminimo.imp"
/* Remove %on %event handler here if present for this block */
return;
} // End of block READTERM at level 4
                                                                //    240  
                                                                //    241  %routine read exp1
#line 241 "regression-compile-tmp/nminimo.imp"
void READEXP1( void )
#line 241 "regression-compile-tmp/nminimo.imp"
{
                                                                //    242    read term
#line 242 "regression-compile-tmp/nminimo.imp"
READTERM();
                                                                //    243    %while sym = '&' %or sym = '.' %or sym >= 'A' %or sym = '(' %cycle
#line 243 "regression-compile-tmp/nminimo.imp"
L_003d:;
#line 243 "regression-compile-tmp/nminimo.imp"
if (((SYM) == (38))) goto L_003f;
#line 243 "regression-compile-tmp/nminimo.imp"
if (((SYM) == (46))) goto L_003f;
#line 243 "regression-compile-tmp/nminimo.imp"
if (((SYM) >= (65))) goto L_003f;
#line 243 "regression-compile-tmp/nminimo.imp"
if (((SYM) != (40))) goto L_003e;
#line 243 "regression-compile-tmp/nminimo.imp"
L_003f:;
                                                                //    244      read term
#line 244 "regression-compile-tmp/nminimo.imp"
READTERM();
                                                                //    245      put(and)
#line 245 "regression-compile-tmp/nminimo.imp"
PUT((-3));
                                                                //    246    %repeat
#line 246 "regression-compile-tmp/nminimo.imp"
goto L_003d;
#line 246 "regression-compile-tmp/nminimo.imp"
L_003e:;
                                                                //    247  %end
#line 247 "regression-compile-tmp/nminimo.imp"
/* Remove %on %event handler here if present for this block */
return;
} // End of block READEXP1 at level 4
                                                                //    248  
                                                                //    249    read exp1
#line 249 "regression-compile-tmp/nminimo.imp"
READEXP1();
                                                                //    250    %while sym = '!' %or sym = '+' %cycle
#line 250 "regression-compile-tmp/nminimo.imp"
L_0040:;
#line 250 "regression-compile-tmp/nminimo.imp"
if (((SYM) == (33))) goto L_0042;
#line 250 "regression-compile-tmp/nminimo.imp"
if (((SYM) != (43))) goto L_0041;
#line 250 "regression-compile-tmp/nminimo.imp"
L_0042:;
                                                                //    251      read exp1
#line 251 "regression-compile-tmp/nminimo.imp"
READEXP1();
                                                                //    252      put(or)
#line 252 "regression-compile-tmp/nminimo.imp"
PUT((-2));
                                                                //    253    %repeat
#line 253 "regression-compile-tmp/nminimo.imp"
goto L_0040;
#line 253 "regression-compile-tmp/nminimo.imp"
L_0041:;
                                                                //    254  %end; !READ EXP
#line 254 "regression-compile-tmp/nminimo.imp"
/* Remove %on %event handler here if present for this block */
return;
} // End of block READEXP at level 3
                                                                //    255  
                                                                //    256    namemax = 0;  dp = 1
#line 256 "regression-compile-tmp/nminimo.imp"
NAMEMAX = 0;
#line 256 "regression-compile-tmp/nminimo.imp"
DP = 1;
                                                                //    257    pend = 0
#line 257 "regression-compile-tmp/nminimo.imp"
PEND = 0;
                                                                //    258  ! MODE settings (if any)
                                                                //    259    %cycle
#line 259 "regression-compile-tmp/nminimo.imp"
L_0043:;
                                                                //    260      read name
#line 260 "regression-compile-tmp/nminimo.imp"
READNAME();
                                                                //    261      %stop %if sym = '*'
#line 261 "regression-compile-tmp/nminimo.imp"
if (((SYM) != (42))) goto L_0046;
#line 261 "regression-compile-tmp/nminimo.imp"
exit(0);
#line 261 "regression-compile-tmp/nminimo.imp"
L_0046:;
                                                                //    262      %exit %unless curname = "MODE"
#line 262 "regression-compile-tmp/nminimo.imp"
if ((_imp_strcmp(CURNAME, _imp_str_literal("MODE")) == 0)) goto L_0047;
#line 262 "regression-compile-tmp/nminimo.imp"
goto L_0044;
#line 262 "regression-compile-tmp/nminimo.imp"
L_0047:;
                                                                //    263      printstring("MODE ") %and printsymbol(pend) %if echo=0
#line 263 "regression-compile-tmp/nminimo.imp"
if (((ECHO) != (0))) goto L_0048;
#line 263 "regression-compile-tmp/nminimo.imp"
_imp_PRINTSTRING(_imp_str_literal("MODE "));
#line 263 "regression-compile-tmp/nminimo.imp"
_imp_PRINTSYMBOL(PEND);
#line 263 "regression-compile-tmp/nminimo.imp"
L_0048:;
                                                                //    264      echo = echo-2
#line 264 "regression-compile-tmp/nminimo.imp"
ECHO = (((int)(ECHO)) - (2));
                                                                //    265      %cycle
#line 265 "regression-compile-tmp/nminimo.imp"
L_0049:;
                                                                //    266        read name
#line 266 "regression-compile-tmp/nminimo.imp"
READNAME();
                                                                //    267        found = 0
#line 267 "regression-compile-tmp/nminimo.imp"
FOUND = 0;
                                                                //    268        init(nin) %if curname = "NIN"
#line 268 "regression-compile-tmp/nminimo.imp"
if ((_imp_strcmp(CURNAME, _imp_str_literal("NIN")) != 0)) goto L_004c;
#line 268 "regression-compile-tmp/nminimo.imp"
INIT(&NIN);
#line 268 "regression-compile-tmp/nminimo.imp"
L_004c:;
                                                                //    269        init(nout) %if curname = "NOUT"
#line 269 "regression-compile-tmp/nminimo.imp"
if ((_imp_strcmp(CURNAME, _imp_str_literal("NOUT")) != 0)) goto L_004d;
#line 269 "regression-compile-tmp/nminimo.imp"
INIT(&NOUT);
#line 269 "regression-compile-tmp/nminimo.imp"
L_004d:;
                                                                //    270        init(min) %if curname = "MIN"
#line 270 "regression-compile-tmp/nminimo.imp"
if ((_imp_strcmp(CURNAME, _imp_str_literal("MIN")) != 0)) goto L_004e;
#line 270 "regression-compile-tmp/nminimo.imp"
INIT(&MIN);
#line 270 "regression-compile-tmp/nminimo.imp"
L_004e:;
                                                                //    271        init(inc) %if curname = "INC"
#line 271 "regression-compile-tmp/nminimo.imp"
if ((_imp_strcmp(CURNAME, _imp_str_literal("INC")) != 0)) goto L_004f;
#line 271 "regression-compile-tmp/nminimo.imp"
INIT(&INC);
#line 271 "regression-compile-tmp/nminimo.imp"
L_004f:;
                                                                //    272        init(echo) %if curname = "ECHO"
#line 272 "regression-compile-tmp/nminimo.imp"
if ((_imp_strcmp(CURNAME, _imp_str_literal("ECHO")) != 0)) goto L_0050;
#line 272 "regression-compile-tmp/nminimo.imp"
INIT(&ECHO);
#line 272 "regression-compile-tmp/nminimo.imp"
L_0050:;
                                                                //    273        init(squash) %if curname = "SQUASH"
#line 273 "regression-compile-tmp/nminimo.imp"
if ((_imp_strcmp(CURNAME, _imp_str_literal("SQUASH")) != 0)) goto L_0051;
#line 273 "regression-compile-tmp/nminimo.imp"
INIT(&SQUASH);
#line 273 "regression-compile-tmp/nminimo.imp"
L_0051:;
                                                                //    274        init(check) %if curname = "CHECK"
#line 274 "regression-compile-tmp/nminimo.imp"
if ((_imp_strcmp(CURNAME, _imp_str_literal("CHECK")) != 0)) goto L_0052;
#line 274 "regression-compile-tmp/nminimo.imp"
INIT(&CHECK);
#line 274 "regression-compile-tmp/nminimo.imp"
L_0052:;
                                                                //    275        init(mon) %if curname = "MON"
#line 275 "regression-compile-tmp/nminimo.imp"
if ((_imp_strcmp(CURNAME, _imp_str_literal("MON")) != 0)) goto L_0053;
#line 275 "regression-compile-tmp/nminimo.imp"
INIT(&MON);
#line 275 "regression-compile-tmp/nminimo.imp"
L_0053:;
                                                                //    276        init(single) %if curname = "SINGLE"
#line 276 "regression-compile-tmp/nminimo.imp"
if ((_imp_strcmp(CURNAME, _imp_str_literal("SINGLE")) != 0)) goto L_0054;
#line 276 "regression-compile-tmp/nminimo.imp"
INIT(&SINGLE);
#line 276 "regression-compile-tmp/nminimo.imp"
L_0054:;
                                                                //    277        init(tabin) %if curname = "TABIN"
#line 277 "regression-compile-tmp/nminimo.imp"
if ((_imp_strcmp(CURNAME, _imp_str_literal("TABIN")) != 0)) goto L_0055;
#line 277 "regression-compile-tmp/nminimo.imp"
INIT(&TABIN);
#line 277 "regression-compile-tmp/nminimo.imp"
L_0055:;
                                                                //    278        init(tabin) %and tabin = 1-tabin %if curname="EQUIN"
#line 278 "regression-compile-tmp/nminimo.imp"
if ((_imp_strcmp(CURNAME, _imp_str_literal("EQUIN")) != 0)) goto L_0056;
#line 278 "regression-compile-tmp/nminimo.imp"
INIT(&TABIN);
#line 278 "regression-compile-tmp/nminimo.imp"
TABIN = (((int)(1)) - (TABIN));
#line 278 "regression-compile-tmp/nminimo.imp"
L_0056:;
                                                                //    279        printsymbol('?') %if found = 0
#line 279 "regression-compile-tmp/nminimo.imp"
if (((FOUND) != (0))) goto L_0057;
#line 279 "regression-compile-tmp/nminimo.imp"
_imp_PRINTSYMBOL(63);
#line 279 "regression-compile-tmp/nminimo.imp"
L_0057:;
                                                                //    280      %repeat %until sym # ','
#line 280 "regression-compile-tmp/nminimo.imp"
if (((SYM) != (44))) goto L_004a;
#line 280 "regression-compile-tmp/nminimo.imp"
goto L_0049;
#line 280 "regression-compile-tmp/nminimo.imp"
L_004a:;
                                                                //    281      %if echo<0 %start
#line 281 "regression-compile-tmp/nminimo.imp"
if (((ECHO) >= (0))) goto L_0058;
                                                                //    282        echo = echo+2
#line 282 "regression-compile-tmp/nminimo.imp"
ECHO = (((int)(ECHO)) + (2));
                                                                //    283        newline %if echo=0
#line 283 "regression-compile-tmp/nminimo.imp"
if (((ECHO) != (0))) goto L_0059;
#line 283 "regression-compile-tmp/nminimo.imp"
_imp_NEWLINE();
#line 283 "regression-compile-tmp/nminimo.imp"
L_0059:;
                                                                //    284      %finish
#line 284 "regression-compile-tmp/nminimo.imp"
L_0058:;
                                                                //    285    %repeat
#line 285 "regression-compile-tmp/nminimo.imp"
goto L_0043;
#line 285 "regression-compile-tmp/nminimo.imp"
L_0044:;
                                                                //    286  ! INput list
                                                                //    287    croak("Keyword ".curname."? ") %if curname # "IN"
#line 287 "regression-compile-tmp/nminimo.imp"
if ((_imp_strcmp(CURNAME, _imp_str_literal("IN")) == 0)) goto L_005a;
#line 287 "regression-compile-tmp/nminimo.imp"
CROAK(_imp_join((_imp_string)_imp_join((_imp_string)_imp_str_literal("Keyword "),(_imp_string)CURNAME),(_imp_string)_imp_str_literal("? ")));
#line 287 "regression-compile-tmp/nminimo.imp"
L_005a:;
                                                                //    288    pend = sym %if pend=0
#line 288 "regression-compile-tmp/nminimo.imp"
if (((PEND) != (0))) goto L_005b;
#line 288 "regression-compile-tmp/nminimo.imp"
PEND = SYM;
#line 288 "regression-compile-tmp/nminimo.imp"
L_005b:;
                                                                //    289    bit = 1;  negin = 0;  ignorin = 0
#line 289 "regression-compile-tmp/nminimo.imp"
BIT = 1;
#line 289 "regression-compile-tmp/nminimo.imp"
NEGIN = 0;
#line 289 "regression-compile-tmp/nminimo.imp"
IGNORIN = 0;
                                                                //    290    %cycle
#line 290 "regression-compile-tmp/nminimo.imp"
L_005c:;
                                                                //    291      croak("Too many inputs.") %if bit = 0
#line 291 "regression-compile-tmp/nminimo.imp"
if (((BIT) != (0))) goto L_005f;
#line 291 "regression-compile-tmp/nminimo.imp"
CROAK(_imp_str_literal("Too many inputs."));
#line 291 "regression-compile-tmp/nminimo.imp"
L_005f:;
                                                                //    292      read sym %until sym>' ' %and sym#','
#line 292 "regression-compile-tmp/nminimo.imp"
L_0060:;
#line 292 "regression-compile-tmp/nminimo.imp"
READSYM();
#line 292 "regression-compile-tmp/nminimo.imp"
if (((SYM) <= (32))) goto L_0062;
#line 292 "regression-compile-tmp/nminimo.imp"
if (((SYM) != (44))) goto L_0061;
#line 292 "regression-compile-tmp/nminimo.imp"
L_0062:;
#line 292 "regression-compile-tmp/nminimo.imp"
goto L_0060;
#line 292 "regression-compile-tmp/nminimo.imp"
L_0061:;
                                                                //    293      %if sym = '-' %start
#line 293 "regression-compile-tmp/nminimo.imp"
if (((SYM) != (45))) goto L_0063;
                                                                //    294        ignorin = ignorin+bit
#line 294 "regression-compile-tmp/nminimo.imp"
IGNORIN = (((int)(IGNORIN)) + (BIT));
                                                                //    295        curname = "-"
#line 295 "regression-compile-tmp/nminimo.imp"
CURNAME = _imp_str_literal("-");
                                                                //    296        read sym
#line 296 "regression-compile-tmp/nminimo.imp"
READSYM();
                                                                //    297      %finish %else %start
#line 297 "regression-compile-tmp/nminimo.imp"
goto L_0064;
#line 297 "regression-compile-tmp/nminimo.imp"
L_0063:;
                                                                //    298        %if sym = '\' %then negin = negin+bit %c
#line 298 "regression-compile-tmp/nminimo.imp"
if (((SYM) != (92))) goto L_0065;
#line 298 "regression-compile-tmp/nminimo.imp"
NEGIN = (((int)(NEGIN)) + (BIT));
#line 298 "regression-compile-tmp/nminimo.imp"
goto L_0066;
#line 298 "regression-compile-tmp/nminimo.imp"
L_0065:;
#line 298 "regression-compile-tmp/nminimo.imp"
PEND = SYM;
#line 298 "regression-compile-tmp/nminimo.imp"
L_0066:;
                                                                //    299        %else pend = sym
                                                                //    300        read name
#line 300 "regression-compile-tmp/nminimo.imp"
READNAME();
                                                                //    301        lookup
#line 301 "regression-compile-tmp/nminimo.imp"
LOOKUP();
                                                                //    302      %finish
#line 302 "regression-compile-tmp/nminimo.imp"
L_0064:;
                                                                //    303      newname
#line 303 "regression-compile-tmp/nminimo.imp"
NEWNAME();
                                                                //    304      exp(namemax) = bit
#line 304 "regression-compile-tmp/nminimo.imp"
EXP[(((int)(NAMEMAX)) - (1))] = BIT;
                                                                //    305      bit = bit<<1
#line 305 "regression-compile-tmp/nminimo.imp"
BIT = ((BIT) << (1));
                                                                //    306    %repeat %until sym # ','
#line 306 "regression-compile-tmp/nminimo.imp"
if (((SYM) != (44))) goto L_005d;
#line 306 "regression-compile-tmp/nminimo.imp"
goto L_005c;
#line 306 "regression-compile-tmp/nminimo.imp"
L_005d:;
                                                                //    307    inmax = namemax
#line 307 "regression-compile-tmp/nminimo.imp"
INMAX = NAMEMAX;
                                                                //    308    negin = \negin %if nin # 0
#line 308 "regression-compile-tmp/nminimo.imp"
if (((NIN) == (0))) goto L_0067;
#line 308 "regression-compile-tmp/nminimo.imp"
NEGIN = (~(NEGIN));
#line 308 "regression-compile-tmp/nminimo.imp"
L_0067:;
                                                                //    309  ! logic equations
                                                                //    310  %if tabin = 0 %start
#line 310 "regression-compile-tmp/nminimo.imp"
if (((TABIN) != (0))) goto L_0068;
                                                                //    311    %cycle
#line 311 "regression-compile-tmp/nminimo.imp"
L_0069:;
                                                                //    312      read name
#line 312 "regression-compile-tmp/nminimo.imp"
READNAME();
                                                                //    313      %exit %if sym # '='
#line 313 "regression-compile-tmp/nminimo.imp"
if (((SYM) == (61))) goto L_006c;
#line 313 "regression-compile-tmp/nminimo.imp"
goto L_006a;
#line 313 "regression-compile-tmp/nminimo.imp"
L_006c:;
                                                                //    314      lookup
#line 314 "regression-compile-tmp/nminimo.imp"
LOOKUP();
                                                                //    315      pos = 0 %if pos <= inmax
#line 315 "regression-compile-tmp/nminimo.imp"
if (((POS) > (INMAX))) goto L_006d;
#line 315 "regression-compile-tmp/nminimo.imp"
POS = 0;
#line 315 "regression-compile-tmp/nminimo.imp"
L_006d:;
                                                                //    316      newname
#line 316 "regression-compile-tmp/nminimo.imp"
NEWNAME();
                                                                //    317      exp(namemax) = dp;                  !start of Polish representation
#line 317 "regression-compile-tmp/nminimo.imp"
EXP[(((int)(NAMEMAX)) - (1))] = DP;
                                                                //    318      namemax = namemax-1;                !hide LH name to exclude self-ref
#line 318 "regression-compile-tmp/nminimo.imp"
NAMEMAX = (((int)(NAMEMAX)) - (1));
                                                                //    319      read exp
#line 319 "regression-compile-tmp/nminimo.imp"
READEXP();
                                                                //    320      namemax = namemax+1;                !restore LH name
#line 320 "regression-compile-tmp/nminimo.imp"
NAMEMAX = (((int)(NAMEMAX)) + (1));
                                                                //    321      put(0);                             !terminator
#line 321 "regression-compile-tmp/nminimo.imp"
PUT(0);
                                                                //    322      croak("Faulty format. ") %if sym # nl
#line 322 "regression-compile-tmp/nminimo.imp"
if (((SYM) == (10))) goto L_006e;
#line 322 "regression-compile-tmp/nminimo.imp"
CROAK(_imp_str_literal("Faulty format. "));
#line 322 "regression-compile-tmp/nminimo.imp"
L_006e:;
                                                                //    323    %repeat
#line 323 "regression-compile-tmp/nminimo.imp"
goto L_0069;
#line 323 "regression-compile-tmp/nminimo.imp"
L_006a:;
                                                                //    324  %finish %else %start;                   !tabular input
#line 324 "regression-compile-tmp/nminimo.imp"
goto L_006f;
#line 324 "regression-compile-tmp/nminimo.imp"
L_0068:;
                                                                //    325    pos1 = namebound+1;  outmax = 0
#line 325 "regression-compile-tmp/nminimo.imp"
POS1 = 257;
#line 325 "regression-compile-tmp/nminimo.imp"
OUTMAX = 0;
                                                                //    326    %cycle
#line 326 "regression-compile-tmp/nminimo.imp"
L_0070:;
                                                                //    327      read sym %until sym > ' '
#line 327 "regression-compile-tmp/nminimo.imp"
L_0073:;
#line 327 "regression-compile-tmp/nminimo.imp"
READSYM();
#line 327 "regression-compile-tmp/nminimo.imp"
if (((SYM) > (32))) goto L_0074;
#line 327 "regression-compile-tmp/nminimo.imp"
goto L_0073;
#line 327 "regression-compile-tmp/nminimo.imp"
L_0074:;
                                                                //    328      pend=sym %and %exit %if sym&95 = 'O'
#line 328 "regression-compile-tmp/nminimo.imp"
if (((((SYM) & (95))) != (79))) goto L_0076;
#line 328 "regression-compile-tmp/nminimo.imp"
PEND = SYM;
#line 328 "regression-compile-tmp/nminimo.imp"
goto L_0071;
#line 328 "regression-compile-tmp/nminimo.imp"
L_0076:;
                                                                //    329      pos1 = pos1-1
#line 329 "regression-compile-tmp/nminimo.imp"
POS1 = (((int)(POS1)) - (1));
                                                                //    330      croak("Too many table entries") %if pos1 = namemax
#line 330 "regression-compile-tmp/nminimo.imp"
if (((POS1) != (NAMEMAX))) goto L_0077;
#line 330 "regression-compile-tmp/nminimo.imp"
CROAK(_imp_str_literal("Too many table entries"));
#line 330 "regression-compile-tmp/nminimo.imp"
L_0077:;
                                                                //    331      exp(pos1) = 0
#line 331 "regression-compile-tmp/nminimo.imp"
EXP[(((int)(POS1)) - (1))] = 0;
                                                                //    332      first = 1
#line 332 "regression-compile-tmp/nminimo.imp"
FIRST = 1;
                                                                //    333      %for pos = 1,1,inmax %cycle
#line 333 "regression-compile-tmp/nminimo.imp"
{static int _initial, _increment, _final, _control;
_initial = 1; _increment = 1; _final = INMAX; POS = _control = _initial;
if (((_final-_initial) % _increment) != 0) _imp_signal(5,1,0,"Illegal cycle POS = 1, 1, INMAX");
POS -= _increment; _control -= _increment;
L_0078:;
if (POS == _final) goto L_0079;
POS += _increment; _control += _increment;
if (POS != _control) _imp_signal(4,2,0,"Corrupt control variable POS"); /* FOR loop control variable corrupted */
}
                                                                //    334        %if ignorin>>(pos-1)&1 = 0 %c
#line 334 "regression-compile-tmp/nminimo.imp"
if ((((((int)((((unsigned int)(IGNORIN)) >> ((((int)(POS)) - (1)))))) & (1))) != (0))) goto L_007b;
#line 334 "regression-compile-tmp/nminimo.imp"
if (((SYM) == (48))) goto L_007c;
#line 334 "regression-compile-tmp/nminimo.imp"
if (((SYM) != (49))) goto L_007b;
#line 334 "regression-compile-tmp/nminimo.imp"
L_007c:;
                                                                //    335        %and (sym = '0' %or sym = '1') %start
                                                                //    336          %if sym = '1' %then put(pos) %c
#line 336 "regression-compile-tmp/nminimo.imp"
if (((SYM) != (49))) goto L_007d;
#line 336 "regression-compile-tmp/nminimo.imp"
PUT(POS);
#line 336 "regression-compile-tmp/nminimo.imp"
goto L_007e;
#line 336 "regression-compile-tmp/nminimo.imp"
L_007d:;
#line 336 "regression-compile-tmp/nminimo.imp"
PUT((-1));
#line 336 "regression-compile-tmp/nminimo.imp"
PUT(POS);
#line 336 "regression-compile-tmp/nminimo.imp"
PUT((-1));
#line 336 "regression-compile-tmp/nminimo.imp"
L_007e:;
                                                                //    337          %else put(not) %and put(pos) %and put(not)
                                                                //    338          put(and) %if first = 0
#line 338 "regression-compile-tmp/nminimo.imp"
if (((FIRST) != (0))) goto L_007f;
#line 338 "regression-compile-tmp/nminimo.imp"
PUT((-3));
#line 338 "regression-compile-tmp/nminimo.imp"
L_007f:;
                                                                //    339          first = 0
#line 339 "regression-compile-tmp/nminimo.imp"
FIRST = 0;
                                                                //    340        %finish
#line 340 "regression-compile-tmp/nminimo.imp"
L_007b:;
                                                                //    341        read sym %until sym # ' '
#line 341 "regression-compile-tmp/nminimo.imp"
L_0080:;
#line 341 "regression-compile-tmp/nminimo.imp"
READSYM();
#line 341 "regression-compile-tmp/nminimo.imp"
if (((SYM) != (32))) goto L_0081;
#line 341 "regression-compile-tmp/nminimo.imp"
goto L_0080;
#line 341 "regression-compile-tmp/nminimo.imp"
L_0081:;
                                                                //    342      %repeat
#line 342 "regression-compile-tmp/nminimo.imp"
goto L_0078;
#line 342 "regression-compile-tmp/nminimo.imp"
L_0079:;
                                                                //    343      put(0)
#line 343 "regression-compile-tmp/nminimo.imp"
PUT(0);
                                                                //    344      bit = 1;  namemax = inmax
#line 344 "regression-compile-tmp/nminimo.imp"
BIT = 1;
#line 344 "regression-compile-tmp/nminimo.imp"
NAMEMAX = INMAX;
                                                                //    345      %while sym # nl %cycle
#line 345 "regression-compile-tmp/nminimo.imp"
L_0083:;
#line 345 "regression-compile-tmp/nminimo.imp"
if (((SYM) == (10))) goto L_0084;
                                                                //    346        croak("Faulty entry. ") %if (sym # '0' %and sym # '1') %c
#line 346 "regression-compile-tmp/nminimo.imp"
if (((SYM) == (48))) goto L_0086;
#line 346 "regression-compile-tmp/nminimo.imp"
if (((SYM) != (49))) goto L_0082;
#line 346 "regression-compile-tmp/nminimo.imp"
L_0086:;
#line 346 "regression-compile-tmp/nminimo.imp"
if (((NAMEMAX) != (OUTMAX))) goto L_0087;
#line 346 "regression-compile-tmp/nminimo.imp"
L_0082:;
#line 346 "regression-compile-tmp/nminimo.imp"
CROAK(_imp_str_literal("Faulty entry. "));
#line 346 "regression-compile-tmp/nminimo.imp"
L_0087:;
                                                                //    347             %or namemax = outmax
                                                                //    348        exp(pos1) = exp(pos1)!bit %if sym = '1'
#line 348 "regression-compile-tmp/nminimo.imp"
if (((SYM) != (49))) goto L_0088;
#line 348 "regression-compile-tmp/nminimo.imp"
EXP[(((int)(POS1)) - (1))] = ((EXP[(((int)(POS1)) - (1))]) | (BIT));
#line 348 "regression-compile-tmp/nminimo.imp"
L_0088:;
                                                                //    349        bit = bit<<1;  namemax = namemax+1
#line 349 "regression-compile-tmp/nminimo.imp"
BIT = ((BIT) << (1));
#line 349 "regression-compile-tmp/nminimo.imp"
NAMEMAX = (((int)(NAMEMAX)) + (1));
                                                                //    350        read sym %until sym # ' '
#line 350 "regression-compile-tmp/nminimo.imp"
L_0089:;
#line 350 "regression-compile-tmp/nminimo.imp"
READSYM();
#line 350 "regression-compile-tmp/nminimo.imp"
if (((SYM) != (32))) goto L_008a;
#line 350 "regression-compile-tmp/nminimo.imp"
goto L_0089;
#line 350 "regression-compile-tmp/nminimo.imp"
L_008a:;
                                                                //    351      %repeat
#line 351 "regression-compile-tmp/nminimo.imp"
goto L_0083;
#line 351 "regression-compile-tmp/nminimo.imp"
L_0084:;
                                                                //    352      outmax = namemax %if outmax = 0
#line 352 "regression-compile-tmp/nminimo.imp"
if (((OUTMAX) != (0))) goto L_008c;
#line 352 "regression-compile-tmp/nminimo.imp"
OUTMAX = NAMEMAX;
#line 352 "regression-compile-tmp/nminimo.imp"
L_008c:;
                                                                //    353      croak("Faulty entry. ") %if outmax # namemax
#line 353 "regression-compile-tmp/nminimo.imp"
if (((OUTMAX) == (NAMEMAX))) goto L_008d;
#line 353 "regression-compile-tmp/nminimo.imp"
CROAK(_imp_str_literal("Faulty entry. "));
#line 353 "regression-compile-tmp/nminimo.imp"
L_008d:;
                                                                //    354    %repeat
#line 354 "regression-compile-tmp/nminimo.imp"
goto L_0070;
#line 354 "regression-compile-tmp/nminimo.imp"
L_0071:;
                                                                //    355    bit = 1
#line 355 "regression-compile-tmp/nminimo.imp"
BIT = 1;
                                                                //    356    bit = \0 %and namemax = inmax+1 %if check # 0
#line 356 "regression-compile-tmp/nminimo.imp"
if (((CHECK) == (0))) goto L_008e;
#line 356 "regression-compile-tmp/nminimo.imp"
BIT = (~(0));
#line 356 "regression-compile-tmp/nminimo.imp"
NAMEMAX = (((int)(INMAX)) + (1));
#line 356 "regression-compile-tmp/nminimo.imp"
L_008e:;
                                                                //    357    %for pos = inmax+1,1,namemax %cycle
#line 357 "regression-compile-tmp/nminimo.imp"
{static int _initial, _increment, _final, _control;
_initial = (((int)(INMAX)) + (1)); _increment = 1; _final = NAMEMAX; POS = _control = _initial;
if (((_final-_initial) % _increment) != 0) _imp_signal(5,1,0,"Illegal cycle POS = (((int)(INMAX)) + (1)), 1, NAMEMAX");
POS -= _increment; _control -= _increment;
L_008f:;
if (POS == _final) goto L_0090;
POS += _increment; _control += _increment;
if (POS != _control) _imp_signal(4,2,0,"Corrupt control variable POS"); /* FOR loop control variable corrupted */
}
                                                                //    358      exp(pos) = dp
#line 358 "regression-compile-tmp/nminimo.imp"
EXP[(((int)(POS)) - (1))] = DP;
                                                                //    359      first = 1
#line 359 "regression-compile-tmp/nminimo.imp"
FIRST = 1;
                                                                //    360      %integer first pos1 A = pos1 {workaround}
#line 360 "regression-compile-tmp/nminimo.imp"
int FIRSTPOS1A;
#line 360 "regression-compile-tmp/nminimo.imp"
FIRSTPOS1A = POS1;
                                                                //    361      %for pos1 = namebound,-1,first{workaround}pos1 A %cycle
#line 361 "regression-compile-tmp/nminimo.imp"
{static int _initial, _increment, _final, _control;
_initial = 256; _increment = (-1); _final = FIRSTPOS1A; POS1 = _control = _initial;
if (((_final-_initial) % _increment) != 0) _imp_signal(5,1,0,"Illegal cycle POS1 = 256, (-1), FIRSTPOS1A");
POS1 -= _increment; _control -= _increment;
L_0092:;
if (POS1 == _final) goto L_0093;
POS1 += _increment; _control += _increment;
if (POS1 != _control) _imp_signal(4,2,0,"Corrupt control variable POS1"); /* FOR loop control variable corrupted */
}
                                                                //    362        %if exp(pos1)&bit # 0 %start
#line 362 "regression-compile-tmp/nminimo.imp"
if (((((EXP[(((int)(POS1)) - (1))]) & (BIT))) == (0))) goto L_0095;
                                                                //    363          put(pos1)
#line 363 "regression-compile-tmp/nminimo.imp"
PUT(POS1);
                                                                //    364          put(or) %if first = 0
#line 364 "regression-compile-tmp/nminimo.imp"
if (((FIRST) != (0))) goto L_0096;
#line 364 "regression-compile-tmp/nminimo.imp"
PUT((-2));
#line 364 "regression-compile-tmp/nminimo.imp"
L_0096:;
                                                                //    365          first = 0
#line 365 "regression-compile-tmp/nminimo.imp"
FIRST = 0;
                                                                //    366        %finish
#line 366 "regression-compile-tmp/nminimo.imp"
L_0095:;
                                                                //    367      %repeat
#line 367 "regression-compile-tmp/nminimo.imp"
goto L_0092;
#line 367 "regression-compile-tmp/nminimo.imp"
L_0093:;
                                                                //    368      put(0)
#line 368 "regression-compile-tmp/nminimo.imp"
PUT(0);
                                                                //    369      bit = bit<<1
#line 369 "regression-compile-tmp/nminimo.imp"
BIT = ((BIT) << (1));
                                                                //    370    %repeat
#line 370 "regression-compile-tmp/nminimo.imp"
goto L_008f;
#line 370 "regression-compile-tmp/nminimo.imp"
L_0090:;
                                                                //    371    dp1 = 1
#line 371 "regression-compile-tmp/nminimo.imp"
DP1 = 1;
                                                                //    372    %integer first pos1 B = pos1 {workaround}
#line 372 "regression-compile-tmp/nminimo.imp"
int FIRSTPOS1B;
#line 372 "regression-compile-tmp/nminimo.imp"
FIRSTPOS1B = POS1;
                                                                //    373    %for pos1 = namebound,-1,first{workaround}pos1 B %cycle
#line 373 "regression-compile-tmp/nminimo.imp"
{static int _initial, _increment, _final, _control;
_initial = 256; _increment = (-1); _final = FIRSTPOS1B; POS1 = _control = _initial;
if (((_final-_initial) % _increment) != 0) _imp_signal(5,1,0,"Illegal cycle POS1 = 256, (-1), FIRSTPOS1B");
POS1 -= _increment; _control -= _increment;
L_0097:;
if (POS1 == _final) goto L_0098;
POS1 += _increment; _control += _increment;
if (POS1 != _control) _imp_signal(4,2,0,"Corrupt control variable POS1"); /* FOR loop control variable corrupted */
}
                                                                //    374      exp(pos1) = dp1
#line 374 "regression-compile-tmp/nminimo.imp"
EXP[(((int)(POS1)) - (1))] = DP1;
                                                                //    375      dp1 = dp1+1 %until def(dp1-1) = 0
#line 375 "regression-compile-tmp/nminimo.imp"
L_009a:;
#line 375 "regression-compile-tmp/nminimo.imp"
DP1 = (((int)(DP1)) + (1));
#line 375 "regression-compile-tmp/nminimo.imp"
if (((DEF[(((int)((((int)(DP1)) - (1)))) - (1))]) == (0))) goto L_009b;
#line 375 "regression-compile-tmp/nminimo.imp"
goto L_009a;
#line 375 "regression-compile-tmp/nminimo.imp"
L_009b:;
                                                                //    376    %repeat
#line 376 "regression-compile-tmp/nminimo.imp"
goto L_0097;
#line 376 "regression-compile-tmp/nminimo.imp"
L_0098:;
                                                                //    377    read name
#line 377 "regression-compile-tmp/nminimo.imp"
READNAME();
                                                                //    378  %finish
#line 378 "regression-compile-tmp/nminimo.imp"
L_006f:;
                                                                //    379  ! OUTput list
                                                                //    380  !  note that OUTput names are added again 
                                                                //    381  !      to simplify treatment of "Don't cares"
                                                                //    382    croak("Keyword ".curname."? ") %if curname # "OUT"
#line 382 "regression-compile-tmp/nminimo.imp"
if ((_imp_strcmp(CURNAME, _imp_str_literal("OUT")) == 0)) goto L_009d;
#line 382 "regression-compile-tmp/nminimo.imp"
CROAK(_imp_join((_imp_string)_imp_join((_imp_string)_imp_str_literal("Keyword "),(_imp_string)CURNAME),(_imp_string)_imp_str_literal("? ")));
#line 382 "regression-compile-tmp/nminimo.imp"
L_009d:;
                                                                //    383    pend = sym %if pend=0
#line 383 "regression-compile-tmp/nminimo.imp"
if (((PEND) != (0))) goto L_009e;
#line 383 "regression-compile-tmp/nminimo.imp"
PEND = SYM;
#line 383 "regression-compile-tmp/nminimo.imp"
L_009e:;
                                                                //    384    outmin = namemax+1;  pos = inmax
#line 384 "regression-compile-tmp/nminimo.imp"
OUTMIN = (((int)(NAMEMAX)) + (1));
#line 384 "regression-compile-tmp/nminimo.imp"
POS = INMAX;
                                                                //    385    negout = 0;  ignorout = 0;  bit = 1
#line 385 "regression-compile-tmp/nminimo.imp"
NEGOUT = 0;
#line 385 "regression-compile-tmp/nminimo.imp"
IGNOROUT = 0;
#line 385 "regression-compile-tmp/nminimo.imp"
BIT = 1;
                                                                //    386    %cycle
#line 386 "regression-compile-tmp/nminimo.imp"
L_009f:;
                                                                //    387      croak("Too many outputs. ") %if namemax-outmin+2 > 32
#line 387 "regression-compile-tmp/nminimo.imp"
if ((((((int)((((int)(NAMEMAX)) - (OUTMIN)))) + (2))) <= (32))) goto L_00a2;
#line 387 "regression-compile-tmp/nminimo.imp"
CROAK(_imp_str_literal("Too many outputs. "));
#line 387 "regression-compile-tmp/nminimo.imp"
L_00a2:;
                                                                //    388      read sym %until sym>' ' %and sym#','
#line 388 "regression-compile-tmp/nminimo.imp"
L_00a3:;
#line 388 "regression-compile-tmp/nminimo.imp"
READSYM();
#line 388 "regression-compile-tmp/nminimo.imp"
if (((SYM) <= (32))) goto L_00a5;
#line 388 "regression-compile-tmp/nminimo.imp"
if (((SYM) != (44))) goto L_00a4;
#line 388 "regression-compile-tmp/nminimo.imp"
L_00a5:;
#line 388 "regression-compile-tmp/nminimo.imp"
goto L_00a3;
#line 388 "regression-compile-tmp/nminimo.imp"
L_00a4:;
                                                                //    389      %if sym = '-' %start
#line 389 "regression-compile-tmp/nminimo.imp"
if (((SYM) != (45))) goto L_00a6;
                                                                //    390        ignorout = ignorout+bit
#line 390 "regression-compile-tmp/nminimo.imp"
IGNOROUT = (((int)(IGNOROUT)) + (BIT));
                                                                //    391        curname = "-"
#line 391 "regression-compile-tmp/nminimo.imp"
CURNAME = _imp_str_literal("-");
                                                                //    392        read sym
#line 392 "regression-compile-tmp/nminimo.imp"
READSYM();
                                                                //    393      %finish %else %start
#line 393 "regression-compile-tmp/nminimo.imp"
goto L_00a7;
#line 393 "regression-compile-tmp/nminimo.imp"
L_00a6:;
                                                                //    394        %if sym = '\' %then negout = negout+bit %c
#line 394 "regression-compile-tmp/nminimo.imp"
if (((SYM) != (92))) goto L_00a8;
#line 394 "regression-compile-tmp/nminimo.imp"
NEGOUT = (((int)(NEGOUT)) + (BIT));
#line 394 "regression-compile-tmp/nminimo.imp"
goto L_00a9;
#line 394 "regression-compile-tmp/nminimo.imp"
L_00a8:;
#line 394 "regression-compile-tmp/nminimo.imp"
PEND = SYM;
#line 394 "regression-compile-tmp/nminimo.imp"
L_00a9:;
                                                                //    395        %else pend = sym
                                                                //    396        read name
#line 396 "regression-compile-tmp/nminimo.imp"
READNAME();
                                                                //    397      %finish
#line 397 "regression-compile-tmp/nminimo.imp"
L_00a7:;
                                                                //    398      %if tabin = 0 %then lookup %else pos = pos+1
#line 398 "regression-compile-tmp/nminimo.imp"
if (((TABIN) != (0))) goto L_00aa;
#line 398 "regression-compile-tmp/nminimo.imp"
LOOKUP();
#line 398 "regression-compile-tmp/nminimo.imp"
goto L_00ab;
#line 398 "regression-compile-tmp/nminimo.imp"
L_00aa:;
#line 398 "regression-compile-tmp/nminimo.imp"
POS = (((int)(POS)) + (1));
#line 398 "regression-compile-tmp/nminimo.imp"
L_00ab:;
                                                                //    399      %if pos # 0 %start;                 !should be there
#line 399 "regression-compile-tmp/nminimo.imp"
if (((POS) == (0))) goto L_00ac;
                                                                //    400        addname
#line 400 "regression-compile-tmp/nminimo.imp"
ADDNAME();
                                                                //    401        exp(namemax) = dp
#line 401 "regression-compile-tmp/nminimo.imp"
EXP[(((int)(NAMEMAX)) - (1))] = DP;
                                                                //    402        put(pos)
#line 402 "regression-compile-tmp/nminimo.imp"
PUT(POS);
                                                                //    403        %if tabin = 0 %start
#line 403 "regression-compile-tmp/nminimo.imp"
if (((TABIN) != (0))) goto L_00ad;
                                                                //    404          curname = curname."?";          !any "Don't cares" for this one?
#line 404 "regression-compile-tmp/nminimo.imp"
CURNAME = _imp_join((_imp_string)CURNAME,(_imp_string)_imp_str_literal("?"));
                                                                //    405          lookup
#line 405 "regression-compile-tmp/nminimo.imp"
LOOKUP();
                                                                //    406          %if pos # 0 %start;             !if so
#line 406 "regression-compile-tmp/nminimo.imp"
if (((POS) == (0))) goto L_00ae;
                                                                //    407            put(pos)
#line 407 "regression-compile-tmp/nminimo.imp"
PUT(POS);
                                                                //    408            put(or)
#line 408 "regression-compile-tmp/nminimo.imp"
PUT((-2));
                                                                //    409          %finish
#line 409 "regression-compile-tmp/nminimo.imp"
L_00ae:;
                                                                //    410        %finish
#line 410 "regression-compile-tmp/nminimo.imp"
L_00ad:;
                                                                //    411        put(0)
#line 411 "regression-compile-tmp/nminimo.imp"
PUT(0);
                                                                //    412      %finish %else %start
#line 412 "regression-compile-tmp/nminimo.imp"
goto L_00af;
#line 412 "regression-compile-tmp/nminimo.imp"
L_00ac:;
                                                                //    413        queryname
#line 413 "regression-compile-tmp/nminimo.imp"
QUERYNAME();
                                                                //    414      %finish
#line 414 "regression-compile-tmp/nminimo.imp"
L_00af:;
                                                                //    415      bit = bit<<1
#line 415 "regression-compile-tmp/nminimo.imp"
BIT = ((BIT) << (1));
                                                                //    416    %repeat %until sym # ','
#line 416 "regression-compile-tmp/nminimo.imp"
if (((SYM) != (44))) goto L_00a0;
#line 416 "regression-compile-tmp/nminimo.imp"
goto L_009f;
#line 416 "regression-compile-tmp/nminimo.imp"
L_00a0:;
                                                                //    417    %stop %if outmin > namemax;           !no (surviving) outputs
#line 417 "regression-compile-tmp/nminimo.imp"
if (((OUTMIN) <= (NAMEMAX))) goto L_00b0;
#line 417 "regression-compile-tmp/nminimo.imp"
exit(0);
#line 417 "regression-compile-tmp/nminimo.imp"
L_00b0:;
                                                                //    418    croak("Faulty format. ") %if sym # nl
#line 418 "regression-compile-tmp/nminimo.imp"
if (((SYM) == (10))) goto L_00b1;
#line 418 "regression-compile-tmp/nminimo.imp"
CROAK(_imp_str_literal("Faulty format. "));
#line 418 "regression-compile-tmp/nminimo.imp"
L_00b1:;
                                                                //    419    negout = \negout %if nout # 0
#line 419 "regression-compile-tmp/nminimo.imp"
if (((NOUT) == (0))) goto L_00b2;
#line 419 "regression-compile-tmp/nminimo.imp"
NEGOUT = (~(NEGOUT));
#line 419 "regression-compile-tmp/nminimo.imp"
L_00b2:;
                                                                //    420  %end; !READIN
#line 420 "regression-compile-tmp/nminimo.imp"
/* Remove %on %event handler here if present for this block */
return;
} // End of block READIN at level 2
                                                                //    421  
                                                                //    422  %routine print term(%record(cell) v, %integer x)
#line 422 "regression-compile-tmp/nminimo.imp"
void PRINTTERM(  CELL V, int X )
#line 422 "regression-compile-tmp/nminimo.imp"
{
                                                                //    423  %integer i,l
#line 423 "regression-compile-tmp/nminimo.imp"
int I;
#line 423 "regression-compile-tmp/nminimo.imp"
int L;
                                                                //    424    %for i = 1,1,inmax %cycle
#line 424 "regression-compile-tmp/nminimo.imp"
{static int _initial, _increment, _final, _control;
_initial = 1; _increment = 1; _final = INMAX; I = _control = _initial;
if (((_final-_initial) % _increment) != 0) _imp_signal(5,1,0,"Illegal cycle I = 1, 1, INMAX");
I -= _increment; _control -= _increment;
L_00b3:;
if (I == _final) goto L_00b4;
I += _increment; _control += _increment;
if (I != _control) _imp_signal(4,2,0,"Corrupt control variable I"); /* FOR loop control variable corrupted */
}
                                                                //    425      space %if squash = 0
#line 425 "regression-compile-tmp/nminimo.imp"
if (((SQUASH) != (0))) goto L_00b6;
#line 425 "regression-compile-tmp/nminimo.imp"
_imp_SPACE();
#line 425 "regression-compile-tmp/nminimo.imp"
L_00b6:;
                                                                //    426      %if (v_t!v_f)&1 # 0 %start
#line 426 "regression-compile-tmp/nminimo.imp"
if (((((((V.T) | (V.F))) & (1))) == (0))) goto L_00b7;
                                                                //    427        l = ' '
#line 427 "regression-compile-tmp/nminimo.imp"
L = 32;
                                                                //    428        l = '\' %if v_f&1 # 0
#line 428 "regression-compile-tmp/nminimo.imp"
if (((((V.F) & (1))) == (0))) goto L_00b8;
#line 428 "regression-compile-tmp/nminimo.imp"
L = 92;
#line 428 "regression-compile-tmp/nminimo.imp"
L_00b8:;
                                                                //    429        printsymbol(l)
#line 429 "regression-compile-tmp/nminimo.imp"
_imp_PRINTSYMBOL(L);
                                                                //    430        print string(name(i))
#line 430 "regression-compile-tmp/nminimo.imp"
_imp_PRINTSTRING(NAME[(((int)(I)) - (1))]);
                                                                //    431      %finish %else %start
#line 431 "regression-compile-tmp/nminimo.imp"
goto L_00b9;
#line 431 "regression-compile-tmp/nminimo.imp"
L_00b7:;
                                                                //    432        l = length(name(i))
#line 432 "regression-compile-tmp/nminimo.imp"
L = *_imp_LENGTH(&NAME[(((int)(I)) - (1))]);
                                                                //    433        spaces((l+1)//2)
#line 433 "regression-compile-tmp/nminimo.imp"
_imp_SPACES(((long)((long)(((((int)(L)) + (1)))) / (long)((int)(2)))));
                                                                //    434        printsymbol('.')
#line 434 "regression-compile-tmp/nminimo.imp"
_imp_PRINTSYMBOL(46);
                                                                //    435        spaces(l//2)
#line 435 "regression-compile-tmp/nminimo.imp"
_imp_SPACES(((long)((long)((int)(L)) / (long)((int)(2)))));
                                                                //    436      %finish
#line 436 "regression-compile-tmp/nminimo.imp"
L_00b9:;
                                                                //    437      v_t = v_t>>1;  v_f = v_f>>1
#line 437 "regression-compile-tmp/nminimo.imp"
V.T = (int)((((unsigned int)(V.T)) >> (1)));
#line 437 "regression-compile-tmp/nminimo.imp"
V.F = (int)((((unsigned int)(V.F)) >> (1)));
                                                                //    438    %repeat
#line 438 "regression-compile-tmp/nminimo.imp"
goto L_00b3;
#line 438 "regression-compile-tmp/nminimo.imp"
L_00b4:;
                                                                //    439    space %if squash = 0
#line 439 "regression-compile-tmp/nminimo.imp"
if (((SQUASH) != (0))) goto L_00ba;
#line 439 "regression-compile-tmp/nminimo.imp"
_imp_SPACE();
#line 439 "regression-compile-tmp/nminimo.imp"
L_00ba:;
                                                                //    440    printsymbol(':')
#line 440 "regression-compile-tmp/nminimo.imp"
_imp_PRINTSYMBOL(58);
                                                                //    441    %for i = outmin,1,namemax %cycle
#line 441 "regression-compile-tmp/nminimo.imp"
{static int _initial, _increment, _final, _control;
_initial = OUTMIN; _increment = 1; _final = NAMEMAX; I = _control = _initial;
if (((_final-_initial) % _increment) != 0) _imp_signal(5,1,0,"Illegal cycle I = OUTMIN, 1, NAMEMAX");
I -= _increment; _control -= _increment;
L_00bb:;
if (I == _final) goto L_00bc;
I += _increment; _control += _increment;
if (I != _control) _imp_signal(4,2,0,"Corrupt control variable I"); /* FOR loop control variable corrupted */
}
                                                                //    442      space
#line 442 "regression-compile-tmp/nminimo.imp"
_imp_SPACE();
                                                                //    443      %if v_outs&1 # 0 %start
#line 443 "regression-compile-tmp/nminimo.imp"
if (((((V.OUTS) & (1))) == (0))) goto L_00be;
                                                                //    444        printstring(name(i))
#line 444 "regression-compile-tmp/nminimo.imp"
_imp_PRINTSTRING(NAME[(((int)(I)) - (1))]);
                                                                //    445      %finish %else %start
#line 445 "regression-compile-tmp/nminimo.imp"
goto L_00bf;
#line 445 "regression-compile-tmp/nminimo.imp"
L_00be:;
                                                                //    446        l = length(name(i))
#line 446 "regression-compile-tmp/nminimo.imp"
L = *_imp_LENGTH(&NAME[(((int)(I)) - (1))]);
                                                                //    447        spaces((l-1)//2)
#line 447 "regression-compile-tmp/nminimo.imp"
_imp_SPACES(((long)((long)(((((int)(L)) - (1)))) / (long)((int)(2)))));
                                                                //    448        %if x&1 = 0 %then printsymbol('.') %c
#line 448 "regression-compile-tmp/nminimo.imp"
if (((((X) & (1))) != (0))) goto L_00c0;
#line 448 "regression-compile-tmp/nminimo.imp"
_imp_PRINTSYMBOL(46);
#line 448 "regression-compile-tmp/nminimo.imp"
goto L_00c1;
#line 448 "regression-compile-tmp/nminimo.imp"
L_00c0:;
#line 448 "regression-compile-tmp/nminimo.imp"
_imp_PRINTSYMBOL(63);
#line 448 "regression-compile-tmp/nminimo.imp"
L_00c1:;
                                                                //    449        %else printsymbol('?')
                                                                //    450        spaces(l//2)
#line 450 "regression-compile-tmp/nminimo.imp"
_imp_SPACES(((long)((long)((int)(L)) / (long)((int)(2)))));
                                                                //    451      %finish
#line 451 "regression-compile-tmp/nminimo.imp"
L_00bf:;
                                                                //    452      v_outs = v_outs>>1;  x = x>>1
#line 452 "regression-compile-tmp/nminimo.imp"
V.OUTS = (int)((((unsigned int)(V.OUTS)) >> (1)));
#line 452 "regression-compile-tmp/nminimo.imp"
X = (int)((((unsigned int)(X)) >> (1)));
                                                                //    453    %repeat
#line 453 "regression-compile-tmp/nminimo.imp"
goto L_00bb;
#line 453 "regression-compile-tmp/nminimo.imp"
L_00bc:;
                                                                //    454    newline
#line 454 "regression-compile-tmp/nminimo.imp"
_imp_NEWLINE();
                                                                //    455  %end
#line 455 "regression-compile-tmp/nminimo.imp"
/* Remove %on %event handler here if present for this block */
return;
} // End of block PRINTTERM at level 2
                                                                //    456  
                                                                //    457  %routine monitor(%integer lim)
#line 457 "regression-compile-tmp/nminimo.imp"
void MONITOR( int LIM )
#line 457 "regression-compile-tmp/nminimo.imp"
{
                                                                //    458  %integer q
#line 458 "regression-compile-tmp/nminimo.imp"
int Q;
                                                                //    459    newline
#line 459 "regression-compile-tmp/nminimo.imp"
_imp_NEWLINE();
                                                                //    460    q = 1
#line 460 "regression-compile-tmp/nminimo.imp"
Q = 1;
                                                                //    461    %while q # lim %cycle
#line 461 "regression-compile-tmp/nminimo.imp"
L_00c2:;
#line 461 "regression-compile-tmp/nminimo.imp"
if (((Q) == (LIM))) goto L_00c3;
                                                                //    462      write(q,2) %if mon&4 # 0
#line 462 "regression-compile-tmp/nminimo.imp"
if (((((MON) & (4))) == (0))) goto L_00c5;
#line 462 "regression-compile-tmp/nminimo.imp"
_imp_WRITE(Q, 2);
#line 462 "regression-compile-tmp/nminimo.imp"
L_00c5:;
                                                                //    463      print term(w(q),0)
#line 463 "regression-compile-tmp/nminimo.imp"
PRINTTERM(W[(((int)(Q)) - (1))], 0);
                                                                //    464      q = q+1
#line 464 "regression-compile-tmp/nminimo.imp"
Q = (((int)(Q)) + (1));
                                                                //    465    %repeat
#line 465 "regression-compile-tmp/nminimo.imp"
goto L_00c2;
#line 465 "regression-compile-tmp/nminimo.imp"
L_00c3:;
                                                                //    466    newline
#line 466 "regression-compile-tmp/nminimo.imp"
_imp_NEWLINE();
                                                                //    467  %end
#line 467 "regression-compile-tmp/nminimo.imp"
/* Remove %on %event handler here if present for this block */
return;
} // End of block MONITOR at level 2
                                                                //    468  
                                                                //    469  %routine copydown
#line 469 "regression-compile-tmp/nminimo.imp"
void COPYDOWN( void )
#line 469 "regression-compile-tmp/nminimo.imp"
{
                                                                //    470    np1 = np
#line 470 "regression-compile-tmp/nminimo.imp"
NP1 = NP;
                                                                //    471    %while sp # sp1 %cycle
#line 471 "regression-compile-tmp/nminimo.imp"
L_00c6:;
#line 471 "regression-compile-tmp/nminimo.imp"
if (((SP) == (SP1))) goto L_00c7;
                                                                //    472      sp = sp-1;  np = np-1
#line 472 "regression-compile-tmp/nminimo.imp"
SP = (((int)(SP)) - (1));
#line 472 "regression-compile-tmp/nminimo.imp"
NP = (((int)(NP)) - (1));
                                                                //    473      w(np) = w(sp)
#line 473 "regression-compile-tmp/nminimo.imp"
W[(((int)(NP)) - (1))] = W[(((int)(SP)) - (1))];
                                                                //    474    %repeat
#line 474 "regression-compile-tmp/nminimo.imp"
goto L_00c6;
#line 474 "regression-compile-tmp/nminimo.imp"
L_00c7:;
                                                                //    475  %end
#line 475 "regression-compile-tmp/nminimo.imp"
/* Remove %on %event handler here if present for this block */
return;
} // End of block COPYDOWN at level 2
                                                                //    476  
                                                                //    477  %routine erase(%integer p)
#line 477 "regression-compile-tmp/nminimo.imp"
void ERASE( int P )
#line 477 "regression-compile-tmp/nminimo.imp"
{
                                                                //    478    sp = sp-1
#line 478 "regression-compile-tmp/nminimo.imp"
SP = (((int)(SP)) - (1));
                                                                //    479    %while p # sp %cycle
#line 479 "regression-compile-tmp/nminimo.imp"
L_00c9:;
#line 479 "regression-compile-tmp/nminimo.imp"
if (((P) == (SP))) goto L_00ca;
                                                                //    480      w(p) = w(p+1)
#line 480 "regression-compile-tmp/nminimo.imp"
W[(((int)(P)) - (1))] = W[(((int)((((int)(P)) + (1)))) - (1))];
                                                                //    481      p = p+1
#line 481 "regression-compile-tmp/nminimo.imp"
P = (((int)(P)) + (1));
                                                                //    482    %repeat
#line 482 "regression-compile-tmp/nminimo.imp"
goto L_00c9;
#line 482 "regression-compile-tmp/nminimo.imp"
L_00ca:;
                                                                //    483  %end
#line 483 "regression-compile-tmp/nminimo.imp"
/* Remove %on %event handler here if present for this block */
return;
} // End of block ERASE at level 2
                                                                //    484  
                                                                //    485  %routine merge
#line 485 "regression-compile-tmp/nminimo.imp"
void MERGE( void )
#line 485 "regression-compile-tmp/nminimo.imp"
{
                                                                //    486  %integer p,k,same
#line 486 "regression-compile-tmp/nminimo.imp"
int P;
#line 486 "regression-compile-tmp/nminimo.imp"
int K;
#line 486 "regression-compile-tmp/nminimo.imp"
int SAME;
                                                                //    487  %ownrecord(cell) v,n=0
#line 487 "regression-compile-tmp/nminimo.imp"
static  CELL V;
#line 487 "regression-compile-tmp/nminimo.imp"
static  CELL N = { 0 } /* Initialise all fields of a record to 0. */;
                                                                //    488    %while np # np1 %cycle
#line 488 "regression-compile-tmp/nminimo.imp"
L_00cc:;
#line 488 "regression-compile-tmp/nminimo.imp"
if (((NP) == (NP1))) goto L_00cd;
                                                                //    489      v = w(np);  np = np+1
#line 489 "regression-compile-tmp/nminimo.imp"
V = W[(((int)(NP)) - (1))];
#line 489 "regression-compile-tmp/nminimo.imp"
NP = (((int)(NP)) + (1));
                                                                //    490      p = sp1;  same = 0
#line 490 "regression-compile-tmp/nminimo.imp"
P = SP1;
#line 490 "regression-compile-tmp/nminimo.imp"
SAME = 0;
                                                                //    491      %while p # sp %cycle
#line 491 "regression-compile-tmp/nminimo.imp"
L_00cf:;
#line 491 "regression-compile-tmp/nminimo.imp"
if (((P) == (SP))) goto L_00d0;
                                                                //    492        %if w(p)_t!v_t = v_t %and w(p)_f!v_f = v_f %start; !V -> @P
#line 492 "regression-compile-tmp/nminimo.imp"
if (((((W[(((int)(P)) - (1))].T) | (V.T))) != (V.T))) goto L_00d2;
#line 492 "regression-compile-tmp/nminimo.imp"
if (((((W[(((int)(P)) - (1))].F) | (V.F))) != (V.F))) goto L_00d2;
                                                                //    493          v_outs = v_outs&(\w(p)_outs)
#line 493 "regression-compile-tmp/nminimo.imp"
V.OUTS = ((V.OUTS) & ((~(W[(((int)(P)) - (1))].OUTS))));
                                                                //    494          %exit %if v_outs = 0
#line 494 "regression-compile-tmp/nminimo.imp"
if (((V.OUTS) != (0))) goto L_00d3;
#line 494 "regression-compile-tmp/nminimo.imp"
goto L_00d0;
#line 494 "regression-compile-tmp/nminimo.imp"
L_00d3:;
                                                                //    495          same = p %if w(p)_t = v_t %and w(p)_f = v_f
#line 495 "regression-compile-tmp/nminimo.imp"
if (((W[(((int)(P)) - (1))].T) != (V.T))) goto L_00d4;
#line 495 "regression-compile-tmp/nminimo.imp"
if (((W[(((int)(P)) - (1))].F) != (V.F))) goto L_00d4;
#line 495 "regression-compile-tmp/nminimo.imp"
SAME = P;
#line 495 "regression-compile-tmp/nminimo.imp"
L_00d4:;
                                                                //    496        %finish
#line 496 "regression-compile-tmp/nminimo.imp"
L_00d2:;
                                                                //    497        p = p+1
#line 497 "regression-compile-tmp/nminimo.imp"
P = (((int)(P)) + (1));
                                                                //    498      %repeat
#line 498 "regression-compile-tmp/nminimo.imp"
goto L_00cf;
#line 498 "regression-compile-tmp/nminimo.imp"
L_00d0:;
                                                                //    499      %if v_outs # 0 %start
#line 499 "regression-compile-tmp/nminimo.imp"
if (((V.OUTS) == (0))) goto L_00d5;
                                                                //    500        %while p # sp1 %cycle
#line 500 "regression-compile-tmp/nminimo.imp"
L_00d6:;
#line 500 "regression-compile-tmp/nminimo.imp"
if (((P) == (SP1))) goto L_00d7;
                                                                //    501          p = p-1
#line 501 "regression-compile-tmp/nminimo.imp"
P = (((int)(P)) - (1));
                                                                //    502          n_outs = w(p)_outs&v_outs
#line 502 "regression-compile-tmp/nminimo.imp"
N.OUTS = ((W[(((int)(P)) - (1))].OUTS) & (V.OUTS));
                                                                //    503          %if n_outs # 0 %start
#line 503 "regression-compile-tmp/nminimo.imp"
if (((N.OUTS) == (0))) goto L_00d9;
                                                                //    504            n_t = w(p)_t!v_t;  n_f = w(p)_f!v_f
#line 504 "regression-compile-tmp/nminimo.imp"
N.T = ((W[(((int)(P)) - (1))].T) | (V.T));
#line 504 "regression-compile-tmp/nminimo.imp"
N.F = ((W[(((int)(P)) - (1))].F) | (V.F));
                                                                //    505            k = (n_t)&n_f
#line 505 "regression-compile-tmp/nminimo.imp"
K = ((N.T) & (N.F));
                                                                //    506            %if k # 0 %and (k-1)&k = 0 %start; !singleton
#line 506 "regression-compile-tmp/nminimo.imp"
if (((K) == (0))) goto L_00da;
#line 506 "regression-compile-tmp/nminimo.imp"
if ((((((((int)(K)) - (1))) & (K))) != (0))) goto L_00da;
                                                                //    507              n_t = n_t!!k;  n_f = n_f!!k
#line 507 "regression-compile-tmp/nminimo.imp"
N.T = ((N.T) ^ (K));
#line 507 "regression-compile-tmp/nminimo.imp"
N.F = ((N.F) ^ (K));
                                                                //    508              push(n)
#line 508 "regression-compile-tmp/nminimo.imp"
PUSH(N);
                                                                //    509              v_outs = v_outs!!n_outs %if n_t!v_t = v_t %and n_f!v_f = v_f; !V -> N
#line 509 "regression-compile-tmp/nminimo.imp"
if (((((N.T) | (V.T))) != (V.T))) goto L_00db;
#line 509 "regression-compile-tmp/nminimo.imp"
if (((((N.F) | (V.F))) != (V.F))) goto L_00db;
#line 509 "regression-compile-tmp/nminimo.imp"
V.OUTS = ((V.OUTS) ^ (N.OUTS));
#line 509 "regression-compile-tmp/nminimo.imp"
L_00db:;
                                                                //    510              n_t = n_t!w(p)_t;  n_f = n_f!w(p)_f
#line 510 "regression-compile-tmp/nminimo.imp"
N.T = ((N.T) | (W[(((int)(P)) - (1))].T));
#line 510 "regression-compile-tmp/nminimo.imp"
N.F = ((N.F) | (W[(((int)(P)) - (1))].F));
                                                                //    511            %finish
#line 511 "regression-compile-tmp/nminimo.imp"
L_00da:;
                                                                //    512            %if n_t = w(p)_t %and n_f = w(p)_f %start;  !@P -> N
#line 512 "regression-compile-tmp/nminimo.imp"
if (((N.T) != (W[(((int)(P)) - (1))].T))) goto L_00dc;
#line 512 "regression-compile-tmp/nminimo.imp"
if (((N.F) != (W[(((int)(P)) - (1))].F))) goto L_00dc;
                                                                //    513              w(p)_outs = w(p)_outs!!n_outs
#line 513 "regression-compile-tmp/nminimo.imp"
W[(((int)(P)) - (1))].OUTS = ((W[(((int)(P)) - (1))].OUTS) ^ (N.OUTS));
                                                                //    514              %if w(p)_outs = 0 %start
#line 514 "regression-compile-tmp/nminimo.imp"
if (((W[(((int)(P)) - (1))].OUTS) != (0))) goto L_00dd;
                                                                //    515                erase(p)
#line 515 "regression-compile-tmp/nminimo.imp"
ERASE(P);
                                                                //    516                same = same-1 %if same > p
#line 516 "regression-compile-tmp/nminimo.imp"
if (((SAME) <= (P))) goto L_00de;
#line 516 "regression-compile-tmp/nminimo.imp"
SAME = (((int)(SAME)) - (1));
#line 516 "regression-compile-tmp/nminimo.imp"
L_00de:;
                                                                //    517              %finish
#line 517 "regression-compile-tmp/nminimo.imp"
L_00dd:;
                                                                //    518            %finish
#line 518 "regression-compile-tmp/nminimo.imp"
L_00dc:;
                                                                //    519            %exit %if v_outs = 0
#line 519 "regression-compile-tmp/nminimo.imp"
if (((V.OUTS) != (0))) goto L_00df;
#line 519 "regression-compile-tmp/nminimo.imp"
goto L_00d7;
#line 519 "regression-compile-tmp/nminimo.imp"
L_00df:;
                                                                //    520          %finish
#line 520 "regression-compile-tmp/nminimo.imp"
L_00d9:;
                                                                //    521        %repeat
#line 521 "regression-compile-tmp/nminimo.imp"
goto L_00d6;
#line 521 "regression-compile-tmp/nminimo.imp"
L_00d7:;
                                                                //    522        %if v_outs # 0 %start
#line 522 "regression-compile-tmp/nminimo.imp"
if (((V.OUTS) == (0))) goto L_00e0;
                                                                //    523          %if same = 0 %start
#line 523 "regression-compile-tmp/nminimo.imp"
if (((SAME) != (0))) goto L_00e1;
                                                                //    524            w(sp) = v;  sp = sp+1
#line 524 "regression-compile-tmp/nminimo.imp"
W[(((int)(SP)) - (1))] = V;
#line 524 "regression-compile-tmp/nminimo.imp"
SP = (((int)(SP)) + (1));
                                                                //    525          %finish %else %start
#line 525 "regression-compile-tmp/nminimo.imp"
goto L_00e2;
#line 525 "regression-compile-tmp/nminimo.imp"
L_00e1:;
                                                                //    526            w(same)_outs = w(same)_outs+v_outs
#line 526 "regression-compile-tmp/nminimo.imp"
W[(((int)(SAME)) - (1))].OUTS = (((int)(W[(((int)(SAME)) - (1))].OUTS)) + (V.OUTS));
                                                                //    527          %finish
#line 527 "regression-compile-tmp/nminimo.imp"
L_00e2:;
                                                                //    528        %finish
#line 528 "regression-compile-tmp/nminimo.imp"
L_00e0:;
                                                                //    529      %finish
#line 529 "regression-compile-tmp/nminimo.imp"
L_00d5:;
                                                                //    530    %repeat
#line 530 "regression-compile-tmp/nminimo.imp"
goto L_00cc;
#line 530 "regression-compile-tmp/nminimo.imp"
L_00cd:;
                                                                //    531  %end
#line 531 "regression-compile-tmp/nminimo.imp"
/* Remove %on %event handler here if present for this block */
return;
} // End of block MERGE at level 2
                                                                //    532  
                                                                //    533  ! C o n v e r t   f r o m   P o l i s h   t o   i n t e r n a l 
                                                                //    534  !
                                                                //    535  %routine convert
#line 535 "regression-compile-tmp/nminimo.imp"
void CONVERT( void )
#line 535 "regression-compile-tmp/nminimo.imp"
{
                                                                //    536  %integer outbit,oldsp,i,j,k,p,q,hp,inv
#line 536 "regression-compile-tmp/nminimo.imp"
int OUTBIT;
#line 536 "regression-compile-tmp/nminimo.imp"
int OLDSP;
#line 536 "regression-compile-tmp/nminimo.imp"
int I;
#line 536 "regression-compile-tmp/nminimo.imp"
int J;
#line 536 "regression-compile-tmp/nminimo.imp"
int K;
#line 536 "regression-compile-tmp/nminimo.imp"
int P;
#line 536 "regression-compile-tmp/nminimo.imp"
int Q;
#line 536 "regression-compile-tmp/nminimo.imp"
int HP;
#line 536 "regression-compile-tmp/nminimo.imp"
int INV;
                                                                //    537  %ownrecord(cell) v=0
#line 537 "regression-compile-tmp/nminimo.imp"
static  CELL V = { 0 } /* Initialise all fields of a record to 0. */;
                                                                //    538  %integerarray hold(1:20)
#line 538 "regression-compile-tmp/nminimo.imp"
int HOLD[20];
                                                                //    539  
                                                                //    540  %routine convert(%integer j)
#line 540 "regression-compile-tmp/nminimo.imp"
void CONVERT( int J )
#line 540 "regression-compile-tmp/nminimo.imp"
{
                                                                //    541  %integer defp
#line 541 "regression-compile-tmp/nminimo.imp"
int DEFP;
                                                                //    542    defp = exp(j)
#line 542 "regression-compile-tmp/nminimo.imp"
DEFP = EXP[(((int)(J)) - (1))];
                                                                //    543    %cycle
#line 543 "regression-compile-tmp/nminimo.imp"
L_00e3:;
                                                                //    544      j = def(defp);  defp = defp+1;      !get next item
#line 544 "regression-compile-tmp/nminimo.imp"
J = DEF[(((int)(DEFP)) - (1))];
#line 544 "regression-compile-tmp/nminimo.imp"
DEFP = (((int)(DEFP)) + (1));
                                                                //    545      %return %if j = 0;                  !terminator
#line 545 "regression-compile-tmp/nminimo.imp"
if (((J) != (0))) goto L_00e6;
#line 545 "regression-compile-tmp/nminimo.imp"
/* Remove %on %event handler here if present for this block */
return;
#line 545 "regression-compile-tmp/nminimo.imp"
L_00e6:;
                                                                //    546      %if j > 0 %start;                   !operand
#line 546 "regression-compile-tmp/nminimo.imp"
if (((J) <= (0))) goto L_00e7;
                                                                //    547        %if j > inmax %start;             !start of sub-def
#line 547 "regression-compile-tmp/nminimo.imp"
if (((J) <= (INMAX))) goto L_00e8;
                                                                //    548          convert(j)
#line 548 "regression-compile-tmp/nminimo.imp"
CONVERT(J);
                                                                //    549        %finish %else %start
#line 549 "regression-compile-tmp/nminimo.imp"
goto L_00e9;
#line 549 "regression-compile-tmp/nminimo.imp"
L_00e8:;
                                                                //    550          hp = hp+1;  hold(hp) = sp1
#line 550 "regression-compile-tmp/nminimo.imp"
HP = (((int)(HP)) + (1));
#line 550 "regression-compile-tmp/nminimo.imp"
HOLD[(((int)(HP)) - (1))] = SP1;
                                                                //    551          sp1 = sp
#line 551 "regression-compile-tmp/nminimo.imp"
SP1 = SP;
                                                                //    552          v_t = exp(j);  v_f = 0
#line 552 "regression-compile-tmp/nminimo.imp"
V.T = EXP[(((int)(J)) - (1))];
#line 552 "regression-compile-tmp/nminimo.imp"
V.F = 0;
                                                                //    553          v_f = v_t %and v_t = 0 %if inv!!(negin>>(j-1)&1) # 0
#line 553 "regression-compile-tmp/nminimo.imp"
if (((((INV) ^ ((((int)((((unsigned int)(NEGIN)) >> ((((int)(J)) - (1)))))) & (1))))) == (0))) goto L_00ea;
#line 553 "regression-compile-tmp/nminimo.imp"
V.F = V.T;
#line 553 "regression-compile-tmp/nminimo.imp"
V.T = 0;
#line 553 "regression-compile-tmp/nminimo.imp"
L_00ea:;
                                                                //    554          stack(v)
#line 554 "regression-compile-tmp/nminimo.imp"
STACK(V);
                                                                //    555        %finish
#line 555 "regression-compile-tmp/nminimo.imp"
L_00e9:;
                                                                //    556      %finish %else %if j = not %start
#line 556 "regression-compile-tmp/nminimo.imp"
goto L_00eb;
#line 556 "regression-compile-tmp/nminimo.imp"
L_00e7:;
#line 556 "regression-compile-tmp/nminimo.imp"
if (((J) != ((-1)))) goto L_00ec;
                                                                //    557        inv = inv!!1
#line 557 "regression-compile-tmp/nminimo.imp"
INV = ((INV) ^ (1));
                                                                //    558      %finish %else %if j-inv = and %start;  !'AND' or inverted 'OR'
#line 558 "regression-compile-tmp/nminimo.imp"
goto L_00eb;
#line 558 "regression-compile-tmp/nminimo.imp"
L_00ec:;
#line 558 "regression-compile-tmp/nminimo.imp"
if ((((((int)(J)) - (INV))) != ((-3)))) goto L_00ed;
                                                                //    559        np1 = np;                         !Form pairwise intersection on nest
#line 559 "regression-compile-tmp/nminimo.imp"
NP1 = NP;
                                                                //    560        %while sp # sp1 %cycle
#line 560 "regression-compile-tmp/nminimo.imp"
L_00ee:;
#line 560 "regression-compile-tmp/nminimo.imp"
if (((SP) == (SP1))) goto L_00ef;
                                                                //    561          sp = sp-1
#line 561 "regression-compile-tmp/nminimo.imp"
SP = (((int)(SP)) - (1));
                                                                //    562          p = sp1
#line 562 "regression-compile-tmp/nminimo.imp"
P = SP1;
                                                                //    563          %while p # hold(hp) %cycle
#line 563 "regression-compile-tmp/nminimo.imp"
L_00f1:;
#line 563 "regression-compile-tmp/nminimo.imp"
if (((P) == (HOLD[(((int)(HP)) - (1))]))) goto L_00f2;
                                                                //    564            p = p-1
#line 564 "regression-compile-tmp/nminimo.imp"
P = (((int)(P)) - (1));
                                                                //    565            v_t = w(sp)_t!w(p)_t;  v_f = w(sp)_f!w(p)_f
#line 565 "regression-compile-tmp/nminimo.imp"
V.T = ((W[(((int)(SP)) - (1))].T) | (W[(((int)(P)) - (1))].T));
#line 565 "regression-compile-tmp/nminimo.imp"
V.F = ((W[(((int)(SP)) - (1))].F) | (W[(((int)(P)) - (1))].F));
                                                                //    566            push(v) %if v_t&v_f = 0; !intersection ok
#line 566 "regression-compile-tmp/nminimo.imp"
if (((((V.T) & (V.F))) != (0))) goto L_00f4;
#line 566 "regression-compile-tmp/nminimo.imp"
PUSH(V);
#line 566 "regression-compile-tmp/nminimo.imp"
L_00f4:;
                                                                //    567          %repeat
#line 567 "regression-compile-tmp/nminimo.imp"
goto L_00f1;
#line 567 "regression-compile-tmp/nminimo.imp"
L_00f2:;
                                                                //    568        %repeat
#line 568 "regression-compile-tmp/nminimo.imp"
goto L_00ee;
#line 568 "regression-compile-tmp/nminimo.imp"
L_00ef:;
                                                                //    569        sp1 = hold(hp);  hp = hp-1
#line 569 "regression-compile-tmp/nminimo.imp"
SP1 = HOLD[(((int)(HP)) - (1))];
#line 569 "regression-compile-tmp/nminimo.imp"
HP = (((int)(HP)) - (1));
                                                                //    570        sp = sp1;                         !start with stack empty
#line 570 "regression-compile-tmp/nminimo.imp"
SP = SP1;
                                                                //    571        merge
#line 571 "regression-compile-tmp/nminimo.imp"
MERGE();
                                                                //    572      %finish %else %start;               !'OR' or inverted 'AND'
#line 572 "regression-compile-tmp/nminimo.imp"
goto L_00eb;
#line 572 "regression-compile-tmp/nminimo.imp"
L_00ed:;
                                                                //    573        copydown;                         !one operand to nest
#line 573 "regression-compile-tmp/nminimo.imp"
COPYDOWN();
                                                                //    574        sp1 = hold(hp);  hp = hp-1
#line 574 "regression-compile-tmp/nminimo.imp"
SP1 = HOLD[(((int)(HP)) - (1))];
#line 574 "regression-compile-tmp/nminimo.imp"
HP = (((int)(HP)) - (1));
                                                                //    575        merge
#line 575 "regression-compile-tmp/nminimo.imp"
MERGE();
                                                                //    576      %finish
#line 576 "regression-compile-tmp/nminimo.imp"
L_00eb:;
                                                                //    577    %repeat
#line 577 "regression-compile-tmp/nminimo.imp"
goto L_00e3;
                                                                //    578  %end
#line 578 "regression-compile-tmp/nminimo.imp"
return;
} // End of block CONVERT at level 3
                                                                //    579  
                                                                //    580  sp = 1;  np = storebound;  minsep = np-sp
#line 580 "regression-compile-tmp/nminimo.imp"
SP = 1;
#line 580 "regression-compile-tmp/nminimo.imp"
NP = 2000;
#line 580 "regression-compile-tmp/nminimo.imp"
MINSEP = (((int)(NP)) - (SP));
                                                                //    581  v_flags = 0
#line 581 "regression-compile-tmp/nminimo.imp"
V.FLAGS = 0;
                                                                //    582  outbit = 1
#line 582 "regression-compile-tmp/nminimo.imp"
OUTBIT = 1;
                                                                //    583  %for i = outmin,1,namemax %cycle
#line 583 "regression-compile-tmp/nminimo.imp"
{static int _initial, _increment, _final, _control;
_initial = OUTMIN; _increment = 1; _final = NAMEMAX; I = _control = _initial;
if (((_final-_initial) % _increment) != 0) _imp_signal(5,1,0,"Illegal cycle I = OUTMIN, 1, NAMEMAX");
I -= _increment; _control -= _increment;
L_00f5:;
if (I == _final) goto L_00f6;
I += _increment; _control += _increment;
if (I != _control) _imp_signal(4,2,0,"Corrupt control variable I"); /* FOR loop control variable corrupted */
}
                                                                //    584  %if ignorout&outbit = 0 %start
#line 584 "regression-compile-tmp/nminimo.imp"
if (((((IGNOROUT) & (OUTBIT))) != (0))) goto L_00f8;
                                                                //    585    k = def(exp(i)+1);                    !2nd element of def
#line 585 "regression-compile-tmp/nminimo.imp"
K = DEF[(((int)((((int)(EXP[(((int)(I)) - (1))])) + (1)))) - (1))];
                                                                //    586    %if k # 0 %start;                     !"Don't cares" present
#line 586 "regression-compile-tmp/nminimo.imp"
if (((K) == (0))) goto L_00f9;
                                                                //    587      sp1 = 1;  hp = 0;  inv = 0
#line 587 "regression-compile-tmp/nminimo.imp"
SP1 = 1;
#line 587 "regression-compile-tmp/nminimo.imp"
HP = 0;
#line 587 "regression-compile-tmp/nminimo.imp"
INV = 0;
                                                                //    588      v_outs = outbit
#line 588 "regression-compile-tmp/nminimo.imp"
V.OUTS = OUTBIT;
                                                                //    589      convert(k)
#line 589 "regression-compile-tmp/nminimo.imp"
CONVERT(K);
                                                                //    590      copydown
#line 590 "regression-compile-tmp/nminimo.imp"
COPYDOWN();
                                                                //    591      sp1 = 1
#line 591 "regression-compile-tmp/nminimo.imp"
SP1 = 1;
                                                                //    592      merge
#line 592 "regression-compile-tmp/nminimo.imp"
MERGE();
                                                                //    593    %finish
#line 593 "regression-compile-tmp/nminimo.imp"
L_00f9:;
                                                                //    594  %finish
#line 594 "regression-compile-tmp/nminimo.imp"
L_00f8:;
                                                                //    595  outbit = outbit<<1
#line 595 "regression-compile-tmp/nminimo.imp"
OUTBIT = ((OUTBIT) << (1));
                                                                //    596  %repeat
#line 596 "regression-compile-tmp/nminimo.imp"
goto L_00f5;
#line 596 "regression-compile-tmp/nminimo.imp"
L_00f6:;
                                                                //    597  dclim = sp
#line 597 "regression-compile-tmp/nminimo.imp"
DCLIM = SP;
                                                                //    598  outbit = 1
#line 598 "regression-compile-tmp/nminimo.imp"
OUTBIT = 1;
                                                                //    599  %for i = outmin,1,namemax %cycle
#line 599 "regression-compile-tmp/nminimo.imp"
{static int _initial, _increment, _final, _control;
_initial = OUTMIN; _increment = 1; _final = NAMEMAX; I = _control = _initial;
if (((_final-_initial) % _increment) != 0) _imp_signal(5,1,0,"Illegal cycle I = OUTMIN, 1, NAMEMAX");
I -= _increment; _control -= _increment;
L_00fa:;
if (I == _final) goto L_00fb;
I += _increment; _control += _increment;
if (I != _control) _imp_signal(4,2,0,"Corrupt control variable I"); /* FOR loop control variable corrupted */
}
                                                                //    600  %if ignorout&outbit = 0 %start
#line 600 "regression-compile-tmp/nminimo.imp"
if (((((IGNOROUT) & (OUTBIT))) != (0))) goto L_00fd;
                                                                //    601    sp1 = 1;  hp = 0;  inv = negout>>(i-outmin)&1
#line 601 "regression-compile-tmp/nminimo.imp"
SP1 = 1;
#line 601 "regression-compile-tmp/nminimo.imp"
HP = 0;
#line 601 "regression-compile-tmp/nminimo.imp"
INV = (((int)((((unsigned int)(NEGOUT)) >> ((((int)(I)) - (OUTMIN)))))) & (1));
                                                                //    602    v_outs = outbit
#line 602 "regression-compile-tmp/nminimo.imp"
V.OUTS = OUTBIT;
                                                                //    603    convert(i)
#line 603 "regression-compile-tmp/nminimo.imp"
CONVERT(I);
                                                                //    604    copydown
#line 604 "regression-compile-tmp/nminimo.imp"
COPYDOWN();
                                                                //    605    sp1 = dclim
#line 605 "regression-compile-tmp/nminimo.imp"
SP1 = DCLIM;
                                                                //    606    %if single # 0 %then merge %else %start
#line 606 "regression-compile-tmp/nminimo.imp"
if (((SINGLE) == (0))) goto L_00fe;
#line 606 "regression-compile-tmp/nminimo.imp"
MERGE();
#line 606 "regression-compile-tmp/nminimo.imp"
goto L_00ff;
#line 606 "regression-compile-tmp/nminimo.imp"
L_00fe:;
                                                                //    607      oldsp = sp
#line 607 "regression-compile-tmp/nminimo.imp"
OLDSP = SP;
                                                                //    608      %while np # np1 %cycle;             !each element against rest
#line 608 "regression-compile-tmp/nminimo.imp"
L_0100:;
#line 608 "regression-compile-tmp/nminimo.imp"
if (((NP) == (NP1))) goto L_0101;
                                                                //    609        q = sp1-1;                        ! and null (ie straight)
#line 609 "regression-compile-tmp/nminimo.imp"
Q = (((int)(SP1)) - (1));
                                                                //    610        v = 0
#line 610 "regression-compile-tmp/nminimo.imp"
V = (CELL){ 0 } /* Assign 0's to all fields of record */;
                                                                //    611        %cycle
#line 611 "regression-compile-tmp/nminimo.imp"
L_0103:;
                                                                //    612          v_t = v_t!w(np)_t;  v_f = v_f!w(np)_f
#line 612 "regression-compile-tmp/nminimo.imp"
V.T = ((V.T) | (W[(((int)(NP)) - (1))].T));
#line 612 "regression-compile-tmp/nminimo.imp"
V.F = ((V.F) | (W[(((int)(NP)) - (1))].F));
                                                                //    613          %if v_t&v_f = 0 %start
#line 613 "regression-compile-tmp/nminimo.imp"
if (((((V.T) & (V.F))) != (0))) goto L_0106;
                                                                //    614            v_outs = v_outs!outbit
#line 614 "regression-compile-tmp/nminimo.imp"
V.OUTS = ((V.OUTS) | (OUTBIT));
                                                                //    615            p = sp
#line 615 "regression-compile-tmp/nminimo.imp"
P = SP;
                                                                //    616            %while p # sp1 %cycle
#line 616 "regression-compile-tmp/nminimo.imp"
L_0107:;
#line 616 "regression-compile-tmp/nminimo.imp"
if (((P) == (SP1))) goto L_0108;
                                                                //    617              p = p-1
#line 617 "regression-compile-tmp/nminimo.imp"
P = (((int)(P)) - (1));
                                                                //    618              v_outs = v_outs!w(p)_outs %if w(p)_t = v_t %and w(p)_f = v_f
#line 618 "regression-compile-tmp/nminimo.imp"
if (((W[(((int)(P)) - (1))].T) != (V.T))) goto L_010a;
#line 618 "regression-compile-tmp/nminimo.imp"
if (((W[(((int)(P)) - (1))].F) != (V.F))) goto L_010a;
#line 618 "regression-compile-tmp/nminimo.imp"
V.OUTS = ((V.OUTS) | (W[(((int)(P)) - (1))].OUTS));
#line 618 "regression-compile-tmp/nminimo.imp"
L_010a:;
                                                                //    619              j = w(p)_t!v_t;  k = w(p)_f!v_f
#line 619 "regression-compile-tmp/nminimo.imp"
J = ((W[(((int)(P)) - (1))].T) | (V.T));
#line 619 "regression-compile-tmp/nminimo.imp"
K = ((W[(((int)(P)) - (1))].F) | (V.F));
                                                                //    620             %exit %if j = v_t %and k = v_f %and w(p)_outs&v_outs = v_outs; !V -> @P
#line 620 "regression-compile-tmp/nminimo.imp"
if (((J) != (V.T))) goto L_010b;
#line 620 "regression-compile-tmp/nminimo.imp"
if (((K) != (V.F))) goto L_010b;
#line 620 "regression-compile-tmp/nminimo.imp"
if (((((W[(((int)(P)) - (1))].OUTS) & (V.OUTS))) != (V.OUTS))) goto L_010b;
#line 620 "regression-compile-tmp/nminimo.imp"
goto L_0108;
#line 620 "regression-compile-tmp/nminimo.imp"
L_010b:;
                                                                //    621   %if j = w(p)_t %and k = w(p)_f %and w(p)_outs&v_outs = w(p)_outs %start
#line 621 "regression-compile-tmp/nminimo.imp"
if (((J) != (W[(((int)(P)) - (1))].T))) goto L_010c;
#line 621 "regression-compile-tmp/nminimo.imp"
if (((K) != (W[(((int)(P)) - (1))].F))) goto L_010c;
#line 621 "regression-compile-tmp/nminimo.imp"
if (((((W[(((int)(P)) - (1))].OUTS) & (V.OUTS))) != (W[(((int)(P)) - (1))].OUTS))) goto L_010c;
                                                                //    622                oldsp = oldsp-1 %if p < oldsp
#line 622 "regression-compile-tmp/nminimo.imp"
if (((P) >= (OLDSP))) goto L_010d;
#line 622 "regression-compile-tmp/nminimo.imp"
OLDSP = (((int)(OLDSP)) - (1));
#line 622 "regression-compile-tmp/nminimo.imp"
L_010d:;
                                                                //    623                q = q-1 %if p <= q
#line 623 "regression-compile-tmp/nminimo.imp"
if (((P) > (Q))) goto L_010e;
#line 623 "regression-compile-tmp/nminimo.imp"
Q = (((int)(Q)) - (1));
#line 623 "regression-compile-tmp/nminimo.imp"
L_010e:;
                                                                //    624                erase(p)
#line 624 "regression-compile-tmp/nminimo.imp"
ERASE(P);
                                                                //    625              %finish
#line 625 "regression-compile-tmp/nminimo.imp"
L_010c:;
                                                                //    626            %repeat
#line 626 "regression-compile-tmp/nminimo.imp"
goto L_0107;
#line 626 "regression-compile-tmp/nminimo.imp"
L_0108:;
                                                                //    627            stack(v) %if p = sp1
#line 627 "regression-compile-tmp/nminimo.imp"
if (((P) != (SP1))) goto L_010f;
#line 627 "regression-compile-tmp/nminimo.imp"
STACK(V);
#line 627 "regression-compile-tmp/nminimo.imp"
L_010f:;
                                                                //    628          %finish
#line 628 "regression-compile-tmp/nminimo.imp"
L_0106:;
                                                                //    629          q = q+1
#line 629 "regression-compile-tmp/nminimo.imp"
Q = (((int)(Q)) + (1));
                                                                //    630          %exit %if q = oldsp
#line 630 "regression-compile-tmp/nminimo.imp"
if (((Q) != (OLDSP))) goto L_0110;
#line 630 "regression-compile-tmp/nminimo.imp"
goto L_0104;
#line 630 "regression-compile-tmp/nminimo.imp"
L_0110:;
                                                                //    631          v = w(q)
#line 631 "regression-compile-tmp/nminimo.imp"
V = W[(((int)(Q)) - (1))];
                                                                //    632        %repeat
#line 632 "regression-compile-tmp/nminimo.imp"
goto L_0103;
#line 632 "regression-compile-tmp/nminimo.imp"
L_0104:;
                                                                //    633        np = np+1
#line 633 "regression-compile-tmp/nminimo.imp"
NP = (((int)(NP)) + (1));
                                                                //    634      %repeat
#line 634 "regression-compile-tmp/nminimo.imp"
goto L_0100;
#line 634 "regression-compile-tmp/nminimo.imp"
L_0101:;
                                                                //    635    %finish
#line 635 "regression-compile-tmp/nminimo.imp"
L_00ff:;
                                                                //    636  %finish
#line 636 "regression-compile-tmp/nminimo.imp"
L_00fd:;
                                                                //    637  outbit = outbit<<1
#line 637 "regression-compile-tmp/nminimo.imp"
OUTBIT = ((OUTBIT) << (1));
                                                                //    638  %repeat
#line 638 "regression-compile-tmp/nminimo.imp"
goto L_00fa;
#line 638 "regression-compile-tmp/nminimo.imp"
L_00fb:;
                                                                //    639  %end; !convert
#line 639 "regression-compile-tmp/nminimo.imp"
/* Remove %on %event handler here if present for this block */
return;
} // End of block CONVERT at level 2
                                                                //    640  
                                                                //    641  %integerfn needed(%integer q,testlim)
#line 641 "regression-compile-tmp/nminimo.imp"
int NEEDED( int Q, int TESTLIM )
#line 641 "regression-compile-tmp/nminimo.imp"
{
                                                                //    642  %integer p
#line 642 "regression-compile-tmp/nminimo.imp"
int P;
                                                                //    643  %ownrecord(cell) v,n=0
#line 643 "regression-compile-tmp/nminimo.imp"
static  CELL V;
#line 643 "regression-compile-tmp/nminimo.imp"
static  CELL N = { 0 } /* Initialise all fields of a record to 0. */;
                                                                //    644    sp1 = sp;  np1 = np
#line 644 "regression-compile-tmp/nminimo.imp"
SP1 = SP;
#line 644 "regression-compile-tmp/nminimo.imp"
NP1 = NP;
                                                                //    645    v = w(q)
#line 645 "regression-compile-tmp/nminimo.imp"
V = W[(((int)(Q)) - (1))];
                                                                //    646    w(sp1)_t = v_t;  w(sp1)_f = v_f
#line 646 "regression-compile-tmp/nminimo.imp"
W[(((int)(SP1)) - (1))].T = V.T;
#line 646 "regression-compile-tmp/nminimo.imp"
W[(((int)(SP1)) - (1))].F = V.F;
                                                                //    647    w(sp1)_outs = 0
#line 647 "regression-compile-tmp/nminimo.imp"
W[(((int)(SP1)) - (1))].OUTS = 0;
                                                                //    648    sp = sp+1
#line 648 "regression-compile-tmp/nminimo.imp"
SP = (((int)(SP)) + (1));
                                                                //    649    p = 1
#line 649 "regression-compile-tmp/nminimo.imp"
P = 1;
                                                                //    650    %while p # testlim %cycle
#line 650 "regression-compile-tmp/nminimo.imp"
L_0111:;
#line 650 "regression-compile-tmp/nminimo.imp"
if (((P) == (TESTLIM))) goto L_0112;
                                                                //    651      %if w(p)_flags >= 0 %start
#line 651 "regression-compile-tmp/nminimo.imp"
if (((W[(((int)(P)) - (1))].FLAGS) < (0))) goto L_0114;
                                                                //    652        n_outs = w(p)_outs&v_outs
#line 652 "regression-compile-tmp/nminimo.imp"
N.OUTS = ((W[(((int)(P)) - (1))].OUTS) & (V.OUTS));
                                                                //    653        %if n_outs # 0 %and p # q %start
#line 653 "regression-compile-tmp/nminimo.imp"
if (((N.OUTS) == (0))) goto L_0115;
#line 653 "regression-compile-tmp/nminimo.imp"
if (((P) == (Q))) goto L_0115;
                                                                //    654          n_t = w(p)_t!v_t;  n_f = w(p)_f!v_f
#line 654 "regression-compile-tmp/nminimo.imp"
N.T = ((W[(((int)(P)) - (1))].T) | (V.T));
#line 654 "regression-compile-tmp/nminimo.imp"
N.F = ((W[(((int)(P)) - (1))].F) | (V.F));
                                                                //    655          %if n_t&n_f = 0 %start
#line 655 "regression-compile-tmp/nminimo.imp"
if (((((N.T) & (N.F))) != (0))) goto L_0116;
                                                                //    656            np = np-1;  w(np) = n
#line 656 "regression-compile-tmp/nminimo.imp"
NP = (((int)(NP)) - (1));
#line 656 "regression-compile-tmp/nminimo.imp"
W[(((int)(NP)) - (1))] = N;
                                                                //    657            merge
#line 657 "regression-compile-tmp/nminimo.imp"
MERGE();
                                                                //    658            %exit %if w(sp1)_outs = v_outs
#line 658 "regression-compile-tmp/nminimo.imp"
if (((W[(((int)(SP1)) - (1))].OUTS) != (V.OUTS))) goto L_0117;
#line 658 "regression-compile-tmp/nminimo.imp"
goto L_0112;
#line 658 "regression-compile-tmp/nminimo.imp"
L_0117:;
                                                                //    659          %finish
#line 659 "regression-compile-tmp/nminimo.imp"
L_0116:;
                                                                //    660        %finish
#line 660 "regression-compile-tmp/nminimo.imp"
L_0115:;
                                                                //    661      %finish
#line 661 "regression-compile-tmp/nminimo.imp"
L_0114:;
                                                                //    662      p = p+1
#line 662 "regression-compile-tmp/nminimo.imp"
P = (((int)(P)) + (1));
                                                                //    663    %repeat
#line 663 "regression-compile-tmp/nminimo.imp"
goto L_0111;
#line 663 "regression-compile-tmp/nminimo.imp"
L_0112:;
                                                                //    664    needsp = sp
#line 664 "regression-compile-tmp/nminimo.imp"
NEEDSP = SP;
                                                                //    665    sp = sp1
#line 665 "regression-compile-tmp/nminimo.imp"
SP = SP1;
                                                                //    666    %result = p
#line 666 "regression-compile-tmp/nminimo.imp"
/* Remove %on %event handler here if present for this block */
return P;
                                                                //    667  %end
#line 667 "regression-compile-tmp/nminimo.imp"
} // End of block NEEDED at level 2
                                                                //    668  
                                                                //    669  %routine print all
#line 669 "regression-compile-tmp/nminimo.imp"
void PRINTALL( void )
#line 669 "regression-compile-tmp/nminimo.imp"
{
                                                                //    670  %integer p,q
#line 670 "regression-compile-tmp/nminimo.imp"
int P;
#line 670 "regression-compile-tmp/nminimo.imp"
int Q;
                                                                //    671    newlines(2)
#line 671 "regression-compile-tmp/nminimo.imp"
_imp_NEWLINES(2);
                                                                //    672    q = dclim;  q = esslim %if mon&2 # 0
#line 672 "regression-compile-tmp/nminimo.imp"
Q = DCLIM;
#line 672 "regression-compile-tmp/nminimo.imp"
if (((((MON) & (2))) == (0))) goto L_0118;
#line 672 "regression-compile-tmp/nminimo.imp"
Q = ESSLIM;
#line 672 "regression-compile-tmp/nminimo.imp"
L_0118:;
                                                                //    673    %while q # sp %cycle
#line 673 "regression-compile-tmp/nminimo.imp"
L_0119:;
#line 673 "regression-compile-tmp/nminimo.imp"
if (((Q) == (SP))) goto L_011a;
                                                                //    674      %if w(q)_flags >= 0 %start
#line 674 "regression-compile-tmp/nminimo.imp"
if (((W[(((int)(Q)) - (1))].FLAGS) < (0))) goto L_011c;
                                                                //    675        p = needed(q,sp)
#line 675 "regression-compile-tmp/nminimo.imp"
P = NEEDED(Q, SP);
                                                                //    676        write(q,2) %if mon&4 # 0
#line 676 "regression-compile-tmp/nminimo.imp"
if (((((MON) & (4))) == (0))) goto L_011d;
#line 676 "regression-compile-tmp/nminimo.imp"
_imp_WRITE(Q, 2);
#line 676 "regression-compile-tmp/nminimo.imp"
L_011d:;
                                                                //    677        w(sp1)_outs = w(q)_outs-w(sp1)_outs
#line 677 "regression-compile-tmp/nminimo.imp"
W[(((int)(SP1)) - (1))].OUTS = (((int)(W[(((int)(Q)) - (1))].OUTS)) - (W[(((int)(SP1)) - (1))].OUTS));
                                                                //    678        print term(w(sp1),w(q)_outs)
#line 678 "regression-compile-tmp/nminimo.imp"
PRINTTERM(W[(((int)(SP1)) - (1))], W[(((int)(Q)) - (1))].OUTS);
                                                                //    679      %finish
#line 679 "regression-compile-tmp/nminimo.imp"
L_011c:;
                                                                //    680      q = q+1
#line 680 "regression-compile-tmp/nminimo.imp"
Q = (((int)(Q)) + (1));
                                                                //    681    %repeat
#line 681 "regression-compile-tmp/nminimo.imp"
goto L_0119;
#line 681 "regression-compile-tmp/nminimo.imp"
L_011a:;
                                                                //    682    newline
#line 682 "regression-compile-tmp/nminimo.imp"
_imp_NEWLINE();
                                                                //    683  %end
#line 683 "regression-compile-tmp/nminimo.imp"
/* Remove %on %event handler here if present for this block */
return;
} // End of block PRINTALL at level 2
                                                                //    684  
                                                                //    685  %routine pcount
#line 685 "regression-compile-tmp/nminimo.imp"
void PCOUNT( void )
#line 685 "regression-compile-tmp/nminimo.imp"
{
                                                                //    686    write(count>>12,1)
#line 686 "regression-compile-tmp/nminimo.imp"
_imp_WRITE((int)((((unsigned int)(COUNT)) >> (12))), 1);
                                                                //    687    printsymbol('/')
#line 687 "regression-compile-tmp/nminimo.imp"
_imp_PRINTSYMBOL(47);
                                                                //    688    out(count&4095)
#line 688 "regression-compile-tmp/nminimo.imp"
OUT(((COUNT) & (4095)));
                                                                //    689  %end
#line 689 "regression-compile-tmp/nminimo.imp"
/* Remove %on %event handler here if present for this block */
return;
} // End of block PCOUNT at level 2
                                                                //    690  
                                                                //    691  %routine promote(%integer q,past)
#line 691 "regression-compile-tmp/nminimo.imp"
void PROMOTE( int Q, int PAST )
#line 691 "regression-compile-tmp/nminimo.imp"
{
                                                                //    692  %record(cell) v
#line 692 "regression-compile-tmp/nminimo.imp"
 CELL V;
                                                                //    693    v = w(q)
#line 693 "regression-compile-tmp/nminimo.imp"
V = W[(((int)(Q)) - (1))];
                                                                //    694    %if past = 0 %start
#line 694 "regression-compile-tmp/nminimo.imp"
if (((PAST) != (0))) goto L_011e;
                                                                //    695      count = count+bits(v_t!v_f)+4096
#line 695 "regression-compile-tmp/nminimo.imp"
COUNT = (((int)((((int)(COUNT)) + (BITS(((V.T) | (V.F))))))) + (4096));
                                                                //    696      past = esslim
#line 696 "regression-compile-tmp/nminimo.imp"
PAST = ESSLIM;
                                                                //    697      esslim = esslim+1
#line 697 "regression-compile-tmp/nminimo.imp"
ESSLIM = (((int)(ESSLIM)) + (1));
                                                                //    698    %finish
#line 698 "regression-compile-tmp/nminimo.imp"
L_011e:;
                                                                //    699    %while past # esslim %and past # dclim %cycle
#line 699 "regression-compile-tmp/nminimo.imp"
L_011f:;
#line 699 "regression-compile-tmp/nminimo.imp"
if (((PAST) == (ESSLIM))) goto L_0120;
#line 699 "regression-compile-tmp/nminimo.imp"
if (((PAST) == (DCLIM))) goto L_0120;
                                                                //    700      %exit %if w(past-1)_flags <= v_flags
#line 700 "regression-compile-tmp/nminimo.imp"
if (((W[(((int)((((int)(PAST)) - (1)))) - (1))].FLAGS) > (V.FLAGS))) goto L_0122;
#line 700 "regression-compile-tmp/nminimo.imp"
goto L_0120;
#line 700 "regression-compile-tmp/nminimo.imp"
L_0122:;
                                                                //    701      past = past-1
#line 701 "regression-compile-tmp/nminimo.imp"
PAST = (((int)(PAST)) - (1));
                                                                //    702    %repeat
#line 702 "regression-compile-tmp/nminimo.imp"
goto L_011f;
#line 702 "regression-compile-tmp/nminimo.imp"
L_0120:;
                                                                //    703    %while q # past %cycle
#line 703 "regression-compile-tmp/nminimo.imp"
L_0123:;
#line 703 "regression-compile-tmp/nminimo.imp"
if (((Q) == (PAST))) goto L_0124;
                                                                //    704      q = q-1
#line 704 "regression-compile-tmp/nminimo.imp"
Q = (((int)(Q)) - (1));
                                                                //    705      w(q+1) = w(q)
#line 705 "regression-compile-tmp/nminimo.imp"
W[(((int)((((int)(Q)) + (1)))) - (1))] = W[(((int)(Q)) - (1))];
                                                                //    706    %repeat
#line 706 "regression-compile-tmp/nminimo.imp"
goto L_0123;
#line 706 "regression-compile-tmp/nminimo.imp"
L_0124:;
                                                                //    707    w(q) = v
#line 707 "regression-compile-tmp/nminimo.imp"
W[(((int)(Q)) - (1))] = V;
                                                                //    708  %end
#line 708 "regression-compile-tmp/nminimo.imp"
/* Remove %on %event handler here if present for this block */
return;
} // End of block PROMOTE at level 2
                                                                //    709  
                                                                //    710  ! R e d u c e   n u m b e r   o f   i m p l i c a n t s
                                                                //    711  !
                                                                //    712  %routine reduce1
#line 712 "regression-compile-tmp/nminimo.imp"
void REDUCE1( void )
#line 712 "regression-compile-tmp/nminimo.imp"
{
                                                                //    713  ! Find first essentials and redundants
                                                                //    714  !   order by weight
                                                                //    715  %integer p,q
#line 715 "regression-compile-tmp/nminimo.imp"
int P;
#line 715 "regression-compile-tmp/nminimo.imp"
int Q;
                                                                //    716    q = dclim;  esslim = q
#line 716 "regression-compile-tmp/nminimo.imp"
Q = DCLIM;
#line 716 "regression-compile-tmp/nminimo.imp"
ESSLIM = Q;
                                                                //    717    %while q # sp %cycle
#line 717 "regression-compile-tmp/nminimo.imp"
L_0126:;
#line 717 "regression-compile-tmp/nminimo.imp"
if (((Q) == (SP))) goto L_0127;
                                                                //    718      w(q)_flags = bits(w(q)_t!w(q)_f)<<5+31-bits(w(q)_outs)
#line 718 "regression-compile-tmp/nminimo.imp"
W[(((int)(Q)) - (1))].FLAGS = (((int)((((int)(((BITS(((W[(((int)(Q)) - (1))].T) | (W[(((int)(Q)) - (1))].F)))) << (5)))) + (31)))) - (BITS(W[(((int)(Q)) - (1))].OUTS)));
                                                                //    719      p = needed(q,sp)
#line 719 "regression-compile-tmp/nminimo.imp"
P = NEEDED(Q, SP);
                                                                //    720      %if p = sp %start;                  !essential
#line 720 "regression-compile-tmp/nminimo.imp"
if (((P) != (SP))) goto L_0129;
                                                                //    721        promote(q,0)
#line 721 "regression-compile-tmp/nminimo.imp"
PROMOTE(Q, 0);
                                                                //    722      %finish %else %if p >= esslim %start; !optional
#line 722 "regression-compile-tmp/nminimo.imp"
goto L_012a;
#line 722 "regression-compile-tmp/nminimo.imp"
L_0129:;
#line 722 "regression-compile-tmp/nminimo.imp"
if (((P) < (ESSLIM))) goto L_012b;
                                                                //    723        promote(q,q)
#line 723 "regression-compile-tmp/nminimo.imp"
PROMOTE(Q, Q);
                                                                //    724      %finish %else %start;  !redundant
#line 724 "regression-compile-tmp/nminimo.imp"
goto L_012a;
#line 724 "regression-compile-tmp/nminimo.imp"
L_012b:;
                                                                //    725        erase(q)
#line 725 "regression-compile-tmp/nminimo.imp"
ERASE(Q);
                                                                //    726        q = q-1
#line 726 "regression-compile-tmp/nminimo.imp"
Q = (((int)(Q)) - (1));
                                                                //    727      %finish
#line 727 "regression-compile-tmp/nminimo.imp"
L_012a:;
                                                                //    728      q = q+1
#line 728 "regression-compile-tmp/nminimo.imp"
Q = (((int)(Q)) + (1));
                                                                //    729    %repeat
#line 729 "regression-compile-tmp/nminimo.imp"
goto L_0126;
#line 729 "regression-compile-tmp/nminimo.imp"
L_0127:;
                                                                //    730  %end; !reduce1
#line 730 "regression-compile-tmp/nminimo.imp"
/* Remove %on %event handler here if present for this block */
return;
} // End of block REDUCE1 at level 2
                                                                //    731  
                                                                //    732  %routine reduce2
#line 732 "regression-compile-tmp/nminimo.imp"
void REDUCE2( void )
#line 732 "regression-compile-tmp/nminimo.imp"
{
                                                                //    733  ! Find secondary essentials & redundants
                                                                //    734  %integer p,q,bq,sphold,done
#line 734 "regression-compile-tmp/nminimo.imp"
int P;
#line 734 "regression-compile-tmp/nminimo.imp"
int Q;
#line 734 "regression-compile-tmp/nminimo.imp"
int BQ;
#line 734 "regression-compile-tmp/nminimo.imp"
int SPHOLD;
#line 734 "regression-compile-tmp/nminimo.imp"
int DONE;
                                                                //    735  %record(cell) v
#line 735 "regression-compile-tmp/nminimo.imp"
 CELL V;
                                                                //    736  %cycle
#line 736 "regression-compile-tmp/nminimo.imp"
L_012c:;
                                                                //    737    done = 1
#line 737 "regression-compile-tmp/nminimo.imp"
DONE = 1;
                                                                //    738    q = sp
#line 738 "regression-compile-tmp/nminimo.imp"
Q = SP;
                                                                //    739    %while q # esslim %cycle
#line 739 "regression-compile-tmp/nminimo.imp"
L_012f:;
#line 739 "regression-compile-tmp/nminimo.imp"
if (((Q) == (ESSLIM))) goto L_0130;
                                                                //    740      q = q-1
#line 740 "regression-compile-tmp/nminimo.imp"
Q = (((int)(Q)) - (1));
                                                                //    741      p = needed(q,esslim)
#line 741 "regression-compile-tmp/nminimo.imp"
P = NEEDED(Q, ESSLIM);
                                                                //    742      %if p = esslim %start;              !not (simply) redundant
#line 742 "regression-compile-tmp/nminimo.imp"
if (((P) != (ESSLIM))) goto L_0132;
                                                                //    743        w(q)_outs = w(q)_outs-w(sp1)_outs
#line 743 "regression-compile-tmp/nminimo.imp"
W[(((int)(Q)) - (1))].OUTS = (((int)(W[(((int)(Q)) - (1))].OUTS)) - (W[(((int)(SP1)) - (1))].OUTS));
                                                                //    744        w(sp1)_outs = 0
#line 744 "regression-compile-tmp/nminimo.imp"
W[(((int)(SP1)) - (1))].OUTS = 0;
                                                                //    745        bq = w(q)_flags>>5
#line 745 "regression-compile-tmp/nminimo.imp"
BQ = (int)((((unsigned int)(W[(((int)(Q)) - (1))].FLAGS)) >> (5)));
                                                                //    746        sphold = sp
#line 746 "regression-compile-tmp/nminimo.imp"
SPHOLD = SP;
                                                                //    747        %while p # sp %cycle
#line 747 "regression-compile-tmp/nminimo.imp"
L_0133:;
#line 747 "regression-compile-tmp/nminimo.imp"
if (((P) == (SP))) goto L_0134;
                                                                //    748          %if w(p)_flags>>5-min < bq %and p # q %start
#line 748 "regression-compile-tmp/nminimo.imp"
if ((((((int)((int)((((unsigned int)(W[(((int)(P)) - (1))].FLAGS)) >> (5))))) - (MIN))) >= (BQ))) goto L_0136;
#line 748 "regression-compile-tmp/nminimo.imp"
if (((P) == (Q))) goto L_0136;
                                                                //    749            v_outs = w(p)_outs&w(q)_outs
#line 749 "regression-compile-tmp/nminimo.imp"
V.OUTS = ((W[(((int)(P)) - (1))].OUTS) & (W[(((int)(Q)) - (1))].OUTS));
                                                                //    750            %if v_outs # 0 %start
#line 750 "regression-compile-tmp/nminimo.imp"
if (((V.OUTS) == (0))) goto L_0137;
                                                                //    751              v_t = w(p)_t!w(q)_t;  v_f = w(p)_f!w(q)_f
#line 751 "regression-compile-tmp/nminimo.imp"
V.T = ((W[(((int)(P)) - (1))].T) | (W[(((int)(Q)) - (1))].T));
#line 751 "regression-compile-tmp/nminimo.imp"
V.F = ((W[(((int)(P)) - (1))].F) | (W[(((int)(Q)) - (1))].F));
                                                                //    752              %if v_t&v_f = 0 %start
#line 752 "regression-compile-tmp/nminimo.imp"
if (((((V.T) & (V.F))) != (0))) goto L_0138;
                                                                //    753                sp1 = sp;  sp = needsp
#line 753 "regression-compile-tmp/nminimo.imp"
SP1 = SP;
#line 753 "regression-compile-tmp/nminimo.imp"
SP = NEEDSP;
                                                                //    754                %while sp1 # needsp %cycle
#line 754 "regression-compile-tmp/nminimo.imp"
L_0139:;
#line 754 "regression-compile-tmp/nminimo.imp"
if (((SP1) == (NEEDSP))) goto L_013a;
                                                                //    755                  w(sp) = w(sp1)
#line 755 "regression-compile-tmp/nminimo.imp"
W[(((int)(SP)) - (1))] = W[(((int)(SP1)) - (1))];
                                                                //    756                  sp = sp+1;  sp1 = sp1+1
#line 756 "regression-compile-tmp/nminimo.imp"
SP = (((int)(SP)) + (1));
#line 756 "regression-compile-tmp/nminimo.imp"
SP1 = (((int)(SP1)) + (1));
                                                                //    757                %repeat
#line 757 "regression-compile-tmp/nminimo.imp"
goto L_0139;
#line 757 "regression-compile-tmp/nminimo.imp"
L_013a:;
                                                                //    758                push(v)
#line 758 "regression-compile-tmp/nminimo.imp"
PUSH(V);
                                                                //    759                merge
#line 759 "regression-compile-tmp/nminimo.imp"
MERGE();
                                                                //    760                sp = sphold
#line 760 "regression-compile-tmp/nminimo.imp"
SP = SPHOLD;
                                                                //    761                %exit %if w(sp1)_outs = w(q)_outs
#line 761 "regression-compile-tmp/nminimo.imp"
if (((W[(((int)(SP1)) - (1))].OUTS) != (W[(((int)(Q)) - (1))].OUTS))) goto L_013c;
#line 761 "regression-compile-tmp/nminimo.imp"
goto L_0134;
#line 761 "regression-compile-tmp/nminimo.imp"
L_013c:;
                                                                //    762              %finish
#line 762 "regression-compile-tmp/nminimo.imp"
L_0138:;
                                                                //    763            %finish
#line 763 "regression-compile-tmp/nminimo.imp"
L_0137:;
                                                                //    764          %finish
#line 764 "regression-compile-tmp/nminimo.imp"
L_0136:;
                                                                //    765          p = p+1
#line 765 "regression-compile-tmp/nminimo.imp"
P = (((int)(P)) + (1));
                                                                //    766        %repeat
#line 766 "regression-compile-tmp/nminimo.imp"
goto L_0133;
#line 766 "regression-compile-tmp/nminimo.imp"
L_0134:;
                                                                //    767      %finish
#line 767 "regression-compile-tmp/nminimo.imp"
L_0132:;
                                                                //    768      %if p # sp %start;                  !redundant
#line 768 "regression-compile-tmp/nminimo.imp"
if (((P) == (SP))) goto L_013d;
                                                                //    769        erase(q)
#line 769 "regression-compile-tmp/nminimo.imp"
ERASE(Q);
                                                                //    770        p = p-1 %if p > q
#line 770 "regression-compile-tmp/nminimo.imp"
if (((P) <= (Q))) goto L_013e;
#line 770 "regression-compile-tmp/nminimo.imp"
P = (((int)(P)) - (1));
#line 770 "regression-compile-tmp/nminimo.imp"
L_013e:;
                                                                //    771        %if p >= esslim %start;           !P may now be essential
#line 771 "regression-compile-tmp/nminimo.imp"
if (((P) < (ESSLIM))) goto L_013f;
                                                                //    772          %if needed(p,sp) = sp %start
#line 772 "regression-compile-tmp/nminimo.imp"
if (((NEEDED(P, SP)) != (SP))) goto L_0140;
                                                                //    773            q = q+1 %if p >= q
#line 773 "regression-compile-tmp/nminimo.imp"
if (((P) < (Q))) goto L_0141;
#line 773 "regression-compile-tmp/nminimo.imp"
Q = (((int)(Q)) + (1));
#line 773 "regression-compile-tmp/nminimo.imp"
L_0141:;
                                                                //    774            promote(p,0)
#line 774 "regression-compile-tmp/nminimo.imp"
PROMOTE(P, 0);
                                                                //    775            done = 0
#line 775 "regression-compile-tmp/nminimo.imp"
DONE = 0;
                                                                //    776          %finish
#line 776 "regression-compile-tmp/nminimo.imp"
L_0140:;
                                                                //    777        %finish
#line 777 "regression-compile-tmp/nminimo.imp"
L_013f:;
                                                                //    778      %finish
#line 778 "regression-compile-tmp/nminimo.imp"
L_013d:;
                                                                //    779    %repeat
#line 779 "regression-compile-tmp/nminimo.imp"
goto L_012f;
#line 779 "regression-compile-tmp/nminimo.imp"
L_0130:;
                                                                //    780  %repeat %until done # 0
#line 780 "regression-compile-tmp/nminimo.imp"
if (((DONE) != (0))) goto L_012d;
#line 780 "regression-compile-tmp/nminimo.imp"
goto L_012c;
#line 780 "regression-compile-tmp/nminimo.imp"
L_012d:;
                                                                //    781  %end; !reduce2
#line 781 "regression-compile-tmp/nminimo.imp"
/* Remove %on %event handler here if present for this block */
return;
} // End of block REDUCE2 at level 2
                                                                //    782  
                                                                //    783  %routine order
#line 783 "regression-compile-tmp/nminimo.imp"
void ORDER( void )
#line 783 "regression-compile-tmp/nminimo.imp"
{
                                                                //    784  %integer j,k,p,q,r,poss,last
#line 784 "regression-compile-tmp/nminimo.imp"
int J;
#line 784 "regression-compile-tmp/nminimo.imp"
int K;
#line 784 "regression-compile-tmp/nminimo.imp"
int P;
#line 784 "regression-compile-tmp/nminimo.imp"
int Q;
#line 784 "regression-compile-tmp/nminimo.imp"
int R;
#line 784 "regression-compile-tmp/nminimo.imp"
int POSS;
#line 784 "regression-compile-tmp/nminimo.imp"
int LAST;
                                                                //    785  %integerarray link(1:sp)
#line 785 "regression-compile-tmp/nminimo.imp"
int LINK[(((unsigned char)((((int)(SP)) - (1)))) + (1))];
                                                                //    786  %record(cell) v
#line 786 "regression-compile-tmp/nminimo.imp"
 CELL V;
                                                                //    787    q = sp;  poss = 0;  last = sp
#line 787 "regression-compile-tmp/nminimo.imp"
Q = SP;
#line 787 "regression-compile-tmp/nminimo.imp"
POSS = 0;
#line 787 "regression-compile-tmp/nminimo.imp"
LAST = SP;
                                                                //    788    %while q # esslim %cycle
#line 788 "regression-compile-tmp/nminimo.imp"
L_0142:;
#line 788 "regression-compile-tmp/nminimo.imp"
if (((Q) == (ESSLIM))) goto L_0143;
                                                                //    789      q = q-1
#line 789 "regression-compile-tmp/nminimo.imp"
Q = (((int)(Q)) - (1));
                                                                //    790      p = needed(q,sp)
#line 790 "regression-compile-tmp/nminimo.imp"
P = NEEDED(Q, SP);
                                                                //    791      link(q) = p
#line 791 "regression-compile-tmp/nminimo.imp"
LINK[(((int)(Q)) - (1))] = P;
                                                                //    792      %if p > q %and link(p) > p %start
#line 792 "regression-compile-tmp/nminimo.imp"
if (((P) <= (Q))) goto L_0145;
#line 792 "regression-compile-tmp/nminimo.imp"
if (((LINK[(((int)(P)) - (1))]) <= (P))) goto L_0145;
                                                                //    793        poss = poss+1
#line 793 "regression-compile-tmp/nminimo.imp"
POSS = (((int)(POSS)) + (1));
                                                                //    794        poss = poss+99 %if q # last
#line 794 "regression-compile-tmp/nminimo.imp"
if (((Q) == (LAST))) goto L_0146;
#line 794 "regression-compile-tmp/nminimo.imp"
POSS = (((int)(POSS)) + (99));
#line 794 "regression-compile-tmp/nminimo.imp"
L_0146:;
                                                                //    795        v = w(p);  !promote P before Q
#line 795 "regression-compile-tmp/nminimo.imp"
V = W[(((int)(P)) - (1))];
                                                                //    796        r = sp
#line 796 "regression-compile-tmp/nminimo.imp"
R = SP;
                                                                //    797        %cycle
#line 797 "regression-compile-tmp/nminimo.imp"
L_0147:;
                                                                //    798          r = r-1
#line 798 "regression-compile-tmp/nminimo.imp"
R = (((int)(R)) - (1));
                                                                //    799          j = link(r)
#line 799 "regression-compile-tmp/nminimo.imp"
J = LINK[(((int)(R)) - (1))];
                                                                //    800          %if j = p %then j = q %else %if q <= j < p %then j = j+1
#line 800 "regression-compile-tmp/nminimo.imp"
if (((J) != (P))) goto L_014a;
#line 800 "regression-compile-tmp/nminimo.imp"
J = Q;
#line 800 "regression-compile-tmp/nminimo.imp"
goto L_014b;
#line 800 "regression-compile-tmp/nminimo.imp"
L_014a:;
#line 800 "regression-compile-tmp/nminimo.imp"
if ((((Q) > (J))) || (((J) >= (P)))) goto L_014c;
#line 800 "regression-compile-tmp/nminimo.imp"
J = (((int)(J)) + (1));
#line 800 "regression-compile-tmp/nminimo.imp"
L_014c:;
#line 800 "regression-compile-tmp/nminimo.imp"
L_014b:;
                                                                //    801          %if r >= p %then %start
#line 801 "regression-compile-tmp/nminimo.imp"
if (((R) < (P))) goto L_014d;
                                                                //    802            link(r) = j
#line 802 "regression-compile-tmp/nminimo.imp"
LINK[(((int)(R)) - (1))] = J;
                                                                //    803          %finish %else %start
#line 803 "regression-compile-tmp/nminimo.imp"
goto L_014e;
#line 803 "regression-compile-tmp/nminimo.imp"
L_014d:;
                                                                //    804            link(r+1) = j
#line 804 "regression-compile-tmp/nminimo.imp"
LINK[(((int)((((int)(R)) + (1)))) - (1))] = J;
                                                                //    805            w(r+1) = w(r)
#line 805 "regression-compile-tmp/nminimo.imp"
W[(((int)((((int)(R)) + (1)))) - (1))] = W[(((int)(R)) - (1))];
                                                                //    806          %finish
#line 806 "regression-compile-tmp/nminimo.imp"
L_014e:;
                                                                //    807        %repeat %until r = q
#line 807 "regression-compile-tmp/nminimo.imp"
if (((R) == (Q))) goto L_0148;
#line 807 "regression-compile-tmp/nminimo.imp"
goto L_0147;
#line 807 "regression-compile-tmp/nminimo.imp"
L_0148:;
                                                                //    808        w(r) = v
#line 808 "regression-compile-tmp/nminimo.imp"
W[(((int)(R)) - (1))] = V;
                                                                //    809        q = q+2;  last = q-1;  !try Q again
#line 809 "regression-compile-tmp/nminimo.imp"
Q = (((int)(Q)) + (2));
#line 809 "regression-compile-tmp/nminimo.imp"
LAST = (((int)(Q)) - (1));
                                                                //    810      %finish
#line 810 "regression-compile-tmp/nminimo.imp"
L_0145:;
                                                                //    811    %repeat
#line 811 "regression-compile-tmp/nminimo.imp"
goto L_0142;
#line 811 "regression-compile-tmp/nminimo.imp"
L_0143:;
                                                                //    812    write(poss,1)
#line 812 "regression-compile-tmp/nminimo.imp"
_imp_WRITE(POSS, 1);
                                                                //    813  !First pass
                                                                //    814    %cycle
#line 814 "regression-compile-tmp/nminimo.imp"
L_014f:;
                                                                //    815      v = w(q)
#line 815 "regression-compile-tmp/nminimo.imp"
V = W[(((int)(Q)) - (1))];
                                                                //    816      v_flags = v_flags>>5
#line 816 "regression-compile-tmp/nminimo.imp"
V.FLAGS = (int)((((unsigned int)(V.FLAGS)) >> (5)));
                                                                //    817      p = needed(q,sp)
#line 817 "regression-compile-tmp/nminimo.imp"
P = NEEDED(Q, SP);
                                                                //    818      %if p > q %start
#line 818 "regression-compile-tmp/nminimo.imp"
if (((P) <= (Q))) goto L_0152;
                                                                //    819        count = count+v_flags+4096
#line 819 "regression-compile-tmp/nminimo.imp"
COUNT = (((int)((((int)(COUNT)) + (V.FLAGS)))) + (4096));
                                                                //    820        w(q)_flags = v_flags+count<<5
#line 820 "regression-compile-tmp/nminimo.imp"
W[(((int)(Q)) - (1))].FLAGS = ((V.FLAGS) + ((int)(((COUNT) << (5)))));
                                                                //    821      %finish %else %start
#line 821 "regression-compile-tmp/nminimo.imp"
goto L_0153;
#line 821 "regression-compile-tmp/nminimo.imp"
L_0152:;
                                                                //    822        %cycle
#line 822 "regression-compile-tmp/nminimo.imp"
L_0154:;
                                                                //    823          p = p+1
#line 823 "regression-compile-tmp/nminimo.imp"
P = (((int)(P)) + (1));
                                                                //    824        %repeat %until w(p)_flags >= 0
#line 824 "regression-compile-tmp/nminimo.imp"
if (((W[(((int)(P)) - (1))].FLAGS) >= (0))) goto L_0155;
#line 824 "regression-compile-tmp/nminimo.imp"
goto L_0154;
#line 824 "regression-compile-tmp/nminimo.imp"
L_0155:;
                                                                //    825        r = q
#line 825 "regression-compile-tmp/nminimo.imp"
R = Q;
                                                                //    826        %while r # p %cycle
#line 826 "regression-compile-tmp/nminimo.imp"
L_0157:;
#line 826 "regression-compile-tmp/nminimo.imp"
if (((R) == (P))) goto L_0158;
                                                                //    827          r = r-1
#line 827 "regression-compile-tmp/nminimo.imp"
R = (((int)(R)) - (1));
                                                                //    828          w(r+1) = w(r)
#line 828 "regression-compile-tmp/nminimo.imp"
W[(((int)((((int)(R)) + (1)))) - (1))] = W[(((int)(R)) - (1))];
                                                                //    829        %repeat
#line 829 "regression-compile-tmp/nminimo.imp"
goto L_0157;
#line 829 "regression-compile-tmp/nminimo.imp"
L_0158:;
                                                                //    830        v_flags = w(r-1)_flags&16_0FFFFFE0+v_flags+sign
#line 830 "regression-compile-tmp/nminimo.imp"
V.FLAGS = (((int)((((int)(((W[(((int)((((int)(R)) - (1)))) - (1))].FLAGS) & (268435424)))) + (V.FLAGS)))) + ((-2147483648)));
                                                                //    831        w(r) = v
#line 831 "regression-compile-tmp/nminimo.imp"
W[(((int)(R)) - (1))] = V;
                                                                //    832      %finish
#line 832 "regression-compile-tmp/nminimo.imp"
L_0153:;
                                                                //    833      q = q+1
#line 833 "regression-compile-tmp/nminimo.imp"
Q = (((int)(Q)) + (1));
                                                                //    834    %repeat %until q = sp
#line 834 "regression-compile-tmp/nminimo.imp"
if (((Q) == (SP))) goto L_0150;
#line 834 "regression-compile-tmp/nminimo.imp"
goto L_014f;
#line 834 "regression-compile-tmp/nminimo.imp"
L_0150:;
                                                                //    835  %end; !order
#line 835 "regression-compile-tmp/nminimo.imp"
/* Remove %on %event handler here if present for this block */
return;
} // End of block ORDER at level 2
                                                                //    836  
                                                                //    837  ! F i n d   m i n i m a l   s e l e c t i o n
                                                                //    838  !
                                                                //    839  %routine minimise
#line 839 "regression-compile-tmp/nminimo.imp"
void MINIMISE( void )
#line 839 "regression-compile-tmp/nminimo.imp"
{
                                                                //    840  ! Find minimal selection
                                                                //    841  %integer k,p,q,m
#line 841 "regression-compile-tmp/nminimo.imp"
int K;
#line 841 "regression-compile-tmp/nminimo.imp"
int P;
#line 841 "regression-compile-tmp/nminimo.imp"
int Q;
#line 841 "regression-compile-tmp/nminimo.imp"
int M;
                                                                //    842    q = sp
#line 842 "regression-compile-tmp/nminimo.imp"
Q = SP;
                                                                //    843    %cycle
#line 843 "regression-compile-tmp/nminimo.imp"
L_015a:;
                                                                //    844      %while q # sp %cycle
#line 844 "regression-compile-tmp/nminimo.imp"
L_015d:;
#line 844 "regression-compile-tmp/nminimo.imp"
if (((Q) == (SP))) goto L_015e;
                                                                //    845        m = w(q)_flags
#line 845 "regression-compile-tmp/nminimo.imp"
M = W[(((int)(Q)) - (1))].FLAGS;
                                                                //    846        p = needed(q,sp)
#line 846 "regression-compile-tmp/nminimo.imp"
P = NEEDED(Q, SP);
                                                                //    847        %if p = sp %start;                !mandatory
#line 847 "regression-compile-tmp/nminimo.imp"
if (((P) != (SP))) goto L_0160;
                                                                //    848          m = m+forced
#line 848 "regression-compile-tmp/nminimo.imp"
M = (((int)(M)) + (1073741824));
                                                                //    849        %finish %else %start;             !optional or redundant
#line 849 "regression-compile-tmp/nminimo.imp"
goto L_0161;
#line 849 "regression-compile-tmp/nminimo.imp"
L_0160:;
                                                                //    850          m = m+(sign+forced) %if p < q;  !redundant
#line 850 "regression-compile-tmp/nminimo.imp"
if (((P) >= (Q))) goto L_0162;
#line 850 "regression-compile-tmp/nminimo.imp"
M = (((int)(M)) + ((-1073741824)));
#line 850 "regression-compile-tmp/nminimo.imp"
L_0162:;
                                                                //    851        %finish
#line 851 "regression-compile-tmp/nminimo.imp"
L_0161:;
                                                                //    852        %if m >= 0 %start;            !selected
#line 852 "regression-compile-tmp/nminimo.imp"
if (((M) < (0))) goto L_0163;
                                                                //    853          k = m&31+count+4096
#line 853 "regression-compile-tmp/nminimo.imp"
K = (((int)((((int)(((M) & (31)))) + (COUNT)))) + (4096));
                                                                //    854          %exit %if k+inc > aim
#line 854 "regression-compile-tmp/nminimo.imp"
if ((((((int)(K)) + (INC))) <= (AIM))) goto L_0164;
#line 854 "regression-compile-tmp/nminimo.imp"
goto L_015e;
#line 854 "regression-compile-tmp/nminimo.imp"
L_0164:;
                                                                //    855          %exit %if k+inc > m>>5&16_7FFFFF
#line 855 "regression-compile-tmp/nminimo.imp"
if ((((((int)(K)) + (INC))) <= ((((int)((((unsigned int)(M)) >> (5)))) & (8388607))))) goto L_0165;
#line 855 "regression-compile-tmp/nminimo.imp"
goto L_015e;
#line 855 "regression-compile-tmp/nminimo.imp"
L_0165:;
                                                                //    856          count = k
#line 856 "regression-compile-tmp/nminimo.imp"
COUNT = K;
                                                                //    857        %finish
#line 857 "regression-compile-tmp/nminimo.imp"
L_0163:;
                                                                //    858        w(q)_flags = m
#line 858 "regression-compile-tmp/nminimo.imp"
W[(((int)(Q)) - (1))].FLAGS = M;
                                                                //    859        q = q+1
#line 859 "regression-compile-tmp/nminimo.imp"
Q = (((int)(Q)) + (1));
                                                                //    860      %repeat
#line 860 "regression-compile-tmp/nminimo.imp"
goto L_015d;
#line 860 "regression-compile-tmp/nminimo.imp"
L_015e:;
                                                                //    861      %if q = sp %start;                  !scan completed successfully
#line 861 "regression-compile-tmp/nminimo.imp"
if (((Q) != (SP))) goto L_0166;
                                                                //    862        pcount
#line 862 "regression-compile-tmp/nminimo.imp"
PCOUNT();
                                                                //    863        printall %if inc = 0 %or mon&1 # 0
#line 863 "regression-compile-tmp/nminimo.imp"
if (((INC) == (0))) goto L_0159;
#line 863 "regression-compile-tmp/nminimo.imp"
if (((((MON) & (1))) == (0))) goto L_0167;
#line 863 "regression-compile-tmp/nminimo.imp"
L_0159:;
#line 863 "regression-compile-tmp/nminimo.imp"
PRINTALL();
#line 863 "regression-compile-tmp/nminimo.imp"
L_0167:;
                                                                //    864        aim = count
#line 864 "regression-compile-tmp/nminimo.imp"
AIM = COUNT;
                                                                //    865        q = esslim
#line 865 "regression-compile-tmp/nminimo.imp"
Q = ESSLIM;
                                                                //    866        %while q # sp %cycle;             !save marker bits
#line 866 "regression-compile-tmp/nminimo.imp"
L_0168:;
#line 866 "regression-compile-tmp/nminimo.imp"
if (((Q) == (SP))) goto L_0169;
                                                                //    867          k = w(q)_flags&16_cfffffff
#line 867 "regression-compile-tmp/nminimo.imp"
K = ((W[(((int)(Q)) - (1))].FLAGS) & ((-805306369)));
                                                                //    868          w(q)_flags = (k&16_c0000000)>>2+k
#line 868 "regression-compile-tmp/nminimo.imp"
W[(((int)(Q)) - (1))].FLAGS = (((int)(((((((K) & ((-1073741824))))) >> (2))))) + (K));
                                                                //    869          q = q+1
#line 869 "regression-compile-tmp/nminimo.imp"
Q = (((int)(Q)) + (1));
                                                                //    870        %repeat
#line 870 "regression-compile-tmp/nminimo.imp"
goto L_0168;
#line 870 "regression-compile-tmp/nminimo.imp"
L_0169:;
                                                                //    871      %finish
#line 871 "regression-compile-tmp/nminimo.imp"
L_0166:;
                                                                //    872      %cycle;                             !scan backward to de-select
#line 872 "regression-compile-tmp/nminimo.imp"
L_016b:;
                                                                //    873        %if q = esslim %start;            !scan completed
#line 873 "regression-compile-tmp/nminimo.imp"
if (((Q) != (ESSLIM))) goto L_016e;
                                                                //    874          %while q # sp %cycle;           !restore marker bits
#line 874 "regression-compile-tmp/nminimo.imp"
L_016f:;
#line 874 "regression-compile-tmp/nminimo.imp"
if (((Q) == (SP))) goto L_0170;
                                                                //    875            k = w(q)_flags&16_3fffffff
#line 875 "regression-compile-tmp/nminimo.imp"
K = ((W[(((int)(Q)) - (1))].FLAGS) & (1073741823));
                                                                //    876            w(q)_flags = (k&16_30000000)<<2+k
#line 876 "regression-compile-tmp/nminimo.imp"
W[(((int)(Q)) - (1))].FLAGS = (((int)(((((K) & (805306368))) << (2)))) + (K));
                                                                //    877            q = q+1
#line 877 "regression-compile-tmp/nminimo.imp"
Q = (((int)(Q)) + (1));
                                                                //    878          %repeat
#line 878 "regression-compile-tmp/nminimo.imp"
goto L_016f;
#line 878 "regression-compile-tmp/nminimo.imp"
L_0170:;
                                                                //    879          %return %if inc <= min;         !all done
#line 879 "regression-compile-tmp/nminimo.imp"
if (((INC) > (MIN))) goto L_0172;
#line 879 "regression-compile-tmp/nminimo.imp"
/* Remove %on %event handler here if present for this block */
return;
#line 879 "regression-compile-tmp/nminimo.imp"
L_0172:;
                                                                //    880          count = aim;                    !restore count
#line 880 "regression-compile-tmp/nminimo.imp"
COUNT = AIM;
                                                                //    881          inc = inc>>1
#line 881 "regression-compile-tmp/nminimo.imp"
INC = (int)((((unsigned int)(INC)) >> (1)));
                                                                //    882          print all %if inc = 0
#line 882 "regression-compile-tmp/nminimo.imp"
if (((INC) != (0))) goto L_0173;
#line 882 "regression-compile-tmp/nminimo.imp"
PRINTALL();
#line 882 "regression-compile-tmp/nminimo.imp"
L_0173:;
                                                                //    883        %finish
#line 883 "regression-compile-tmp/nminimo.imp"
L_016e:;
                                                                //    884        q = q-1
#line 884 "regression-compile-tmp/nminimo.imp"
Q = (((int)(Q)) - (1));
                                                                //    885        m = w(q)_flags
#line 885 "regression-compile-tmp/nminimo.imp"
M = W[(((int)(Q)) - (1))].FLAGS;
                                                                //    886        w(q)_flags = m&16_3fffffff
#line 886 "regression-compile-tmp/nminimo.imp"
W[(((int)(Q)) - (1))].FLAGS = ((M) & (1073741823));
                                                                //    887        %if m >= 0 %start
#line 887 "regression-compile-tmp/nminimo.imp"
if (((M) < (0))) goto L_0174;
                                                                //    888          k = m&31+4096
#line 888 "regression-compile-tmp/nminimo.imp"
K = (((int)(((M) & (31)))) + (4096));
                                                                //    889          count = count-k
#line 889 "regression-compile-tmp/nminimo.imp"
COUNT = (((int)(COUNT)) - (K));
                                                                //    890          %exit %if m&forced = 0
#line 890 "regression-compile-tmp/nminimo.imp"
if (((((M) & (1073741824))) != (0))) goto L_0175;
#line 890 "regression-compile-tmp/nminimo.imp"
goto L_016c;
#line 890 "regression-compile-tmp/nminimo.imp"
L_0175:;
                                                                //    891        %finish
#line 891 "regression-compile-tmp/nminimo.imp"
L_0174:;
                                                                //    892      %repeat
#line 892 "regression-compile-tmp/nminimo.imp"
goto L_016b;
#line 892 "regression-compile-tmp/nminimo.imp"
L_016c:;
                                                                //    893      w(q)_flags = w(q)_flags+sign
#line 893 "regression-compile-tmp/nminimo.imp"
W[(((int)(Q)) - (1))].FLAGS = (((int)(W[(((int)(Q)) - (1))].FLAGS)) + ((-2147483648)));
                                                                //    894      q = q+1
#line 894 "regression-compile-tmp/nminimo.imp"
Q = (((int)(Q)) + (1));
                                                                //    895    %repeat
#line 895 "regression-compile-tmp/nminimo.imp"
goto L_015a;
                                                                //    896  %end; !minimise
#line 896 "regression-compile-tmp/nminimo.imp"
return;
} // End of block MINIMISE at level 2
                                                                //    897  
                                                                //    898  %begin {initialise}
#line 898 "regression-compile-tmp/nminimo.imp"
void _BLOCK_1_LEVEL_1_(void) {
                                                                //    899  %string(255)in1=":N",in2=":N",in3,out=":T"
#line 899 "regression-compile-tmp/nminimo.imp"
_imp_string /*%string(255)*/ IN1;
#line 899 "regression-compile-tmp/nminimo.imp"
IN1 = _imp_str_literal(":N");
#line 899 "regression-compile-tmp/nminimo.imp"
_imp_string /*%string(255)*/ IN2;
#line 899 "regression-compile-tmp/nminimo.imp"
IN2 = _imp_str_literal(":N");
#line 899 "regression-compile-tmp/nminimo.imp"
_imp_string /*%string(255)*/ IN3;
#line 899 "regression-compile-tmp/nminimo.imp"
_imp_string /*%string(255)*/ OUT;
#line 899 "regression-compile-tmp/nminimo.imp"
OUT = _imp_str_literal(":T");
                                                                //    900  %integer bools=16_05000000{single,equin}
#line 900 "regression-compile-tmp/nminimo.imp"
int BOOLS;
#line 900 "regression-compile-tmp/nminimo.imp"
BOOLS = 83886080;
                                                                //    901  
                                                                //    902    %routine init(%integername n)
#line 902 "regression-compile-tmp/nminimo.imp"
void INIT( int /*name*/*N )
#line 902 "regression-compile-tmp/nminimo.imp"
{
                                                                //    903      n = 1 %if bools<0; bools = bools<<1
#line 903 "regression-compile-tmp/nminimo.imp"
if (((BOOLS) >= (0))) goto L_015b;
#line 903 "regression-compile-tmp/nminimo.imp"
*N = 1;
#line 903 "regression-compile-tmp/nminimo.imp"
L_015b:;
#line 903 "regression-compile-tmp/nminimo.imp"
BOOLS = ((BOOLS) << (1));
                                                                //    904    %end
#line 904 "regression-compile-tmp/nminimo.imp"
/* Remove %on %event handler here if present for this block */
return;
} // End of block INIT at level 3
                                                                //    905  
                                                                //    906    defineparam("Input file",in3,pamnodefault)
#line 906 "regression-compile-tmp/nminimo.imp"
DEFINEPARAM(_imp_str_literal("Input file"), &IN3, 2);
                                                                //    907    defineparam("Input 2",in2,0)
#line 907 "regression-compile-tmp/nminimo.imp"
DEFINEPARAM(_imp_str_literal("Input 2"), &IN2, 0);
                                                                //    908    defineparam("Input 3",in1,0)
#line 908 "regression-compile-tmp/nminimo.imp"
DEFINEPARAM(_imp_str_literal("Input 3"), &IN1, 0);
                                                                //    909    defineparam("Output file",out,pamnewgroup)
#line 909 "regression-compile-tmp/nminimo.imp"
DEFINEPARAM(_imp_str_literal("Output file"), &OUT, 1);
                                                                //    910    defineintparam("MIN",min,0)
#line 910 "regression-compile-tmp/nminimo.imp"
DEFINEINTPARAM(_imp_str_literal("MIN"), &MIN, 0);
                                                                //    911    defineintparam("INC",inc,0)
#line 911 "regression-compile-tmp/nminimo.imp"
DEFINEINTPARAM(_imp_str_literal("INC"), &INC, 0);
                                                                //    912    defineintparam("MON",mon,0)
#line 912 "regression-compile-tmp/nminimo.imp"
DEFINEINTPARAM(_imp_str_literal("MON"), &MON, 0);
                                                                //    913    definebooleanparams("ECho,SQuash,NIn,NOut,Check,SIngle,Tabin,EQuin",bools,0)
#line 913 "regression-compile-tmp/nminimo.imp"
DEFINEBOOLEANPARAMS(_imp_str_literal("ECho,SQuash,NIn,NOut,Check,SIngle,Tabin,EQuin"), &BOOLS, 0);
                                                                //    914    processparameters(cliparam)
#line 914 "regression-compile-tmp/nminimo.imp"
PROCESSPARAMETERS(CLIPARAM());
                                                                //    915    init(echo)
#line 915 "regression-compile-tmp/nminimo.imp"
INIT(&ECHO);
                                                                //    916    init(squash)
#line 916 "regression-compile-tmp/nminimo.imp"
INIT(&SQUASH);
                                                                //    917    init(nin)
#line 917 "regression-compile-tmp/nminimo.imp"
INIT(&NIN);
                                                                //    918    init(nout)
#line 918 "regression-compile-tmp/nminimo.imp"
INIT(&NOUT);
                                                                //    919    init(check)
#line 919 "regression-compile-tmp/nminimo.imp"
INIT(&CHECK);
                                                                //    920    init(single)
#line 920 "regression-compile-tmp/nminimo.imp"
INIT(&SINGLE);
                                                                //    921    init(tabin)
#line 921 "regression-compile-tmp/nminimo.imp"
INIT(&TABIN);
                                                                //    922    tabin = 0 %if bools<0 {equin}
#line 922 "regression-compile-tmp/nminimo.imp"
if (((BOOLS) >= (0))) goto L_0176;
#line 922 "regression-compile-tmp/nminimo.imp"
TABIN = 0;
#line 922 "regression-compile-tmp/nminimo.imp"
L_0176:;
                                                                //    923    openinput(instream-2,in3)
#line 923 "regression-compile-tmp/nminimo.imp"
_imp_OPENINPUT((((int)(INSTREAM)) - (2)), IN3);
                                                                //    924    openinput(instream-1,in2)
#line 924 "regression-compile-tmp/nminimo.imp"
_imp_OPENINPUT((((int)(INSTREAM)) - (1)), IN2);
                                                                //    925    openinput(instream,in1)
#line 925 "regression-compile-tmp/nminimo.imp"
_imp_OPENINPUT(INSTREAM, IN1);
                                                                //    926    openoutput(outstream,out)
#line 926 "regression-compile-tmp/nminimo.imp"
_imp_OPENOUTPUT(1, OUT);
                                                                //    927  %end
#line 927 "regression-compile-tmp/nminimo.imp"
return;
} // End of block _BLOCK_1_LEVEL_1_ at level 2
_BLOCK_1_LEVEL_1_();
                                                                //    928  
                                                                //    929  select output(outstream)
#line 929 "regression-compile-tmp/nminimo.imp"
_imp_SELECTOUTPUT(1);
                                                                //    930  select input(instream)
#line 930 "regression-compile-tmp/nminimo.imp"
_imp_SELECTINPUT(INSTREAM);
                                                                //    931  %cycle
#line 931 "regression-compile-tmp/nminimo.imp"
L_0177:;
                                                                //    932    start = cputime
#line 932 "regression-compile-tmp/nminimo.imp"
START = CPUTIME();
                                                                //    933    readin
#line 933 "regression-compile-tmp/nminimo.imp"
READIN();
                                                                //    934    printstring("Read in:")
#line 934 "regression-compile-tmp/nminimo.imp"
_imp_PRINTSTRING(_imp_str_literal("Read in:"));
                                                                //    935    print time
#line 935 "regression-compile-tmp/nminimo.imp"
PRINTTIME();
                                                                //    936    newline
#line 936 "regression-compile-tmp/nminimo.imp"
_imp_NEWLINE();
                                                                //    937    convert
#line 937 "regression-compile-tmp/nminimo.imp"
CONVERT();
                                                                //    938    aim = 999999;  count = 0
#line 938 "regression-compile-tmp/nminimo.imp"
AIM = 999999;
#line 938 "regression-compile-tmp/nminimo.imp"
COUNT = 0;
                                                                //    939    printstring("Implicants:")
#line 939 "regression-compile-tmp/nminimo.imp"
_imp_PRINTSTRING(_imp_str_literal("Implicants:"));
                                                                //    940    write(sp-dclim,3)
#line 940 "regression-compile-tmp/nminimo.imp"
_imp_WRITE((((int)(SP)) - (DCLIM)), 3);
                                                                //    941    print time
#line 941 "regression-compile-tmp/nminimo.imp"
PRINTTIME();
                                                                //    942    newline
#line 942 "regression-compile-tmp/nminimo.imp"
_imp_NEWLINE();
                                                                //    943    print all %if inc#0 %and mon&16#0
#line 943 "regression-compile-tmp/nminimo.imp"
if (((INC) == (0))) goto L_017a;
#line 943 "regression-compile-tmp/nminimo.imp"
if (((((MON) & (16))) == (0))) goto L_017a;
#line 943 "regression-compile-tmp/nminimo.imp"
PRINTALL();
#line 943 "regression-compile-tmp/nminimo.imp"
L_017a:;
                                                                //    944    reduce1
#line 944 "regression-compile-tmp/nminimo.imp"
REDUCE1();
                                                                //    945    printstring("Reduced(1):")
#line 945 "regression-compile-tmp/nminimo.imp"
_imp_PRINTSTRING(_imp_str_literal("Reduced(1):"));
                                                                //    946    write(sp-dclim,3)
#line 946 "regression-compile-tmp/nminimo.imp"
_imp_WRITE((((int)(SP)) - (DCLIM)), 3);
                                                                //    947    printstring(" (nucleus")
#line 947 "regression-compile-tmp/nminimo.imp"
_imp_PRINTSTRING(_imp_str_literal(" (nucleus"));
                                                                //    948    pcount
#line 948 "regression-compile-tmp/nminimo.imp"
PCOUNT();
                                                                //    949    printsymbol(')')
#line 949 "regression-compile-tmp/nminimo.imp"
_imp_PRINTSYMBOL(41);
                                                                //    950    print time
#line 950 "regression-compile-tmp/nminimo.imp"
PRINTTIME();
                                                                //    951    newline
#line 951 "regression-compile-tmp/nminimo.imp"
_imp_NEWLINE();
                                                                //    952    print all %if inc # 0 %and mon&16#0
#line 952 "regression-compile-tmp/nminimo.imp"
if (((INC) == (0))) goto L_017b;
#line 952 "regression-compile-tmp/nminimo.imp"
if (((((MON) & (16))) == (0))) goto L_017b;
#line 952 "regression-compile-tmp/nminimo.imp"
PRINTALL();
#line 952 "regression-compile-tmp/nminimo.imp"
L_017b:;
                                                                //    953    %if sp # esslim %start
#line 953 "regression-compile-tmp/nminimo.imp"
if (((SP) == (ESSLIM))) goto L_017c;
                                                                //    954      reduce2
#line 954 "regression-compile-tmp/nminimo.imp"
REDUCE2();
                                                                //    955      printstring("Reduced(2):")
#line 955 "regression-compile-tmp/nminimo.imp"
_imp_PRINTSTRING(_imp_str_literal("Reduced(2):"));
                                                                //    956      write(sp-dclim,3)
#line 956 "regression-compile-tmp/nminimo.imp"
_imp_WRITE((((int)(SP)) - (DCLIM)), 3);
                                                                //    957      printstring(" (nucleus")
#line 957 "regression-compile-tmp/nminimo.imp"
_imp_PRINTSTRING(_imp_str_literal(" (nucleus"));
                                                                //    958      pcount
#line 958 "regression-compile-tmp/nminimo.imp"
PCOUNT();
                                                                //    959      printsymbol(')')
#line 959 "regression-compile-tmp/nminimo.imp"
_imp_PRINTSYMBOL(41);
                                                                //    960      order %if sp # esslim
#line 960 "regression-compile-tmp/nminimo.imp"
if (((SP) == (ESSLIM))) goto L_017d;
#line 960 "regression-compile-tmp/nminimo.imp"
ORDER();
#line 960 "regression-compile-tmp/nminimo.imp"
L_017d:;
                                                                //    961      print time
#line 961 "regression-compile-tmp/nminimo.imp"
PRINTTIME();
                                                                //    962      newline
#line 962 "regression-compile-tmp/nminimo.imp"
_imp_NEWLINE();
                                                                //    963      print all %if inc # 0 %and mon&16#0
#line 963 "regression-compile-tmp/nminimo.imp"
if (((INC) == (0))) goto L_017e;
#line 963 "regression-compile-tmp/nminimo.imp"
if (((((MON) & (16))) == (0))) goto L_017e;
#line 963 "regression-compile-tmp/nminimo.imp"
PRINTALL();
#line 963 "regression-compile-tmp/nminimo.imp"
L_017e:;
                                                                //    964    %finish
#line 964 "regression-compile-tmp/nminimo.imp"
L_017c:;
                                                                //    965    monitor(esslim) %if mon&2 # 0
#line 965 "regression-compile-tmp/nminimo.imp"
if (((((MON) & (2))) == (0))) goto L_017f;
#line 965 "regression-compile-tmp/nminimo.imp"
MONITOR(ESSLIM);
#line 965 "regression-compile-tmp/nminimo.imp"
L_017f:;
                                                                //    966    %if sp # esslim %start
#line 966 "regression-compile-tmp/nminimo.imp"
if (((SP) == (ESSLIM))) goto L_0180;
                                                                //    967      monitor(sp) %if mon&8 # 0
#line 967 "regression-compile-tmp/nminimo.imp"
if (((((MON) & (8))) == (0))) goto L_0181;
#line 967 "regression-compile-tmp/nminimo.imp"
MONITOR(SP);
#line 967 "regression-compile-tmp/nminimo.imp"
L_0181:;
                                                                //    968      printstring("Minimised:")
#line 968 "regression-compile-tmp/nminimo.imp"
_imp_PRINTSTRING(_imp_str_literal("Minimised:"));
                                                                //    969      minimise
#line 969 "regression-compile-tmp/nminimo.imp"
MINIMISE();
                                                                //    970    %finish
#line 970 "regression-compile-tmp/nminimo.imp"
L_0180:;
                                                                //    971    print all %if inc # 0 %and mon&1 = 0
#line 971 "regression-compile-tmp/nminimo.imp"
if (((INC) == (0))) goto L_0182;
#line 971 "regression-compile-tmp/nminimo.imp"
if (((((MON) & (1))) != (0))) goto L_0182;
#line 971 "regression-compile-tmp/nminimo.imp"
PRINTALL();
#line 971 "regression-compile-tmp/nminimo.imp"
L_0182:;
                                                                //    972    printstring("  Cells used:")
#line 972 "regression-compile-tmp/nminimo.imp"
_imp_PRINTSTRING(_imp_str_literal("  Cells used:"));
                                                                //    973    write(storebound-1-minsep,1)
#line 973 "regression-compile-tmp/nminimo.imp"
_imp_WRITE((((int)(1999)) - (MINSEP)), 1);
                                                                //    974    print time
#line 974 "regression-compile-tmp/nminimo.imp"
PRINTTIME();
                                                                //    975    newline
#line 975 "regression-compile-tmp/nminimo.imp"
_imp_NEWLINE();
                                                                //    976  %repeat
#line 976 "regression-compile-tmp/nminimo.imp"
goto L_0177;
                                                                //    977  
                                                                //    978  %endofprogram
#line 978 "regression-compile-tmp/nminimo.imp"
return 0;
} // End of block _imp_main at level 1
#line 978 "regression-compile-tmp/nminimo.imp"
// End of file
