1
0
This repository has been archived on 2025-03-06. You can view files and clone it, but cannot push or open issues or pull requests.

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