1398 lines
25 KiB
Plaintext
1398 lines
25 KiB
Plaintext
int: w1:: global_register(11);
|
|
array [int] of set of int: courses_of:: global_register(3);
|
|
int: n_precedences:: global_register(4);
|
|
int: max_courses:: global_register(7);
|
|
int: w2:: global_register(12);
|
|
array [int,int] of int: undesirable:: global_register(10);
|
|
int: n_curricula:: global_register(2);
|
|
array [int,int] of int: precedes:: global_register(5);
|
|
array [int] of int: course_load:: global_register(8);
|
|
int: n_undesirables:: global_register(9);
|
|
int: n_periods:: global_register(1);
|
|
int: min_courses:: global_register(6);
|
|
int: n_courses:: global_register(0);
|
|
predicate solve_this(int: mode,var int: objective,array [int] of var int: x,int: varsel,int: valsel);
|
|
predicate int_plus(var int: a,var int: b,var int: c);
|
|
predicate int_max(var int: a,var int: b,var int: c);
|
|
predicate int_minus(var int: x,var int: y,var int: z);
|
|
predicate gecode_bin_packing_load(array [int] of var int: l,array [int] of var int: bin,array [int] of int: w,int: minIndex);
|
|
predicate array_int_minimum(var int: m,array [int] of var int: x);
|
|
predicate int_min(var int: a,var int: b,var int: c);
|
|
predicate int_lin_le(array [int] of int: as,array [int] of var int: bs,int: c);
|
|
predicate fzn_global_cardinality_low_up_closed(array [int] of var int: x,array [int] of int: cover,array [int] of int: lbound,array [int] of int: ubound);
|
|
predicate output_this(array [int] of var int: arr);
|
|
predicate int_lin_eq_reif(array [int] of int: as,array [int] of var int: bs,int: c,var bool: r);
|
|
predicate array_int_maximum(var int: m,array [int] of var int: x);
|
|
predicate int_times(var int: a,var int: b,var int: c);
|
|
predicate int_sum(array [int] of var int: xs,var int: x);
|
|
predicate int_lin_eq(array [int] of int: as,array [int] of var int: bs,int: c);
|
|
predicate clause(array [$T] of var bool: x,array [$T] of var bool: y);
|
|
predicate clause(array [$T] of bool: x,array [$T] of bool: y);
|
|
predicate bool_clause(array [int] of var bool: as,array [int] of var bool: bs);
|
|
predicate bool_not(var bool: a,var bool: b);
|
|
@@@@@@@@@@
|
|
:mk_intvar: 1
|
|
:absent: 1
|
|
:infinity: 1
|
|
:boolean_domain: 0
|
|
:infinite_domain: 0
|
|
:uniform: 2
|
|
:sol: 1
|
|
:sort_by: 2
|
|
:floor: 1
|
|
:ceil: 1
|
|
:slice_Xd: 3
|
|
:array_Xd: 2
|
|
:index_set: 2
|
|
:internal_sort: 1
|
|
:f_op_not_b:FUN 1
|
|
NOT R0 R1
|
|
PUSH R1
|
|
RET
|
|
:f_op_not_vb:FUN 1
|
|
OPEN_AGGREGATION OTHER
|
|
BUILTIN boolean_domain
|
|
POP R1
|
|
CALL ROOT mk_intvar 0 R1
|
|
POP R2
|
|
CALL ROOT bool_not 1 R0 R2
|
|
PUSH R2
|
|
CLEAR R1 R2
|
|
CLOSE_AGGREGATION
|
|
POP R1
|
|
PUSH R1
|
|
RET
|
|
:d_op_not_b:FUN 1
|
|
ISPAR R0 R1
|
|
JMPIF R1 l0
|
|
JMP l1
|
|
l0: TCALL FUN f_op_not_b 0
|
|
l1: TCALL FUN f_op_not_vb 1
|
|
:bool_clause:ROOT 2
|
|
:bool_clause_reif:ROOT 3
|
|
CALL FUN d_op_not_b 0 R2
|
|
POP R3
|
|
OPEN_AGGREGATION VEC
|
|
PUSH R3
|
|
CLOSE_AGGREGATION
|
|
POP R4
|
|
OPEN_AGGREGATION VEC
|
|
ITER_ARRAY R1 l217
|
|
l216: ITER_NEXT R6
|
|
PUSH R6
|
|
JMP l216
|
|
l217: ITER_ARRAY R4 l219
|
|
l218: ITER_NEXT R7
|
|
PUSH R7
|
|
JMP l218
|
|
l219: CLEAR R6 R7
|
|
CLOSE_AGGREGATION
|
|
POP R5
|
|
IMMI 1 R6
|
|
BUILTIN index_set R0 R6
|
|
POP R7
|
|
ITER_ARRAY R7 l221
|
|
l220: ITER_NEXT R8
|
|
ITER_NEXT R9
|
|
ITER_RANGE R8 R9 l223
|
|
l222: ITER_NEXT R10
|
|
GET_ARRAY 1 R0 R10 R11 R12
|
|
OPEN_AGGREGATION OR
|
|
IMMI 0 R14
|
|
JMPIFNOT R12 l224
|
|
MOV R11 R14
|
|
l224: PUSH R14
|
|
PUSH R3
|
|
CLEAR R14 R14
|
|
CLOSE_AGGREGATION
|
|
POP R13
|
|
POST R13
|
|
JMP l222
|
|
l223: JMP l220
|
|
l221: IMMI 1 R14
|
|
BUILTIN index_set R1 R14
|
|
POP R15
|
|
ITER_ARRAY R15 l226
|
|
l225: ITER_NEXT R16
|
|
ITER_NEXT R17
|
|
ITER_RANGE R16 R17 l228
|
|
l227: ITER_NEXT R18
|
|
GET_ARRAY 1 R1 R18 R19 R20
|
|
IMMI 1 R21
|
|
NOT R20 R22
|
|
JMPIF R22 l229
|
|
OPEN_AGGREGATION OR
|
|
CALL FUN d_op_not_b 0 R19
|
|
POP R23
|
|
PUSH R23
|
|
PUSH R3
|
|
CLEAR R23 R23
|
|
CLOSE_AGGREGATION
|
|
POP R21
|
|
l229: POST R21
|
|
JMP l227
|
|
l228: JMP l225
|
|
l226: CALL ROOT d_clause_d1b_d1b 1 R0 R5
|
|
RET
|
|
:int_lin_eq:ROOT 3
|
|
:int_lin_eq:FUN 3
|
|
OPEN_AGGREGATION OTHER
|
|
BUILTIN boolean_domain
|
|
POP R3
|
|
CALL ROOT mk_intvar 0 R3
|
|
POP R4
|
|
CALL ROOT int_lin_eq_reif 1 R0 R1 R2 R4
|
|
PUSH R4
|
|
CLEAR R3 R4
|
|
CLOSE_AGGREGATION
|
|
POP R3
|
|
PUSH R3
|
|
RET
|
|
:f_pre_int_lin_eq_d1i_d1vi_i:ROOT 3
|
|
LENGTH R0 R4
|
|
IMMI 0 R5
|
|
EQI R4 R5 R6
|
|
JMPIFNOT R6 l148
|
|
EQI R2 R5 R7
|
|
MOV R7 R3
|
|
JMP l147
|
|
l148: CALL ROOT int_lin_eq 1 R0 R1 R2
|
|
IMMI 1 R8
|
|
MOV R8 R3
|
|
l147: POST R3
|
|
RET
|
|
:f_pre_int_lin_eq_d1i_d1vi_i:FUN 3
|
|
LENGTH R0 R4
|
|
IMMI 0 R5
|
|
EQI R4 R5 R6
|
|
JMPIFNOT R6 l215
|
|
EQI R2 R5 R7
|
|
MOV R7 R3
|
|
JMP l214
|
|
l215: CALL FUN int_lin_eq 1 R0 R1 R2
|
|
POP R8
|
|
MOV R8 R3
|
|
l214: PUSH R3
|
|
RET
|
|
:f_pre_int_lin_eq_d1i_d1vi_i:IMP 3
|
|
LENGTH R0 R4
|
|
IMMI 0 R5
|
|
EQI R4 R5 R6
|
|
JMPIFNOT R6 l183
|
|
EQI R2 R5 R7
|
|
MOV R7 R3
|
|
JMP l182
|
|
l183: CALL FUN int_lin_eq 1 R0 R1 R2
|
|
POP R8
|
|
MOV R8 R3
|
|
l182: PUSH R3
|
|
RET
|
|
:f_sum_cc_dTvi:FUN 1
|
|
OPEN_AGGREGATION OTHER
|
|
IMMI 0 R2
|
|
BUILTIN array_Xd R0 R2
|
|
POP R1
|
|
BUILTIN infinite_domain
|
|
POP R3
|
|
CALL ROOT mk_intvar 0 R3
|
|
POP R4
|
|
CALL ROOT int_sum 1 R1 R4
|
|
PUSH R4
|
|
CLEAR R1 R4
|
|
CLOSE_AGGREGATION
|
|
POP R1
|
|
PUSH R1
|
|
RET
|
|
:f_op_times_i_i:FUN 2
|
|
MULI R0 R1 R2
|
|
PUSH R2
|
|
RET
|
|
:f_op_times_i_vi:FUN 2
|
|
IMMI 1 R2
|
|
IMMI 1 R4
|
|
EQI R0 R2 R5
|
|
JMPIFNOT R5 l213
|
|
IMMI 0 R4
|
|
MOV R1 R3
|
|
JMP l212
|
|
l213: OPEN_AGGREGATION OTHER
|
|
BUILTIN infinite_domain
|
|
POP R6
|
|
CALL ROOT mk_intvar 0 R6
|
|
POP R7
|
|
CALL ROOT int_times 1 R0 R1 R7
|
|
PUSH R7
|
|
CLEAR R6 R7
|
|
CLOSE_AGGREGATION
|
|
POP R6
|
|
IMMI 0 R4
|
|
MOV R6 R3
|
|
l212: PUSH R3
|
|
RET
|
|
:f_op_times_vi_i:FUN 2
|
|
CALL FUN d_op_times_i_i 0 R1 R0
|
|
POP R2
|
|
PUSH R2
|
|
RET
|
|
:f_op_times_vi_vi:FUN 2
|
|
OPEN_AGGREGATION OTHER
|
|
BUILTIN infinite_domain
|
|
POP R2
|
|
CALL ROOT mk_intvar 0 R2
|
|
POP R3
|
|
CALL ROOT int_times 1 R0 R1 R3
|
|
PUSH R3
|
|
CLEAR R2 R3
|
|
CLOSE_AGGREGATION
|
|
POP R2
|
|
PUSH R2
|
|
RET
|
|
:d_op_times_i_i:FUN 2
|
|
ISPAR R0 R2
|
|
JMPIF R2 l69
|
|
JMP l70
|
|
l69: ISPAR R1 R2
|
|
JMPIF R2 l71
|
|
JMP l72
|
|
l70: ISPAR R1 R2
|
|
JMPIF R2 l73
|
|
JMP l74
|
|
l71: TCALL FUN f_op_times_i_i 0
|
|
l72: TCALL FUN f_op_times_i_vi 1
|
|
l73: TCALL FUN f_op_times_vi_i 1
|
|
l74: TCALL FUN f_op_times_vi_vi 1
|
|
:f_LNS_i:ROOT 1
|
|
LOAD_GLOBAL 16 R1
|
|
BUILTIN sol R1
|
|
POP R2
|
|
LB R1 R3
|
|
UB R2 R4
|
|
LTI R3 R4 R3
|
|
SIMPLIFY_LIN R1 R2 1 R5 R6 R7
|
|
IMMI 0 R9
|
|
EQI R0 R9 R10
|
|
JMPIFNOT R10 l176
|
|
CALL ROOT f_free_period 1
|
|
IMMI 1 R11
|
|
MOV R11 R8
|
|
JMP l175
|
|
l176: CALL ROOT f_random_allocation 1
|
|
IMMI 1 R12
|
|
MOV R12 R8
|
|
l175: POST R3
|
|
CALL ROOT f_pre_int_lin_le_d1i_d1vi_i 1 R5 R6 R7
|
|
POST R8
|
|
RET
|
|
:output_this:ROOT 1
|
|
:f_global_cardinality_low_up_closed_d1vi_d1i_d1i_d1i:ROOT 4
|
|
CALL ROOT fzn_global_cardinality_low_up_closed 1 R0 R1 R2 R3
|
|
RET
|
|
:f_pre_int_lin_le_d1i_d1vi_i:ROOT 3
|
|
LENGTH R0 R4
|
|
IMMI 0 R5
|
|
EQI R4 R5 R6
|
|
JMPIFNOT R6 l174
|
|
LEI R5 R2 R7
|
|
MOV R7 R3
|
|
JMP l173
|
|
l174: CALL ROOT int_lin_le 1 R0 R1 R2
|
|
IMMI 1 R8
|
|
MOV R8 R3
|
|
l173: POST R3
|
|
RET
|
|
:f_bin_packing_load_d1vi_d1vi_d1i:ROOT 3
|
|
CALL ROOT f_fzn_bin_packing_load_d1vi_d1vi_d1i 1 R0 R1 R2
|
|
RET
|
|
:f_op_minus_i_i:FUN 2
|
|
SUBI R0 R1 R2
|
|
PUSH R2
|
|
RET
|
|
:f_op_minus_vi_i:FUN 2
|
|
IMMI 1 R2
|
|
IMMI 1 R4
|
|
IMMI 0 R5
|
|
EQI R1 R5 R6
|
|
JMPIFNOT R6 l152
|
|
IMMI 0 R4
|
|
MOV R0 R3
|
|
JMP l151
|
|
l152: OPEN_AGGREGATION OTHER
|
|
BUILTIN infinite_domain
|
|
POP R7
|
|
CALL ROOT mk_intvar 0 R7
|
|
POP R8
|
|
CALL ROOT int_minus 1 R0 R1 R8
|
|
PUSH R8
|
|
CLEAR R7 R8
|
|
CLOSE_AGGREGATION
|
|
POP R7
|
|
IMMI 0 R4
|
|
MOV R7 R3
|
|
l151: PUSH R3
|
|
RET
|
|
:f_op_minus_vi_vi:FUN 2
|
|
OPEN_AGGREGATION OTHER
|
|
BUILTIN infinite_domain
|
|
POP R2
|
|
CALL ROOT mk_intvar 0 R2
|
|
POP R3
|
|
CALL ROOT int_minus 1 R0 R1 R3
|
|
PUSH R3
|
|
CLEAR R2 R3
|
|
CLOSE_AGGREGATION
|
|
POP R2
|
|
PUSH R2
|
|
RET
|
|
:d_op_minus_i_i:FUN 2
|
|
ISPAR R0 R2
|
|
JMPIF R2 l130
|
|
JMP l131
|
|
l130: ISPAR R1 R2
|
|
JMPIF R2 l132
|
|
JMP l133
|
|
l131: ISPAR R1 R2
|
|
JMPIF R2 l134
|
|
JMP l133
|
|
l132: TCALL FUN f_op_minus_i_i 0
|
|
l133: TCALL FUN f_op_minus_vi_vi 1
|
|
l134: TCALL FUN f_op_minus_vi_i 1
|
|
:f_max_t_t:FUN 2
|
|
IMMI 1 R2
|
|
IMMI 1 R4
|
|
LTI R1 R0 R5
|
|
JMPIFNOT R5 l150
|
|
IMMI 0 R4
|
|
MOV R0 R3
|
|
JMP l149
|
|
l150: IMMI 0 R4
|
|
MOV R1 R3
|
|
l149: PUSH R3
|
|
RET
|
|
:f_max_vi_vi:FUN 2
|
|
OPEN_AGGREGATION OTHER
|
|
LB R0 R2
|
|
LB R1 R3
|
|
CALL FUN d_max_i_i 0 R2 R3
|
|
POP R4
|
|
UB R0 R5
|
|
UB R1 R6
|
|
CALL FUN d_max_i_i 0 R5 R6
|
|
POP R7
|
|
OPEN_AGGREGATION VEC
|
|
PUSH R4
|
|
PUSH R7
|
|
CLOSE_AGGREGATION
|
|
POP R8
|
|
CALL ROOT mk_intvar 0 R8
|
|
POP R9
|
|
CALL ROOT int_max 1 R0 R1 R9
|
|
PUSH R9
|
|
CLEAR R2 R9
|
|
CLOSE_AGGREGATION
|
|
POP R2
|
|
PUSH R2
|
|
RET
|
|
:d_max_i_i:FUN 2
|
|
ISPAR R0 R2
|
|
JMPIF R2 l135
|
|
JMP l136
|
|
l135: ISPAR R1 R2
|
|
JMPIF R2 l137
|
|
JMP l138
|
|
l136: JMP l138
|
|
l137: TCALL FUN f_max_t_t 0
|
|
l138: TCALL FUN f_max_vi_vi 1
|
|
:f_op_plus_i_i:FUN 2
|
|
ADDI R0 R1 R2
|
|
PUSH R2
|
|
RET
|
|
:f_op_plus_i_vi:FUN 2
|
|
IMMI 1 R2
|
|
IMMI 1 R4
|
|
IMMI 0 R5
|
|
EQI R0 R5 R6
|
|
JMPIFNOT R6 l146
|
|
IMMI 0 R4
|
|
MOV R1 R3
|
|
JMP l145
|
|
l146: OPEN_AGGREGATION OTHER
|
|
BUILTIN infinite_domain
|
|
POP R7
|
|
CALL ROOT mk_intvar 0 R7
|
|
POP R8
|
|
CALL ROOT int_plus 1 R0 R1 R8
|
|
PUSH R8
|
|
CLEAR R7 R8
|
|
CLOSE_AGGREGATION
|
|
POP R7
|
|
IMMI 0 R4
|
|
MOV R7 R3
|
|
l145: PUSH R3
|
|
RET
|
|
:f_op_plus_vi_i:FUN 2
|
|
CALL FUN d_op_plus_i_i 0 R1 R0
|
|
POP R2
|
|
PUSH R2
|
|
RET
|
|
:f_op_plus_vi_vi:FUN 2
|
|
OPEN_AGGREGATION OTHER
|
|
BUILTIN infinite_domain
|
|
POP R2
|
|
CALL ROOT mk_intvar 0 R2
|
|
POP R3
|
|
CALL ROOT int_plus 1 R0 R1 R3
|
|
PUSH R3
|
|
CLEAR R2 R3
|
|
CLOSE_AGGREGATION
|
|
POP R2
|
|
PUSH R2
|
|
RET
|
|
:d_op_plus_i_i:FUN 2
|
|
ISPAR R0 R2
|
|
JMPIF R2 l139
|
|
JMP l140
|
|
l139: ISPAR R1 R2
|
|
JMPIF R2 l141
|
|
JMP l142
|
|
l140: ISPAR R1 R2
|
|
JMPIF R2 l143
|
|
JMP l144
|
|
l141: TCALL FUN f_op_plus_i_i 0
|
|
l142: TCALL FUN f_op_plus_i_vi 1
|
|
l143: TCALL FUN f_op_plus_vi_i 1
|
|
l144: TCALL FUN f_op_plus_vi_vi 1
|
|
:solve_this:ROOT 5
|
|
:int_plus:ROOT 3
|
|
:int_max:ROOT 3
|
|
:int_minus:ROOT 3
|
|
:f_fzn_bin_packing_load_d1vi_d1vi_d1i:ROOT 3
|
|
IMMI 1 R3
|
|
BUILTIN index_set R0 R3
|
|
POP R4
|
|
CALL FUN d_min_si 0 R4
|
|
POP R5
|
|
CALL ROOT gecode_bin_packing_load 1 R0 R1 R2 R5
|
|
RET
|
|
:f_min_si:FUN 1
|
|
LENGTH R0 R2
|
|
IMMI 1 R3
|
|
LEI R3 R2 R1
|
|
JMPIF R1 l172
|
|
ABORT
|
|
l172: GET_VEC R0 R3 R1
|
|
PUSH R1
|
|
RET
|
|
:f_min_dTvi:FUN 1
|
|
IMMI 0 R2
|
|
BUILTIN array_Xd R0 R2
|
|
POP R1
|
|
LENGTH R0 R3
|
|
IMMI 1 R4
|
|
LEI R4 R3 R5
|
|
CALL FUN f_min_t_d1vi 1 R1
|
|
POP R6
|
|
PUSH R6
|
|
RET
|
|
:d_min_si:FUN 1
|
|
ISPAR R0 R1
|
|
JMPIF R1 l153
|
|
JMP l154
|
|
l153: TCALL FUN f_min_si 0
|
|
l154: TCALL FUN f_min_dTvi 1
|
|
:gecode_bin_packing_load:ROOT 4
|
|
:f_min_t_d1vi:FUN 1
|
|
IMMI 1 R1
|
|
IMMI 1 R3
|
|
LENGTH R0 R4
|
|
IMMI 0 R5
|
|
EQI R4 R5 R6
|
|
JMPIFNOT R6 l156
|
|
IMMI 0 R3
|
|
MOV R5 R2
|
|
JMP l155
|
|
l156: EQI R4 R1 R7
|
|
JMPIFNOT R7 l157
|
|
GET_ARRAY 1 R0 R1 R8 R9
|
|
MOV R9 R3
|
|
MOV R8 R2
|
|
JMP l155
|
|
l157: IMMI 2 R10
|
|
EQI R4 R10 R11
|
|
JMPIFNOT R11 l158
|
|
GET_ARRAY 1 R0 R1 R12 R13
|
|
GET_ARRAY 1 R0 R10 R14 R15
|
|
CALL FUN d_min_i_i 1 R12 R14
|
|
POP R16
|
|
IMMI 0 R17
|
|
JMPIFNOT R13 l163
|
|
MOV R15 R17
|
|
l163: MOV R17 R3
|
|
MOV R16 R2
|
|
JMP l155
|
|
l158: OPEN_AGGREGATION OTHER
|
|
BUILTIN infinity R1
|
|
POP R18
|
|
ITER_ARRAY R0 l166
|
|
l165: ITER_NEXT R21
|
|
LB R21 R19
|
|
LTI R19 R18 R20
|
|
JMPIFNOT R20 l164
|
|
MOV R19 R18
|
|
l164: JMP l165
|
|
l166: BUILTIN infinity R5
|
|
POP R22
|
|
ITER_ARRAY R0 l169
|
|
l168: ITER_NEXT R25
|
|
UB R25 R23
|
|
LTI R22 R23 R24
|
|
JMPIFNOT R24 l167
|
|
MOV R23 R22
|
|
l167: JMP l168
|
|
l169: OPEN_AGGREGATION VEC
|
|
PUSH R18
|
|
PUSH R22
|
|
CLOSE_AGGREGATION
|
|
POP R26
|
|
CALL ROOT mk_intvar 0 R26
|
|
POP R27
|
|
CALL ROOT array_int_minimum 1 R27 R0
|
|
PUSH R27
|
|
CLEAR R18 R27
|
|
CLOSE_AGGREGATION
|
|
POP R18
|
|
IMMI 0 R3
|
|
MOV R18 R2
|
|
l155: PUSH R2
|
|
RET
|
|
:f_min_t_t:FUN 2
|
|
IMMI 1 R2
|
|
IMMI 1 R4
|
|
LTI R0 R1 R5
|
|
JMPIFNOT R5 l171
|
|
IMMI 0 R4
|
|
MOV R0 R3
|
|
JMP l170
|
|
l171: IMMI 0 R4
|
|
MOV R1 R3
|
|
l170: PUSH R3
|
|
RET
|
|
:f_min_vi_vi:FUN 2
|
|
OPEN_AGGREGATION OTHER
|
|
LB R0 R2
|
|
LB R1 R3
|
|
CALL FUN d_min_i_i 0 R2 R3
|
|
POP R4
|
|
UB R0 R5
|
|
UB R1 R6
|
|
CALL FUN d_min_i_i 0 R5 R6
|
|
POP R7
|
|
OPEN_AGGREGATION VEC
|
|
PUSH R4
|
|
PUSH R7
|
|
CLOSE_AGGREGATION
|
|
POP R8
|
|
CALL ROOT mk_intvar 0 R8
|
|
POP R9
|
|
CALL ROOT int_min 1 R0 R1 R9
|
|
PUSH R9
|
|
CLEAR R2 R9
|
|
CLOSE_AGGREGATION
|
|
POP R2
|
|
PUSH R2
|
|
RET
|
|
:d_min_i_i:FUN 2
|
|
ISPAR R0 R2
|
|
JMPIF R2 l159
|
|
JMP l160
|
|
l159: ISPAR R1 R2
|
|
JMPIF R2 l161
|
|
JMP l162
|
|
l160: JMP l162
|
|
l161: TCALL FUN f_min_t_t 0
|
|
l162: TCALL FUN f_min_vi_vi 1
|
|
:array_int_minimum:ROOT 2
|
|
:int_min:ROOT 3
|
|
:int_lin_le:ROOT 3
|
|
:fzn_global_cardinality_low_up_closed:ROOT 4
|
|
:f_free_period:ROOT 0
|
|
LOAD_GLOBAL 14 R0
|
|
CALL FUN f_uniform_set_si 0 R0
|
|
POP R1
|
|
LOAD_GLOBAL 13 R2
|
|
ITER_ARRAY R2 l185
|
|
l184: ITER_NEXT R3
|
|
ITER_NEXT R4
|
|
ITER_RANGE R3 R4 l187
|
|
l186: ITER_NEXT R5
|
|
LOAD_GLOBAL 15 R7
|
|
GET_ARRAY 1 R7 R5 R8 R9
|
|
BUILTIN sol R8
|
|
POP R6
|
|
EQI R6 R1 R10
|
|
NOT R10 R10
|
|
IMMI 0 R11
|
|
JMPIFNOT R9 l188
|
|
MOV R10 R11
|
|
l188: DOM R8 R12
|
|
DOM R6 R13
|
|
INTERSECTION R12 R13 R12
|
|
ISEMPTY R12 R13
|
|
NOT R13 R13
|
|
SIMPLIFY_LIN R8 R6 0 R15 R16 R14
|
|
IMMI 1 R17
|
|
JMPIF R11 l189
|
|
NOT R9 R18
|
|
JMPIF R18 l189
|
|
NOT R13 R19
|
|
JMPIF R19 l189
|
|
CALL IMP f_pre_int_lin_eq_d1i_d1vi_i 1 R15 R16 R14
|
|
POP R20
|
|
MOV R20 R17
|
|
l189: POST R17
|
|
JMP l186
|
|
l187: JMP l184
|
|
l185: RET
|
|
:f_random_allocation:ROOT 0
|
|
LOAD_GLOBAL 13 R0
|
|
ITER_ARRAY R0 l178
|
|
l177: ITER_NEXT R1
|
|
ITER_NEXT R2
|
|
ITER_RANGE R1 R2 l180
|
|
l179: ITER_NEXT R3
|
|
IMMI 1 R5
|
|
IMMI 100 R6
|
|
BUILTIN uniform R5 R6
|
|
POP R4
|
|
IMMI 80 R7
|
|
LTI R4 R7 R8
|
|
LOAD_GLOBAL 15 R9
|
|
GET_ARRAY 1 R9 R3 R10 R11
|
|
BUILTIN sol R10
|
|
POP R12
|
|
DOM R10 R13
|
|
DOM R12 R14
|
|
INTERSECTION R13 R14 R13
|
|
ISEMPTY R13 R14
|
|
NOT R14 R14
|
|
SIMPLIFY_LIN R10 R12 0 R16 R17 R15
|
|
IMMI 1 R18
|
|
JMPIF R8 l181
|
|
NOT R11 R19
|
|
JMPIF R19 l181
|
|
NOT R14 R20
|
|
JMPIF R20 l181
|
|
CALL IMP f_pre_int_lin_eq_d1i_d1vi_i 1 R16 R17 R15
|
|
POP R21
|
|
MOV R21 R18
|
|
l181: POST R18
|
|
JMP l179
|
|
l180: JMP l177
|
|
l178: RET
|
|
:int_lin_eq_reif:ROOT 4
|
|
:f_uniform_set_si:FUN 1
|
|
IMMI 1 R1
|
|
IMMI 1 R3
|
|
IMMI 0 R4
|
|
IMMI 1 R5
|
|
LENGTH R0 R6
|
|
LTI R5 R6 R7
|
|
JMPIFNOT R7 l192
|
|
l191: INCI R4
|
|
GET_VEC R0 R5 R7
|
|
SUBI R4 R7 R4
|
|
INCI R5
|
|
GET_VEC R0 R5 R7
|
|
INCI R5
|
|
ADDI R4 R7 R4
|
|
LTI R5 R6 R7
|
|
JMPIF R7 l191
|
|
l192: CALL FUN d_max_si 0 R0
|
|
POP R8
|
|
CALL FUN d_min_si 0 R0
|
|
POP R9
|
|
SUBI R8 R9 R10
|
|
ADDI R10 R1 R11
|
|
EQI R4 R11 R12
|
|
JMPIFNOT R12 l195
|
|
BUILTIN uniform R9 R8
|
|
POP R13
|
|
IMMI 0 R3
|
|
MOV R13 R2
|
|
JMP l190
|
|
l195: BUILTIN uniform R1 R4
|
|
POP R14
|
|
OPEN_AGGREGATION VEC
|
|
ITER_ARRAY R0 l197
|
|
l196: ITER_NEXT R15
|
|
ITER_NEXT R16
|
|
ITER_RANGE R15 R16 l199
|
|
l198: ITER_NEXT R17
|
|
PUSH R17
|
|
JMP l198
|
|
l199: JMP l196
|
|
l197: CLEAR R15 R17
|
|
CLOSE_AGGREGATION
|
|
POP R15
|
|
GET_ARRAY 1 R15 R14 R16 R17
|
|
MOV R17 R3
|
|
MOV R16 R2
|
|
l190: PUSH R2
|
|
RET
|
|
:f_max_si:FUN 1
|
|
LENGTH R0 R2
|
|
IMMI 0 R3
|
|
LEI R3 R2 R1
|
|
JMPIF R1 l211
|
|
ABORT
|
|
l211: GET_VEC R0 R2 R1
|
|
PUSH R1
|
|
RET
|
|
:f_max_dTvi:FUN 1
|
|
IMMI 0 R2
|
|
BUILTIN array_Xd R0 R2
|
|
POP R1
|
|
LENGTH R0 R3
|
|
IMMI 1 R4
|
|
LEI R4 R3 R5
|
|
CALL FUN f_max_t_d1vi 1 R1
|
|
POP R6
|
|
PUSH R6
|
|
RET
|
|
:d_max_si:FUN 1
|
|
ISPAR R0 R1
|
|
JMPIF R1 l193
|
|
JMP l194
|
|
l193: TCALL FUN f_max_si 0
|
|
l194: TCALL FUN f_max_dTvi 1
|
|
:f_max_t_d1vi:FUN 1
|
|
IMMI 1 R1
|
|
IMMI 1 R3
|
|
LENGTH R0 R4
|
|
IMMI 0 R5
|
|
EQI R4 R5 R6
|
|
JMPIFNOT R6 l201
|
|
IMMI 0 R3
|
|
MOV R5 R2
|
|
JMP l200
|
|
l201: EQI R4 R1 R7
|
|
JMPIFNOT R7 l202
|
|
BUILTIN index_set R0 R1
|
|
POP R8
|
|
CALL FUN d_min_si 0 R8
|
|
POP R9
|
|
GET_ARRAY 1 R0 R9 R10 R11
|
|
MOV R11 R3
|
|
MOV R10 R2
|
|
JMP l200
|
|
l202: IMMI 2 R12
|
|
EQI R4 R12 R13
|
|
JMPIFNOT R13 l203
|
|
GET_ARRAY 1 R0 R1 R14 R15
|
|
GET_ARRAY 1 R0 R12 R16 R17
|
|
CALL FUN d_max_i_i 0 R14 R16
|
|
POP R18
|
|
IMMI 0 R19
|
|
JMPIFNOT R15 l204
|
|
MOV R17 R19
|
|
l204: MOV R19 R3
|
|
MOV R18 R2
|
|
JMP l200
|
|
l203: OPEN_AGGREGATION OTHER
|
|
BUILTIN infinity R1
|
|
POP R20
|
|
ITER_ARRAY R0 l207
|
|
l206: ITER_NEXT R23
|
|
LB R23 R21
|
|
LTI R21 R20 R22
|
|
JMPIFNOT R22 l205
|
|
MOV R21 R20
|
|
l205: JMP l206
|
|
l207: BUILTIN infinity R5
|
|
POP R24
|
|
ITER_ARRAY R0 l210
|
|
l209: ITER_NEXT R27
|
|
UB R27 R25
|
|
LTI R24 R25 R26
|
|
JMPIFNOT R26 l208
|
|
MOV R25 R24
|
|
l208: JMP l209
|
|
l210: OPEN_AGGREGATION VEC
|
|
PUSH R20
|
|
PUSH R24
|
|
CLOSE_AGGREGATION
|
|
POP R28
|
|
CALL ROOT mk_intvar 0 R28
|
|
POP R29
|
|
CALL ROOT array_int_maximum 1 R29 R0
|
|
PUSH R29
|
|
CLEAR R20 R29
|
|
CLOSE_AGGREGATION
|
|
POP R20
|
|
IMMI 0 R3
|
|
MOV R20 R2
|
|
l200: PUSH R2
|
|
RET
|
|
:array_int_maximum:ROOT 2
|
|
:int_times:ROOT 3
|
|
:int_sum:ROOT 2
|
|
:clause:ROOT 2
|
|
:clause:ROOT 2
|
|
:d_clause_d1b_d1b:ROOT 2
|
|
ISPAR R0 R2
|
|
JMPIF R2 l230
|
|
JMP l231
|
|
l230: ISPAR R1 R2
|
|
JMPIF R2 l232
|
|
JMP l233
|
|
l231: JMP l233
|
|
l232: TCALL ROOT clause 1
|
|
l233: TCALL ROOT clause 1
|
|
:bool_not:ROOT 2
|
|
:main:ROOT 0
|
|
OPEN_AGGREGATION OTHER
|
|
IMMI 1 R0
|
|
LOAD_GLOBAL 0 R1
|
|
OPEN_AGGREGATION VEC
|
|
PUSH R0
|
|
PUSH R1
|
|
CLOSE_AGGREGATION
|
|
POP R2
|
|
STORE_GLOBAL R2 13
|
|
LOAD_GLOBAL 1 R3
|
|
OPEN_AGGREGATION VEC
|
|
PUSH R0
|
|
PUSH R3
|
|
CLOSE_AGGREGATION
|
|
POP R4
|
|
STORE_GLOBAL R4 14
|
|
OPEN_AGGREGATION VEC
|
|
ITER_ARRAY R2 l3
|
|
l2: ITER_NEXT R7
|
|
ITER_NEXT R8
|
|
ITER_RANGE R7 R8 l5
|
|
l4: ITER_NEXT R9
|
|
CALL ROOT mk_intvar 0 R4
|
|
JMP l4
|
|
l5: JMP l2
|
|
l3: CLEAR R7 R9
|
|
CLOSE_AGGREGATION
|
|
POP R5
|
|
OPEN_AGGREGATION VEC
|
|
GET_VEC R2 R0 R6
|
|
PUSH R6
|
|
IMMI 2 R7
|
|
GET_VEC R2 R7 R6
|
|
PUSH R6
|
|
CLEAR R7 R7
|
|
CLOSE_AGGREGATION
|
|
POP R6
|
|
BUILTIN array_Xd R5 R6
|
|
POP R5
|
|
STORE_GLOBAL R5 15
|
|
BUILTIN infinite_domain
|
|
POP R7
|
|
CALL ROOT mk_intvar 0 R7
|
|
POP R8
|
|
STORE_GLOBAL R8 16
|
|
LOAD_GLOBAL 2 R9
|
|
OPEN_AGGREGATION VEC
|
|
PUSH R0
|
|
PUSH R9
|
|
CLOSE_AGGREGATION
|
|
POP R10
|
|
STORE_GLOBAL R10 17
|
|
LOAD_GLOBAL 4 R11
|
|
OPEN_AGGREGATION VEC
|
|
PUSH R0
|
|
PUSH R11
|
|
CLOSE_AGGREGATION
|
|
POP R12
|
|
STORE_GLOBAL R12 18
|
|
OPEN_AGGREGATION VEC
|
|
ITER_ARRAY R2 l7
|
|
l6: ITER_NEXT R13
|
|
ITER_NEXT R14
|
|
ITER_RANGE R13 R14 l9
|
|
l8: ITER_NEXT R15
|
|
LOAD_GLOBAL 8 R16
|
|
GET_ARRAY 1 R16 R15 R17 R18
|
|
PUSH R17
|
|
JMP l8
|
|
l9: JMP l6
|
|
l7: CLEAR R13 R18
|
|
CLOSE_AGGREGATION
|
|
POP R13
|
|
IMMI 0 R14
|
|
ITER_ARRAY R13 l11
|
|
l10: ITER_NEXT R15
|
|
ADDI R14 R15 R14
|
|
JMP l10
|
|
l11: STORE_GLOBAL R14 19
|
|
OPEN_AGGREGATION VEC
|
|
ITER_ARRAY R10 l13
|
|
l12: ITER_NEXT R16
|
|
ITER_NEXT R17
|
|
ITER_RANGE R16 R17 l15
|
|
l14: ITER_NEXT R18
|
|
LOAD_GLOBAL 3 R19
|
|
GET_ARRAY 1 R19 R18 R20 R21
|
|
OPEN_AGGREGATION VEC
|
|
ITER_ARRAY R20 l17
|
|
l16: ITER_NEXT R22
|
|
ITER_NEXT R23
|
|
ITER_RANGE R22 R23 l19
|
|
l18: ITER_NEXT R24
|
|
LOAD_GLOBAL 8 R25
|
|
GET_ARRAY 1 R25 R24 R26 R27
|
|
PUSH R26
|
|
JMP l18
|
|
l19: JMP l16
|
|
l17: CLEAR R22 R27
|
|
CLOSE_AGGREGATION
|
|
POP R22
|
|
IMMI 0 R23
|
|
ITER_ARRAY R22 l21
|
|
l20: ITER_NEXT R24
|
|
ADDI R23 R24 R23
|
|
JMP l20
|
|
l21: PUSH R23
|
|
JMP l14
|
|
l15: JMP l12
|
|
l13: CLEAR R16 R24
|
|
CLOSE_AGGREGATION
|
|
POP R16
|
|
STORE_GLOBAL R16 20
|
|
OPEN_AGGREGATION VEC
|
|
ITER_ARRAY R10 l23
|
|
l22: ITER_NEXT R17
|
|
ITER_NEXT R18
|
|
ITER_RANGE R17 R18 l25
|
|
l24: ITER_NEXT R19
|
|
GET_ARRAY 1 R16 R19 R20 R21
|
|
IMMI 0 R23
|
|
EQI R3 R23 R22
|
|
NOT R22 R22
|
|
JMPIFNOT R22 l26
|
|
DIVI R20 R3 R24
|
|
MOV R24 R23
|
|
l26: PUSH R23
|
|
JMP l24
|
|
l25: JMP l22
|
|
l23: CLEAR R17 R24
|
|
CLOSE_AGGREGATION
|
|
POP R17
|
|
STORE_GLOBAL R17 21
|
|
OPEN_AGGREGATION VEC
|
|
ITER_ARRAY R10 l28
|
|
l27: ITER_NEXT R18
|
|
ITER_NEXT R19
|
|
ITER_RANGE R18 R19 l30
|
|
l29: ITER_NEXT R20
|
|
GET_ARRAY 1 R16 R20 R21 R22
|
|
IMMI 0 R24
|
|
EQI R3 R24 R23
|
|
NOT R23 R23
|
|
JMPIFNOT R23 l31
|
|
DIVI R21 R3 R25
|
|
MOV R25 R24
|
|
l31: IMMI 1 R27
|
|
IMMI 0 R29
|
|
EQI R3 R29 R28
|
|
NOT R28 R28
|
|
JMPIFNOT R28 l33
|
|
MODI R21 R3 R30
|
|
MOV R30 R29
|
|
l33: IMMI 0 R31
|
|
IMMI 0 R32
|
|
JMPIFNOT R22 l34
|
|
MOV R28 R32
|
|
l34: EQI R29 R31 R33
|
|
IMMI 0 R34
|
|
JMPIFNOT R32 l35
|
|
MOV R33 R34
|
|
l35: JMPIFNOT R34 l36
|
|
IMMI 0 R27
|
|
MOV R31 R26
|
|
JMP l32
|
|
l36: IMMI 0 R27
|
|
MOV R0 R26
|
|
l32: ADDI R24 R26 R35
|
|
PUSH R35
|
|
JMP l29
|
|
l30: JMP l27
|
|
l28: CLEAR R18 R35
|
|
CLOSE_AGGREGATION
|
|
POP R18
|
|
STORE_GLOBAL R18 22
|
|
LOAD_GLOBAL 9 R19
|
|
OPEN_AGGREGATION VEC
|
|
PUSH R0
|
|
PUSH R19
|
|
CLOSE_AGGREGATION
|
|
POP R20
|
|
STORE_GLOBAL R20 23
|
|
IMMI 0 R21
|
|
OPEN_AGGREGATION VEC
|
|
PUSH R21
|
|
PUSH R14
|
|
CLOSE_AGGREGATION
|
|
POP R22
|
|
OPEN_AGGREGATION VEC
|
|
ITER_ARRAY R10 l38
|
|
l37: ITER_NEXT R25
|
|
ITER_NEXT R26
|
|
ITER_RANGE R25 R26 l40
|
|
l39: ITER_NEXT R27
|
|
ITER_ARRAY R4 l42
|
|
l41: ITER_NEXT R28
|
|
ITER_NEXT R29
|
|
ITER_RANGE R28 R29 l44
|
|
l43: ITER_NEXT R30
|
|
CALL ROOT mk_intvar 0 R22
|
|
JMP l43
|
|
l44: JMP l41
|
|
l42: JMP l39
|
|
l40: JMP l37
|
|
l38: CLEAR R25 R30
|
|
CLOSE_AGGREGATION
|
|
POP R23
|
|
OPEN_AGGREGATION VEC
|
|
GET_VEC R10 R0 R24
|
|
PUSH R24
|
|
IMMI 2 R25
|
|
GET_VEC R10 R25 R24
|
|
PUSH R24
|
|
GET_VEC R4 R0 R24
|
|
PUSH R24
|
|
GET_VEC R4 R25 R24
|
|
PUSH R24
|
|
CLEAR R25 R25
|
|
CLOSE_AGGREGATION
|
|
POP R24
|
|
BUILTIN array_Xd R23 R24
|
|
POP R23
|
|
STORE_GLOBAL R23 24
|
|
OPEN_AGGREGATION VEC
|
|
ITER_ARRAY R20 l46
|
|
l45: ITER_NEXT R25
|
|
ITER_NEXT R26
|
|
ITER_RANGE R25 R26 l48
|
|
l47: ITER_NEXT R27
|
|
LOAD_GLOBAL 10 R28
|
|
GET_ARRAY 2 R28 R27 R0 R29 R30
|
|
GET_ARRAY 1 R5 R29 R31 R32
|
|
IMMI 2 R33
|
|
GET_ARRAY 2 R28 R27 R33 R34 R35
|
|
DOM R31 R36
|
|
DOM R34 R37
|
|
INTERSECTION R36 R37 R36
|
|
ISEMPTY R36 R37
|
|
NOT R37 R37
|
|
SIMPLIFY_LIN R31 R34 0 R39 R40 R38
|
|
IMMI 0 R41
|
|
JMPIFNOT R30 l49
|
|
JMPIFNOT R32 l49
|
|
JMPIFNOT R35 l49
|
|
JMPIFNOT R37 l49
|
|
CALL FUN f_pre_int_lin_eq_d1i_d1vi_i 1 R39 R40 R38
|
|
POP R42
|
|
MOV R42 R41
|
|
l49: PUSH R41
|
|
JMP l47
|
|
l48: JMP l45
|
|
l46: CLEAR R25 R42
|
|
CLOSE_AGGREGATION
|
|
POP R25
|
|
LENGTH R25 R26
|
|
JMPIFNOT R26 l50
|
|
EQI R0 R26 R27
|
|
JMPIF R27 l51
|
|
CALL FUN f_sum_cc_dTvi 1 R25
|
|
POP R27
|
|
JMP l52
|
|
l50: IMMI 0 R27
|
|
JMP l52
|
|
l51: GET_VEC R25 R0 R27
|
|
l52: OPEN_AGGREGATION VEC
|
|
PUSH R21
|
|
PUSH R19
|
|
CLOSE_AGGREGATION
|
|
POP R28
|
|
INTERSECT_DOMAIN R27 R28 R29
|
|
STORE_GLOBAL R27 25
|
|
OPEN_AGGREGATION VEC
|
|
ITER_ARRAY R10 l54
|
|
l53: ITER_NEXT R32
|
|
ITER_NEXT R33
|
|
ITER_RANGE R32 R33 l56
|
|
l55: ITER_NEXT R34
|
|
ITER_ARRAY R4 l58
|
|
l57: ITER_NEXT R35
|
|
ITER_NEXT R36
|
|
ITER_RANGE R35 R36 l60
|
|
l59: ITER_NEXT R37
|
|
CALL ROOT mk_intvar 0 R22
|
|
JMP l59
|
|
l60: JMP l57
|
|
l58: JMP l55
|
|
l56: JMP l53
|
|
l54: CLEAR R32 R37
|
|
CLOSE_AGGREGATION
|
|
POP R30
|
|
OPEN_AGGREGATION VEC
|
|
GET_VEC R10 R0 R31
|
|
PUSH R31
|
|
IMMI 2 R32
|
|
GET_VEC R10 R32 R31
|
|
PUSH R31
|
|
GET_VEC R4 R0 R31
|
|
PUSH R31
|
|
GET_VEC R4 R32 R31
|
|
PUSH R31
|
|
CLEAR R32 R32
|
|
CLOSE_AGGREGATION
|
|
POP R31
|
|
BUILTIN array_Xd R30 R31
|
|
POP R30
|
|
STORE_GLOBAL R30 26
|
|
OPEN_AGGREGATION VEC
|
|
ITER_ARRAY R10 l62
|
|
l61: ITER_NEXT R32
|
|
ITER_NEXT R33
|
|
ITER_RANGE R32 R33 l64
|
|
l63: ITER_NEXT R34
|
|
ITER_ARRAY R4 l66
|
|
l65: ITER_NEXT R35
|
|
ITER_NEXT R36
|
|
ITER_RANGE R35 R36 l68
|
|
l67: ITER_NEXT R37
|
|
GET_ARRAY 2 R30 R34 R37 R38 R39
|
|
CALL FUN d_op_times_i_i 1 R38 R38
|
|
POP R40
|
|
PUSH R40
|
|
JMP l67
|
|
l68: JMP l65
|
|
l66: JMP l63
|
|
l64: JMP l61
|
|
l62: CLEAR R32 R40
|
|
CLOSE_AGGREGATION
|
|
POP R32
|
|
LENGTH R32 R33
|
|
JMPIFNOT R33 l75
|
|
EQI R0 R33 R34
|
|
JMPIF R34 l76
|
|
CALL FUN f_sum_cc_dTvi 1 R32
|
|
POP R34
|
|
JMP l77
|
|
l75: IMMI 0 R34
|
|
JMP l77
|
|
l76: GET_VEC R32 R0 R34
|
|
l77: STORE_GLOBAL R34 27
|
|
OPEN_AGGREGATION VEC
|
|
PUSH R8
|
|
CLOSE_AGGREGATION
|
|
POP R35
|
|
OPEN_AGGREGATION VEC
|
|
ITER_ARRAY R35 l79
|
|
l78: ITER_NEXT R37
|
|
PUSH R37
|
|
JMP l78
|
|
l79: ITER_ARRAY R5 l81
|
|
l80: ITER_NEXT R38
|
|
PUSH R38
|
|
JMP l80
|
|
l81: CLEAR R37 R38
|
|
CLOSE_AGGREGATION
|
|
POP R36
|
|
CALL ROOT output_this 1 R36
|
|
ITER_ARRAY R10 l83
|
|
l82: ITER_NEXT R37
|
|
ITER_NEXT R38
|
|
ITER_RANGE R37 R38 l85
|
|
l84: ITER_NEXT R39
|
|
LOAD_GLOBAL 3 R40
|
|
GET_ARRAY 1 R40 R39 R41 R42
|
|
OPEN_AGGREGATION VEC
|
|
ITER_ARRAY R41 l87
|
|
l86: ITER_NEXT R43
|
|
ITER_NEXT R44
|
|
ITER_RANGE R43 R44 l89
|
|
l88: ITER_NEXT R45
|
|
GET_ARRAY 1 R5 R45 R46 R47
|
|
PUSH R46
|
|
JMP l88
|
|
l89: JMP l86
|
|
l87: CLEAR R43 R47
|
|
CLOSE_AGGREGATION
|
|
POP R43
|
|
OPEN_AGGREGATION VEC
|
|
ITER_ARRAY R4 l91
|
|
l90: ITER_NEXT R44
|
|
ITER_NEXT R45
|
|
ITER_RANGE R44 R45 l93
|
|
l92: ITER_NEXT R46
|
|
PUSH R46
|
|
JMP l92
|
|
l93: JMP l90
|
|
l91: CLEAR R44 R46
|
|
CLOSE_AGGREGATION
|
|
POP R44
|
|
OPEN_AGGREGATION VEC
|
|
ITER_ARRAY R4 l95
|
|
l94: ITER_NEXT R45
|
|
ITER_NEXT R46
|
|
ITER_RANGE R45 R46 l97
|
|
l96: ITER_NEXT R47
|
|
LOAD_GLOBAL 6 R48
|
|
PUSH R48
|
|
JMP l96
|
|
l97: JMP l94
|
|
l95: CLEAR R45 R48
|
|
CLOSE_AGGREGATION
|
|
POP R45
|
|
OPEN_AGGREGATION VEC
|
|
ITER_ARRAY R4 l99
|
|
l98: ITER_NEXT R46
|
|
ITER_NEXT R47
|
|
ITER_RANGE R46 R47 l101
|
|
l100: ITER_NEXT R48
|
|
LOAD_GLOBAL 7 R49
|
|
PUSH R49
|
|
JMP l100
|
|
l101: JMP l98
|
|
l99: CLEAR R46 R49
|
|
CLOSE_AGGREGATION
|
|
POP R46
|
|
CALL ROOT f_global_cardinality_low_up_closed_d1vi_d1i_d1i_d1i 1 R43 R44 R45 R46
|
|
JMP l84
|
|
l85: JMP l82
|
|
l83: ITER_ARRAY R12 l103
|
|
l102: ITER_NEXT R47
|
|
ITER_NEXT R48
|
|
ITER_RANGE R47 R48 l105
|
|
l104: ITER_NEXT R49
|
|
LOAD_GLOBAL 5 R50
|
|
GET_ARRAY 2 R50 R49 R0 R51 R52
|
|
GET_ARRAY 1 R5 R51 R53 R54
|
|
IMMI 2 R55
|
|
GET_ARRAY 2 R50 R49 R55 R56 R57
|
|
GET_ARRAY 1 R5 R56 R58 R59
|
|
LB R53 R60
|
|
UB R58 R61
|
|
LTI R60 R61 R60
|
|
SIMPLIFY_LIN R53 R58 1 R62 R63 R64
|
|
POST R52
|
|
POST R54
|
|
POST R57
|
|
POST R59
|
|
POST R60
|
|
CALL ROOT f_pre_int_lin_le_d1i_d1vi_i 1 R62 R63 R64
|
|
JMP l104
|
|
l105: JMP l102
|
|
l103: ITER_ARRAY R10 l107
|
|
l106: ITER_NEXT R65
|
|
ITER_NEXT R66
|
|
ITER_RANGE R65 R66 l109
|
|
l108: ITER_NEXT R67
|
|
OPEN_AGGREGATION VEC
|
|
ITER_ARRAY R4 l111
|
|
l110: ITER_NEXT R68
|
|
ITER_NEXT R69
|
|
ITER_RANGE R68 R69 l113
|
|
l112: ITER_NEXT R70
|
|
GET_ARRAY 2 R23 R67 R70 R71 R72
|
|
PUSH R71
|
|
JMP l112
|
|
l113: JMP l110
|
|
l111: CLEAR R68 R72
|
|
CLOSE_AGGREGATION
|
|
POP R68
|
|
LOAD_GLOBAL 3 R69
|
|
GET_ARRAY 1 R69 R67 R70 R71
|
|
OPEN_AGGREGATION VEC
|
|
ITER_ARRAY R70 l115
|
|
l114: ITER_NEXT R72
|
|
ITER_NEXT R73
|
|
ITER_RANGE R72 R73 l117
|
|
l116: ITER_NEXT R74
|
|
GET_ARRAY 1 R5 R74 R75 R76
|
|
PUSH R75
|
|
JMP l116
|
|
l117: JMP l114
|
|
l115: CLEAR R72 R76
|
|
CLOSE_AGGREGATION
|
|
POP R72
|
|
OPEN_AGGREGATION VEC
|
|
ITER_ARRAY R70 l119
|
|
l118: ITER_NEXT R73
|
|
ITER_NEXT R74
|
|
ITER_RANGE R73 R74 l121
|
|
l120: ITER_NEXT R75
|
|
LOAD_GLOBAL 8 R76
|
|
GET_ARRAY 1 R76 R75 R77 R78
|
|
PUSH R77
|
|
JMP l120
|
|
l121: JMP l118
|
|
l119: CLEAR R73 R78
|
|
CLOSE_AGGREGATION
|
|
POP R73
|
|
CALL ROOT f_bin_packing_load_d1vi_d1vi_d1i 1 R68 R72 R73
|
|
JMP l108
|
|
l109: JMP l106
|
|
l107: ITER_ARRAY R10 l123
|
|
l122: ITER_NEXT R74
|
|
ITER_NEXT R75
|
|
ITER_RANGE R74 R75 l125
|
|
l124: ITER_NEXT R76
|
|
ITER_ARRAY R4 l127
|
|
l126: ITER_NEXT R77
|
|
ITER_NEXT R78
|
|
ITER_RANGE R77 R78 l129
|
|
l128: ITER_NEXT R79
|
|
GET_ARRAY 2 R30 R76 R79 R80 R81
|
|
GET_ARRAY 2 R23 R76 R79 R82 R83
|
|
GET_ARRAY 1 R18 R76 R84 R85
|
|
CALL FUN d_op_minus_i_i 1 R82 R84
|
|
POP R86
|
|
GET_ARRAY 1 R17 R76 R87 R88
|
|
CALL FUN d_op_minus_i_i 0 R87 R82
|
|
POP R89
|
|
CALL FUN d_max_i_i 1 R86 R89
|
|
POP R90
|
|
DOM R80 R91
|
|
DOM R90 R92
|
|
INTERSECTION R91 R92 R91
|
|
ISEMPTY R91 R92
|
|
NOT R92 R92
|
|
SIMPLIFY_LIN R80 R90 0 R94 R95 R93
|
|
POST R81
|
|
POST R83
|
|
POST R85
|
|
POST R88
|
|
POST R92
|
|
CALL ROOT f_pre_int_lin_eq_d1i_d1vi_i 1 R94 R95 R93
|
|
JMP l128
|
|
l129: JMP l126
|
|
l127: JMP l124
|
|
l125: JMP l122
|
|
l123: LOAD_GLOBAL 11 R96
|
|
CALL FUN d_op_times_i_i 0 R96 R34
|
|
POP R97
|
|
LOAD_GLOBAL 12 R98
|
|
CALL FUN d_op_times_i_i 0 R98 R27
|
|
POP R99
|
|
CALL FUN d_op_plus_i_i 1 R97 R99
|
|
POP R100
|
|
DOM R8 R101
|
|
DOM R100 R102
|
|
INTERSECTION R101 R102 R101
|
|
ISEMPTY R101 R102
|
|
NOT R102 R102
|
|
SIMPLIFY_LIN R8 R100 0 R104 R105 R103
|
|
POST R102
|
|
CALL ROOT f_pre_int_lin_eq_d1i_d1vi_i 1 R104 R105 R103
|
|
IMMI 2 R106
|
|
CALL ROOT solve_this 1 R21 R21 R5 R106 R0
|
|
CLEAR R0 R106
|
|
RET
|