this repo has no description
at develop 26 kB view raw
1int: w1:: global_register(11); 2array [int] of set of int: courses_of:: global_register(3); 3int: n_precedences:: global_register(4); 4int: max_courses:: global_register(7); 5int: w2:: global_register(12); 6array [int,int] of int: undesirable:: global_register(10); 7int: n_curricula:: global_register(2); 8array [int,int] of int: precedes:: global_register(5); 9array [int] of int: course_load:: global_register(8); 10int: n_undesirables:: global_register(9); 11int: n_periods:: global_register(1); 12int: min_courses:: global_register(6); 13int: n_courses:: global_register(0); 14predicate solve_this(int: mode,var int: objective,array [int] of var int: x,int: varsel,int: valsel); 15predicate int_plus(var int: a,var int: b,var int: c); 16predicate int_max(var int: a,var int: b,var int: c); 17predicate int_minus(var int: x,var int: y,var int: z); 18predicate gecode_bin_packing_load(array [int] of var int: l,array [int] of var int: bin,array [int] of int: w,int: minIndex); 19predicate array_int_minimum(var int: m,array [int] of var int: x); 20predicate int_min(var int: a,var int: b,var int: c); 21predicate int_lin_le(array [int] of int: as,array [int] of var int: bs,int: c); 22predicate 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); 23predicate output_this(array [int] of var int: arr); 24predicate int_lin_eq_reif(array [int] of int: as,array [int] of var int: bs,int: c,var bool: r); 25predicate array_int_maximum(var int: m,array [int] of var int: x); 26predicate int_times(var int: a,var int: b,var int: c); 27predicate int_sum(array [int] of var int: xs,var int: x); 28predicate int_lin_eq(array [int] of int: as,array [int] of var int: bs,int: c); 29predicate clause(array [$T] of var bool: x,array [$T] of var bool: y); 30predicate clause(array [$T] of bool: x,array [$T] of bool: y); 31predicate bool_clause(array [int] of var bool: as,array [int] of var bool: bs); 32predicate bool_not(var bool: a,var bool: b); 33@@@@@@@@@@ 34:mk_intvar: 1 35:absent: 1 36:infinity: 1 37:boolean_domain: 0 38:infinite_domain: 0 39:uniform: 2 40:sol: 1 41:sort_by: 2 42:floor: 1 43:ceil: 1 44:slice_Xd: 3 45:array_Xd: 2 46:index_set: 2 47:internal_sort: 1 48:f_op_not_b:FUN 1 49NOT R0 R1 50PUSH R1 51RET 52:f_op_not_vb:FUN 1 53OPEN_AGGREGATION OTHER 54 BUILTIN boolean_domain 55 POP R1 56 CALL ROOT mk_intvar 0 R1 57 POP R2 58 CALL ROOT bool_not 1 R0 R2 59 PUSH R2 60 CLEAR R1 R2 61CLOSE_AGGREGATION 62POP R1 63PUSH R1 64RET 65:d_op_not_b:FUN 1 66ISPAR R0 R1 67JMPIF R1 l0 68JMP l1 69l0: TCALL FUN f_op_not_b 0 70l1: TCALL FUN f_op_not_vb 1 71:bool_clause:ROOT 2 72:bool_clause_reif:ROOT 3 73CALL FUN d_op_not_b 0 R2 74POP R3 75OPEN_AGGREGATION VEC 76 PUSH R3 77CLOSE_AGGREGATION 78POP R4 79OPEN_AGGREGATION VEC 80 ITER_ARRAY R1 l217 81 l216: ITER_NEXT R6 82 PUSH R6 83 JMP l216 84 l217: ITER_ARRAY R4 l219 85 l218: ITER_NEXT R7 86 PUSH R7 87 JMP l218 88 l219: CLEAR R6 R7 89CLOSE_AGGREGATION 90POP R5 91IMMI 1 R6 92BUILTIN index_set R0 R6 93POP R7 94ITER_ARRAY R7 l221 95l220: ITER_NEXT R8 96ITER_NEXT R9 97ITER_RANGE R8 R9 l223 98l222: ITER_NEXT R10 99GET_ARRAY 1 R0 R10 R11 R12 100OPEN_AGGREGATION OR 101 IMMI 0 R14 102 JMPIFNOT R12 l224 103 MOV R11 R14 104 l224: PUSH R14 105 PUSH R3 106 CLEAR R14 R14 107CLOSE_AGGREGATION 108POP R13 109POST R13 110JMP l222 111l223: JMP l220 112l221: IMMI 1 R14 113BUILTIN index_set R1 R14 114POP R15 115ITER_ARRAY R15 l226 116l225: ITER_NEXT R16 117ITER_NEXT R17 118ITER_RANGE R16 R17 l228 119l227: ITER_NEXT R18 120GET_ARRAY 1 R1 R18 R19 R20 121IMMI 1 R21 122NOT R20 R22 123JMPIF R22 l229 124OPEN_AGGREGATION OR 125 CALL FUN d_op_not_b 0 R19 126 POP R23 127 PUSH R23 128 PUSH R3 129 CLEAR R23 R23 130CLOSE_AGGREGATION 131POP R21 132l229: POST R21 133JMP l227 134l228: JMP l225 135l226: CALL ROOT d_clause_d1b_d1b 1 R0 R5 136RET 137:int_lin_eq:ROOT 3 138:int_lin_eq:FUN 3 139OPEN_AGGREGATION OTHER 140 BUILTIN boolean_domain 141 POP R3 142 CALL ROOT mk_intvar 0 R3 143 POP R4 144 CALL ROOT int_lin_eq_reif 1 R0 R1 R2 R4 145 PUSH R4 146 CLEAR R3 R4 147CLOSE_AGGREGATION 148POP R3 149PUSH R3 150RET 151:f_pre_int_lin_eq_d1i_d1vi_i:ROOT 3 152LENGTH R0 R4 153IMMI 0 R5 154EQI R4 R5 R6 155JMPIFNOT R6 l148 156EQI R2 R5 R7 157MOV R7 R3 158JMP l147 159l148: CALL ROOT int_lin_eq 1 R0 R1 R2 160IMMI 1 R8 161MOV R8 R3 162l147: POST R3 163RET 164:f_pre_int_lin_eq_d1i_d1vi_i:FUN 3 165LENGTH R0 R4 166IMMI 0 R5 167EQI R4 R5 R6 168JMPIFNOT R6 l215 169EQI R2 R5 R7 170MOV R7 R3 171JMP l214 172l215: CALL FUN int_lin_eq 1 R0 R1 R2 173POP R8 174MOV R8 R3 175l214: PUSH R3 176RET 177:f_pre_int_lin_eq_d1i_d1vi_i:IMP 3 178LENGTH R0 R4 179IMMI 0 R5 180EQI R4 R5 R6 181JMPIFNOT R6 l183 182EQI R2 R5 R7 183MOV R7 R3 184JMP l182 185l183: CALL FUN int_lin_eq 1 R0 R1 R2 186POP R8 187MOV R8 R3 188l182: PUSH R3 189RET 190:f_sum_cc_dTvi:FUN 1 191OPEN_AGGREGATION OTHER 192 IMMI 0 R2 193 BUILTIN array_Xd R0 R2 194 POP R1 195 BUILTIN infinite_domain 196 POP R3 197 CALL ROOT mk_intvar 0 R3 198 POP R4 199 CALL ROOT int_sum 1 R1 R4 200 PUSH R4 201 CLEAR R1 R4 202CLOSE_AGGREGATION 203POP R1 204PUSH R1 205RET 206:f_op_times_i_i:FUN 2 207MULI R0 R1 R2 208PUSH R2 209RET 210:f_op_times_i_vi:FUN 2 211IMMI 1 R2 212IMMI 1 R4 213EQI R0 R2 R5 214JMPIFNOT R5 l213 215IMMI 0 R4 216MOV R1 R3 217JMP l212 218l213: OPEN_AGGREGATION OTHER 219 BUILTIN infinite_domain 220 POP R6 221 CALL ROOT mk_intvar 0 R6 222 POP R7 223 CALL ROOT int_times 1 R0 R1 R7 224 PUSH R7 225 CLEAR R6 R7 226CLOSE_AGGREGATION 227POP R6 228IMMI 0 R4 229MOV R6 R3 230l212: PUSH R3 231RET 232:f_op_times_vi_i:FUN 2 233CALL FUN d_op_times_i_i 0 R1 R0 234POP R2 235PUSH R2 236RET 237:f_op_times_vi_vi:FUN 2 238OPEN_AGGREGATION OTHER 239 BUILTIN infinite_domain 240 POP R2 241 CALL ROOT mk_intvar 0 R2 242 POP R3 243 CALL ROOT int_times 1 R0 R1 R3 244 PUSH R3 245 CLEAR R2 R3 246CLOSE_AGGREGATION 247POP R2 248PUSH R2 249RET 250:d_op_times_i_i:FUN 2 251ISPAR R0 R2 252JMPIF R2 l69 253JMP l70 254l69: ISPAR R1 R2 255JMPIF R2 l71 256JMP l72 257l70: ISPAR R1 R2 258JMPIF R2 l73 259JMP l74 260l71: TCALL FUN f_op_times_i_i 0 261l72: TCALL FUN f_op_times_i_vi 1 262l73: TCALL FUN f_op_times_vi_i 1 263l74: TCALL FUN f_op_times_vi_vi 1 264:f_LNS_i:ROOT 1 265LOAD_GLOBAL 16 R1 266BUILTIN sol R1 267POP R2 268LB R1 R3 269UB R2 R4 270LTI R3 R4 R3 271SIMPLIFY_LIN R1 R2 1 R5 R6 R7 272IMMI 0 R9 273EQI R0 R9 R10 274JMPIFNOT R10 l176 275CALL ROOT f_free_period 1 276IMMI 1 R11 277MOV R11 R8 278JMP l175 279l176: CALL ROOT f_random_allocation 1 280IMMI 1 R12 281MOV R12 R8 282l175: POST R3 283CALL ROOT f_pre_int_lin_le_d1i_d1vi_i 1 R5 R6 R7 284POST R8 285RET 286:output_this:ROOT 1 287:f_global_cardinality_low_up_closed_d1vi_d1i_d1i_d1i:ROOT 4 288CALL ROOT fzn_global_cardinality_low_up_closed 1 R0 R1 R2 R3 289RET 290:f_pre_int_lin_le_d1i_d1vi_i:ROOT 3 291LENGTH R0 R4 292IMMI 0 R5 293EQI R4 R5 R6 294JMPIFNOT R6 l174 295LEI R5 R2 R7 296MOV R7 R3 297JMP l173 298l174: CALL ROOT int_lin_le 1 R0 R1 R2 299IMMI 1 R8 300MOV R8 R3 301l173: POST R3 302RET 303:f_bin_packing_load_d1vi_d1vi_d1i:ROOT 3 304CALL ROOT f_fzn_bin_packing_load_d1vi_d1vi_d1i 1 R0 R1 R2 305RET 306:f_op_minus_i_i:FUN 2 307SUBI R0 R1 R2 308PUSH R2 309RET 310:f_op_minus_vi_i:FUN 2 311IMMI 1 R2 312IMMI 1 R4 313IMMI 0 R5 314EQI R1 R5 R6 315JMPIFNOT R6 l152 316IMMI 0 R4 317MOV R0 R3 318JMP l151 319l152: OPEN_AGGREGATION OTHER 320 BUILTIN infinite_domain 321 POP R7 322 CALL ROOT mk_intvar 0 R7 323 POP R8 324 CALL ROOT int_minus 1 R0 R1 R8 325 PUSH R8 326 CLEAR R7 R8 327CLOSE_AGGREGATION 328POP R7 329IMMI 0 R4 330MOV R7 R3 331l151: PUSH R3 332RET 333:f_op_minus_vi_vi:FUN 2 334OPEN_AGGREGATION OTHER 335 BUILTIN infinite_domain 336 POP R2 337 CALL ROOT mk_intvar 0 R2 338 POP R3 339 CALL ROOT int_minus 1 R0 R1 R3 340 PUSH R3 341 CLEAR R2 R3 342CLOSE_AGGREGATION 343POP R2 344PUSH R2 345RET 346:d_op_minus_i_i:FUN 2 347ISPAR R0 R2 348JMPIF R2 l130 349JMP l131 350l130: ISPAR R1 R2 351JMPIF R2 l132 352JMP l133 353l131: ISPAR R1 R2 354JMPIF R2 l134 355JMP l133 356l132: TCALL FUN f_op_minus_i_i 0 357l133: TCALL FUN f_op_minus_vi_vi 1 358l134: TCALL FUN f_op_minus_vi_i 1 359:f_max_t_t:FUN 2 360IMMI 1 R2 361IMMI 1 R4 362LTI R1 R0 R5 363JMPIFNOT R5 l150 364IMMI 0 R4 365MOV R0 R3 366JMP l149 367l150: IMMI 0 R4 368MOV R1 R3 369l149: PUSH R3 370RET 371:f_max_vi_vi:FUN 2 372OPEN_AGGREGATION OTHER 373 LB R0 R2 374 LB R1 R3 375 CALL FUN d_max_i_i 0 R2 R3 376 POP R4 377 UB R0 R5 378 UB R1 R6 379 CALL FUN d_max_i_i 0 R5 R6 380 POP R7 381 OPEN_AGGREGATION VEC 382 PUSH R4 383 PUSH R7 384 CLOSE_AGGREGATION 385 POP R8 386 CALL ROOT mk_intvar 0 R8 387 POP R9 388 CALL ROOT int_max 1 R0 R1 R9 389 PUSH R9 390 CLEAR R2 R9 391CLOSE_AGGREGATION 392POP R2 393PUSH R2 394RET 395:d_max_i_i:FUN 2 396ISPAR R0 R2 397JMPIF R2 l135 398JMP l136 399l135: ISPAR R1 R2 400JMPIF R2 l137 401JMP l138 402l136: JMP l138 403l137: TCALL FUN f_max_t_t 0 404l138: TCALL FUN f_max_vi_vi 1 405:f_op_plus_i_i:FUN 2 406ADDI R0 R1 R2 407PUSH R2 408RET 409:f_op_plus_i_vi:FUN 2 410IMMI 1 R2 411IMMI 1 R4 412IMMI 0 R5 413EQI R0 R5 R6 414JMPIFNOT R6 l146 415IMMI 0 R4 416MOV R1 R3 417JMP l145 418l146: OPEN_AGGREGATION OTHER 419 BUILTIN infinite_domain 420 POP R7 421 CALL ROOT mk_intvar 0 R7 422 POP R8 423 CALL ROOT int_plus 1 R0 R1 R8 424 PUSH R8 425 CLEAR R7 R8 426CLOSE_AGGREGATION 427POP R7 428IMMI 0 R4 429MOV R7 R3 430l145: PUSH R3 431RET 432:f_op_plus_vi_i:FUN 2 433CALL FUN d_op_plus_i_i 0 R1 R0 434POP R2 435PUSH R2 436RET 437:f_op_plus_vi_vi:FUN 2 438OPEN_AGGREGATION OTHER 439 BUILTIN infinite_domain 440 POP R2 441 CALL ROOT mk_intvar 0 R2 442 POP R3 443 CALL ROOT int_plus 1 R0 R1 R3 444 PUSH R3 445 CLEAR R2 R3 446CLOSE_AGGREGATION 447POP R2 448PUSH R2 449RET 450:d_op_plus_i_i:FUN 2 451ISPAR R0 R2 452JMPIF R2 l139 453JMP l140 454l139: ISPAR R1 R2 455JMPIF R2 l141 456JMP l142 457l140: ISPAR R1 R2 458JMPIF R2 l143 459JMP l144 460l141: TCALL FUN f_op_plus_i_i 0 461l142: TCALL FUN f_op_plus_i_vi 1 462l143: TCALL FUN f_op_plus_vi_i 1 463l144: TCALL FUN f_op_plus_vi_vi 1 464:solve_this:ROOT 5 465:int_plus:ROOT 3 466:int_max:ROOT 3 467:int_minus:ROOT 3 468:f_fzn_bin_packing_load_d1vi_d1vi_d1i:ROOT 3 469IMMI 1 R3 470BUILTIN index_set R0 R3 471POP R4 472CALL FUN d_min_si 0 R4 473POP R5 474CALL ROOT gecode_bin_packing_load 1 R0 R1 R2 R5 475RET 476:f_min_si:FUN 1 477LENGTH R0 R2 478IMMI 1 R3 479LEI R3 R2 R1 480JMPIF R1 l172 481ABORT 482l172: GET_VEC R0 R3 R1 483PUSH R1 484RET 485:f_min_dTvi:FUN 1 486IMMI 0 R2 487BUILTIN array_Xd R0 R2 488POP R1 489LENGTH R0 R3 490IMMI 1 R4 491LEI R4 R3 R5 492CALL FUN f_min_t_d1vi 1 R1 493POP R6 494PUSH R6 495RET 496:d_min_si:FUN 1 497ISPAR R0 R1 498JMPIF R1 l153 499JMP l154 500l153: TCALL FUN f_min_si 0 501l154: TCALL FUN f_min_dTvi 1 502:gecode_bin_packing_load:ROOT 4 503:f_min_t_d1vi:FUN 1 504IMMI 1 R1 505IMMI 1 R3 506LENGTH R0 R4 507IMMI 0 R5 508EQI R4 R5 R6 509JMPIFNOT R6 l156 510IMMI 0 R3 511MOV R5 R2 512JMP l155 513l156: EQI R4 R1 R7 514JMPIFNOT R7 l157 515GET_ARRAY 1 R0 R1 R8 R9 516MOV R9 R3 517MOV R8 R2 518JMP l155 519l157: IMMI 2 R10 520EQI R4 R10 R11 521JMPIFNOT R11 l158 522GET_ARRAY 1 R0 R1 R12 R13 523GET_ARRAY 1 R0 R10 R14 R15 524CALL FUN d_min_i_i 1 R12 R14 525POP R16 526IMMI 0 R17 527JMPIFNOT R13 l163 528MOV R15 R17 529l163: MOV R17 R3 530MOV R16 R2 531JMP l155 532l158: OPEN_AGGREGATION OTHER 533 BUILTIN infinity R1 534 POP R18 535 ITER_ARRAY R0 l166 536 l165: ITER_NEXT R21 537 LB R21 R19 538 LTI R19 R18 R20 539 JMPIFNOT R20 l164 540 MOV R19 R18 541 l164: JMP l165 542 l166: BUILTIN infinity R5 543 POP R22 544 ITER_ARRAY R0 l169 545 l168: ITER_NEXT R25 546 UB R25 R23 547 LTI R22 R23 R24 548 JMPIFNOT R24 l167 549 MOV R23 R22 550 l167: JMP l168 551 l169: OPEN_AGGREGATION VEC 552 PUSH R18 553 PUSH R22 554 CLOSE_AGGREGATION 555 POP R26 556 CALL ROOT mk_intvar 0 R26 557 POP R27 558 CALL ROOT array_int_minimum 1 R27 R0 559 PUSH R27 560 CLEAR R18 R27 561CLOSE_AGGREGATION 562POP R18 563IMMI 0 R3 564MOV R18 R2 565l155: PUSH R2 566RET 567:f_min_t_t:FUN 2 568IMMI 1 R2 569IMMI 1 R4 570LTI R0 R1 R5 571JMPIFNOT R5 l171 572IMMI 0 R4 573MOV R0 R3 574JMP l170 575l171: IMMI 0 R4 576MOV R1 R3 577l170: PUSH R3 578RET 579:f_min_vi_vi:FUN 2 580OPEN_AGGREGATION OTHER 581 LB R0 R2 582 LB R1 R3 583 CALL FUN d_min_i_i 0 R2 R3 584 POP R4 585 UB R0 R5 586 UB R1 R6 587 CALL FUN d_min_i_i 0 R5 R6 588 POP R7 589 OPEN_AGGREGATION VEC 590 PUSH R4 591 PUSH R7 592 CLOSE_AGGREGATION 593 POP R8 594 CALL ROOT mk_intvar 0 R8 595 POP R9 596 CALL ROOT int_min 1 R0 R1 R9 597 PUSH R9 598 CLEAR R2 R9 599CLOSE_AGGREGATION 600POP R2 601PUSH R2 602RET 603:d_min_i_i:FUN 2 604ISPAR R0 R2 605JMPIF R2 l159 606JMP l160 607l159: ISPAR R1 R2 608JMPIF R2 l161 609JMP l162 610l160: JMP l162 611l161: TCALL FUN f_min_t_t 0 612l162: TCALL FUN f_min_vi_vi 1 613:array_int_minimum:ROOT 2 614:int_min:ROOT 3 615:int_lin_le:ROOT 3 616:fzn_global_cardinality_low_up_closed:ROOT 4 617:f_free_period:ROOT 0 618LOAD_GLOBAL 14 R0 619CALL FUN f_uniform_set_si 0 R0 620POP R1 621LOAD_GLOBAL 13 R2 622ITER_ARRAY R2 l185 623l184: ITER_NEXT R3 624ITER_NEXT R4 625ITER_RANGE R3 R4 l187 626l186: ITER_NEXT R5 627LOAD_GLOBAL 15 R7 628GET_ARRAY 1 R7 R5 R8 R9 629BUILTIN sol R8 630POP R6 631EQI R6 R1 R10 632NOT R10 R10 633IMMI 0 R11 634JMPIFNOT R9 l188 635MOV R10 R11 636l188: DOM R8 R12 637DOM R6 R13 638INTERSECTION R12 R13 R12 639ISEMPTY R12 R13 640NOT R13 R13 641SIMPLIFY_LIN R8 R6 0 R15 R16 R14 642IMMI 1 R17 643JMPIF R11 l189 644NOT R9 R18 645JMPIF R18 l189 646NOT R13 R19 647JMPIF R19 l189 648CALL IMP f_pre_int_lin_eq_d1i_d1vi_i 1 R15 R16 R14 649POP R20 650MOV R20 R17 651l189: POST R17 652JMP l186 653l187: JMP l184 654l185: RET 655:f_random_allocation:ROOT 0 656LOAD_GLOBAL 13 R0 657ITER_ARRAY R0 l178 658l177: ITER_NEXT R1 659ITER_NEXT R2 660ITER_RANGE R1 R2 l180 661l179: ITER_NEXT R3 662IMMI 1 R5 663IMMI 100 R6 664BUILTIN uniform R5 R6 665POP R4 666IMMI 80 R7 667LTI R4 R7 R8 668LOAD_GLOBAL 15 R9 669GET_ARRAY 1 R9 R3 R10 R11 670BUILTIN sol R10 671POP R12 672DOM R10 R13 673DOM R12 R14 674INTERSECTION R13 R14 R13 675ISEMPTY R13 R14 676NOT R14 R14 677SIMPLIFY_LIN R10 R12 0 R16 R17 R15 678IMMI 1 R18 679JMPIF R8 l181 680NOT R11 R19 681JMPIF R19 l181 682NOT R14 R20 683JMPIF R20 l181 684CALL IMP f_pre_int_lin_eq_d1i_d1vi_i 1 R16 R17 R15 685POP R21 686MOV R21 R18 687l181: POST R18 688JMP l179 689l180: JMP l177 690l178: RET 691:int_lin_eq_reif:ROOT 4 692:f_uniform_set_si:FUN 1 693IMMI 1 R1 694IMMI 1 R3 695IMMI 0 R4 696IMMI 1 R5 697LENGTH R0 R6 698LTI R5 R6 R7 699JMPIFNOT R7 l192 700l191: INCI R4 701GET_VEC R0 R5 R7 702SUBI R4 R7 R4 703INCI R5 704GET_VEC R0 R5 R7 705INCI R5 706ADDI R4 R7 R4 707LTI R5 R6 R7 708JMPIF R7 l191 709l192: CALL FUN d_max_si 0 R0 710POP R8 711CALL FUN d_min_si 0 R0 712POP R9 713SUBI R8 R9 R10 714ADDI R10 R1 R11 715EQI R4 R11 R12 716JMPIFNOT R12 l195 717BUILTIN uniform R9 R8 718POP R13 719IMMI 0 R3 720MOV R13 R2 721JMP l190 722l195: BUILTIN uniform R1 R4 723POP R14 724OPEN_AGGREGATION VEC 725 ITER_ARRAY R0 l197 726 l196: ITER_NEXT R15 727 ITER_NEXT R16 728 ITER_RANGE R15 R16 l199 729 l198: ITER_NEXT R17 730 PUSH R17 731 JMP l198 732 l199: JMP l196 733 l197: CLEAR R15 R17 734CLOSE_AGGREGATION 735POP R15 736GET_ARRAY 1 R15 R14 R16 R17 737MOV R17 R3 738MOV R16 R2 739l190: PUSH R2 740RET 741:f_max_si:FUN 1 742LENGTH R0 R2 743IMMI 0 R3 744LEI R3 R2 R1 745JMPIF R1 l211 746ABORT 747l211: GET_VEC R0 R2 R1 748PUSH R1 749RET 750:f_max_dTvi:FUN 1 751IMMI 0 R2 752BUILTIN array_Xd R0 R2 753POP R1 754LENGTH R0 R3 755IMMI 1 R4 756LEI R4 R3 R5 757CALL FUN f_max_t_d1vi 1 R1 758POP R6 759PUSH R6 760RET 761:d_max_si:FUN 1 762ISPAR R0 R1 763JMPIF R1 l193 764JMP l194 765l193: TCALL FUN f_max_si 0 766l194: TCALL FUN f_max_dTvi 1 767:f_max_t_d1vi:FUN 1 768IMMI 1 R1 769IMMI 1 R3 770LENGTH R0 R4 771IMMI 0 R5 772EQI R4 R5 R6 773JMPIFNOT R6 l201 774IMMI 0 R3 775MOV R5 R2 776JMP l200 777l201: EQI R4 R1 R7 778JMPIFNOT R7 l202 779BUILTIN index_set R0 R1 780POP R8 781CALL FUN d_min_si 0 R8 782POP R9 783GET_ARRAY 1 R0 R9 R10 R11 784MOV R11 R3 785MOV R10 R2 786JMP l200 787l202: IMMI 2 R12 788EQI R4 R12 R13 789JMPIFNOT R13 l203 790GET_ARRAY 1 R0 R1 R14 R15 791GET_ARRAY 1 R0 R12 R16 R17 792CALL FUN d_max_i_i 0 R14 R16 793POP R18 794IMMI 0 R19 795JMPIFNOT R15 l204 796MOV R17 R19 797l204: MOV R19 R3 798MOV R18 R2 799JMP l200 800l203: OPEN_AGGREGATION OTHER 801 BUILTIN infinity R1 802 POP R20 803 ITER_ARRAY R0 l207 804 l206: ITER_NEXT R23 805 LB R23 R21 806 LTI R21 R20 R22 807 JMPIFNOT R22 l205 808 MOV R21 R20 809 l205: JMP l206 810 l207: BUILTIN infinity R5 811 POP R24 812 ITER_ARRAY R0 l210 813 l209: ITER_NEXT R27 814 UB R27 R25 815 LTI R24 R25 R26 816 JMPIFNOT R26 l208 817 MOV R25 R24 818 l208: JMP l209 819 l210: OPEN_AGGREGATION VEC 820 PUSH R20 821 PUSH R24 822 CLOSE_AGGREGATION 823 POP R28 824 CALL ROOT mk_intvar 0 R28 825 POP R29 826 CALL ROOT array_int_maximum 1 R29 R0 827 PUSH R29 828 CLEAR R20 R29 829CLOSE_AGGREGATION 830POP R20 831IMMI 0 R3 832MOV R20 R2 833l200: PUSH R2 834RET 835:array_int_maximum:ROOT 2 836:int_times:ROOT 3 837:int_sum:ROOT 2 838:clause:ROOT 2 839:clause:ROOT 2 840:d_clause_d1b_d1b:ROOT 2 841ISPAR R0 R2 842JMPIF R2 l230 843JMP l231 844l230: ISPAR R1 R2 845JMPIF R2 l232 846JMP l233 847l231: JMP l233 848l232: TCALL ROOT clause 1 849l233: TCALL ROOT clause 1 850:bool_not:ROOT 2 851:main:ROOT 0 852OPEN_AGGREGATION OTHER 853 IMMI 1 R0 854 LOAD_GLOBAL 0 R1 855 OPEN_AGGREGATION VEC 856 PUSH R0 857 PUSH R1 858 CLOSE_AGGREGATION 859 POP R2 860 STORE_GLOBAL R2 13 861 LOAD_GLOBAL 1 R3 862 OPEN_AGGREGATION VEC 863 PUSH R0 864 PUSH R3 865 CLOSE_AGGREGATION 866 POP R4 867 STORE_GLOBAL R4 14 868 OPEN_AGGREGATION VEC 869 ITER_ARRAY R2 l3 870 l2: ITER_NEXT R7 871 ITER_NEXT R8 872 ITER_RANGE R7 R8 l5 873 l4: ITER_NEXT R9 874 CALL ROOT mk_intvar 0 R4 875 JMP l4 876 l5: JMP l2 877 l3: CLEAR R7 R9 878 CLOSE_AGGREGATION 879 POP R5 880 OPEN_AGGREGATION VEC 881 GET_VEC R2 R0 R6 882 PUSH R6 883 IMMI 2 R7 884 GET_VEC R2 R7 R6 885 PUSH R6 886 CLEAR R7 R7 887 CLOSE_AGGREGATION 888 POP R6 889 BUILTIN array_Xd R5 R6 890 POP R5 891 STORE_GLOBAL R5 15 892 BUILTIN infinite_domain 893 POP R7 894 CALL ROOT mk_intvar 0 R7 895 POP R8 896 STORE_GLOBAL R8 16 897 LOAD_GLOBAL 2 R9 898 OPEN_AGGREGATION VEC 899 PUSH R0 900 PUSH R9 901 CLOSE_AGGREGATION 902 POP R10 903 STORE_GLOBAL R10 17 904 LOAD_GLOBAL 4 R11 905 OPEN_AGGREGATION VEC 906 PUSH R0 907 PUSH R11 908 CLOSE_AGGREGATION 909 POP R12 910 STORE_GLOBAL R12 18 911 OPEN_AGGREGATION VEC 912 ITER_ARRAY R2 l7 913 l6: ITER_NEXT R13 914 ITER_NEXT R14 915 ITER_RANGE R13 R14 l9 916 l8: ITER_NEXT R15 917 LOAD_GLOBAL 8 R16 918 GET_ARRAY 1 R16 R15 R17 R18 919 PUSH R17 920 JMP l8 921 l9: JMP l6 922 l7: CLEAR R13 R18 923 CLOSE_AGGREGATION 924 POP R13 925 IMMI 0 R14 926 ITER_ARRAY R13 l11 927 l10: ITER_NEXT R15 928 ADDI R14 R15 R14 929 JMP l10 930 l11: STORE_GLOBAL R14 19 931 OPEN_AGGREGATION VEC 932 ITER_ARRAY R10 l13 933 l12: ITER_NEXT R16 934 ITER_NEXT R17 935 ITER_RANGE R16 R17 l15 936 l14: ITER_NEXT R18 937 LOAD_GLOBAL 3 R19 938 GET_ARRAY 1 R19 R18 R20 R21 939 OPEN_AGGREGATION VEC 940 ITER_ARRAY R20 l17 941 l16: ITER_NEXT R22 942 ITER_NEXT R23 943 ITER_RANGE R22 R23 l19 944 l18: ITER_NEXT R24 945 LOAD_GLOBAL 8 R25 946 GET_ARRAY 1 R25 R24 R26 R27 947 PUSH R26 948 JMP l18 949 l19: JMP l16 950 l17: CLEAR R22 R27 951 CLOSE_AGGREGATION 952 POP R22 953 IMMI 0 R23 954 ITER_ARRAY R22 l21 955 l20: ITER_NEXT R24 956 ADDI R23 R24 R23 957 JMP l20 958 l21: PUSH R23 959 JMP l14 960 l15: JMP l12 961 l13: CLEAR R16 R24 962 CLOSE_AGGREGATION 963 POP R16 964 STORE_GLOBAL R16 20 965 OPEN_AGGREGATION VEC 966 ITER_ARRAY R10 l23 967 l22: ITER_NEXT R17 968 ITER_NEXT R18 969 ITER_RANGE R17 R18 l25 970 l24: ITER_NEXT R19 971 GET_ARRAY 1 R16 R19 R20 R21 972 IMMI 0 R23 973 EQI R3 R23 R22 974 NOT R22 R22 975 JMPIFNOT R22 l26 976 DIVI R20 R3 R24 977 MOV R24 R23 978 l26: PUSH R23 979 JMP l24 980 l25: JMP l22 981 l23: CLEAR R17 R24 982 CLOSE_AGGREGATION 983 POP R17 984 STORE_GLOBAL R17 21 985 OPEN_AGGREGATION VEC 986 ITER_ARRAY R10 l28 987 l27: ITER_NEXT R18 988 ITER_NEXT R19 989 ITER_RANGE R18 R19 l30 990 l29: ITER_NEXT R20 991 GET_ARRAY 1 R16 R20 R21 R22 992 IMMI 0 R24 993 EQI R3 R24 R23 994 NOT R23 R23 995 JMPIFNOT R23 l31 996 DIVI R21 R3 R25 997 MOV R25 R24 998 l31: IMMI 1 R27 999 IMMI 0 R29 1000 EQI R3 R29 R28 1001 NOT R28 R28 1002 JMPIFNOT R28 l33 1003 MODI R21 R3 R30 1004 MOV R30 R29 1005 l33: IMMI 0 R31 1006 IMMI 0 R32 1007 JMPIFNOT R22 l34 1008 MOV R28 R32 1009 l34: EQI R29 R31 R33 1010 IMMI 0 R34 1011 JMPIFNOT R32 l35 1012 MOV R33 R34 1013 l35: JMPIFNOT R34 l36 1014 IMMI 0 R27 1015 MOV R31 R26 1016 JMP l32 1017 l36: IMMI 0 R27 1018 MOV R0 R26 1019 l32: ADDI R24 R26 R35 1020 PUSH R35 1021 JMP l29 1022 l30: JMP l27 1023 l28: CLEAR R18 R35 1024CLOSE_AGGREGATION 1025POP R18 1026STORE_GLOBAL R18 22 1027LOAD_GLOBAL 9 R19 1028OPEN_AGGREGATION VEC 1029 PUSH R0 1030 PUSH R19 1031CLOSE_AGGREGATION 1032POP R20 1033STORE_GLOBAL R20 23 1034IMMI 0 R21 1035OPEN_AGGREGATION VEC 1036 PUSH R21 1037 PUSH R14 1038CLOSE_AGGREGATION 1039POP R22 1040OPEN_AGGREGATION VEC 1041 ITER_ARRAY R10 l38 1042 l37: ITER_NEXT R25 1043 ITER_NEXT R26 1044 ITER_RANGE R25 R26 l40 1045 l39: ITER_NEXT R27 1046 ITER_ARRAY R4 l42 1047 l41: ITER_NEXT R28 1048 ITER_NEXT R29 1049 ITER_RANGE R28 R29 l44 1050 l43: ITER_NEXT R30 1051 CALL ROOT mk_intvar 0 R22 1052 JMP l43 1053 l44: JMP l41 1054 l42: JMP l39 1055 l40: JMP l37 1056 l38: CLEAR R25 R30 1057CLOSE_AGGREGATION 1058POP R23 1059OPEN_AGGREGATION VEC 1060 GET_VEC R10 R0 R24 1061 PUSH R24 1062 IMMI 2 R25 1063 GET_VEC R10 R25 R24 1064 PUSH R24 1065 GET_VEC R4 R0 R24 1066 PUSH R24 1067 GET_VEC R4 R25 R24 1068 PUSH R24 1069 CLEAR R25 R25 1070CLOSE_AGGREGATION 1071POP R24 1072BUILTIN array_Xd R23 R24 1073POP R23 1074STORE_GLOBAL R23 24 1075OPEN_AGGREGATION VEC 1076 ITER_ARRAY R20 l46 1077 l45: ITER_NEXT R25 1078 ITER_NEXT R26 1079 ITER_RANGE R25 R26 l48 1080 l47: ITER_NEXT R27 1081 LOAD_GLOBAL 10 R28 1082 GET_ARRAY 2 R28 R27 R0 R29 R30 1083 GET_ARRAY 1 R5 R29 R31 R32 1084 IMMI 2 R33 1085 GET_ARRAY 2 R28 R27 R33 R34 R35 1086 DOM R31 R36 1087 DOM R34 R37 1088 INTERSECTION R36 R37 R36 1089 ISEMPTY R36 R37 1090 NOT R37 R37 1091 SIMPLIFY_LIN R31 R34 0 R39 R40 R38 1092 IMMI 0 R41 1093 JMPIFNOT R30 l49 1094 JMPIFNOT R32 l49 1095 JMPIFNOT R35 l49 1096 JMPIFNOT R37 l49 1097 CALL FUN f_pre_int_lin_eq_d1i_d1vi_i 1 R39 R40 R38 1098 POP R42 1099 MOV R42 R41 1100 l49: PUSH R41 1101 JMP l47 1102 l48: JMP l45 1103 l46: CLEAR R25 R42 1104CLOSE_AGGREGATION 1105POP R25 1106LENGTH R25 R26 1107JMPIFNOT R26 l50 1108EQI R0 R26 R27 1109JMPIF R27 l51 1110CALL FUN f_sum_cc_dTvi 1 R25 1111POP R27 1112JMP l52 1113l50: IMMI 0 R27 1114JMP l52 1115l51: GET_VEC R25 R0 R27 1116l52: OPEN_AGGREGATION VEC 1117 PUSH R21 1118 PUSH R19 1119CLOSE_AGGREGATION 1120POP R28 1121INTERSECT_DOMAIN R27 R28 R29 1122STORE_GLOBAL R27 25 1123OPEN_AGGREGATION VEC 1124 ITER_ARRAY R10 l54 1125 l53: ITER_NEXT R32 1126 ITER_NEXT R33 1127 ITER_RANGE R32 R33 l56 1128 l55: ITER_NEXT R34 1129 ITER_ARRAY R4 l58 1130 l57: ITER_NEXT R35 1131 ITER_NEXT R36 1132 ITER_RANGE R35 R36 l60 1133 l59: ITER_NEXT R37 1134 CALL ROOT mk_intvar 0 R22 1135 JMP l59 1136 l60: JMP l57 1137 l58: JMP l55 1138 l56: JMP l53 1139 l54: CLEAR R32 R37 1140CLOSE_AGGREGATION 1141POP R30 1142OPEN_AGGREGATION VEC 1143 GET_VEC R10 R0 R31 1144 PUSH R31 1145 IMMI 2 R32 1146 GET_VEC R10 R32 R31 1147 PUSH R31 1148 GET_VEC R4 R0 R31 1149 PUSH R31 1150 GET_VEC R4 R32 R31 1151 PUSH R31 1152 CLEAR R32 R32 1153CLOSE_AGGREGATION 1154POP R31 1155BUILTIN array_Xd R30 R31 1156POP R30 1157STORE_GLOBAL R30 26 1158OPEN_AGGREGATION VEC 1159 ITER_ARRAY R10 l62 1160 l61: ITER_NEXT R32 1161 ITER_NEXT R33 1162 ITER_RANGE R32 R33 l64 1163 l63: ITER_NEXT R34 1164 ITER_ARRAY R4 l66 1165 l65: ITER_NEXT R35 1166 ITER_NEXT R36 1167 ITER_RANGE R35 R36 l68 1168 l67: ITER_NEXT R37 1169 GET_ARRAY 2 R30 R34 R37 R38 R39 1170 CALL FUN d_op_times_i_i 1 R38 R38 1171 POP R40 1172 PUSH R40 1173 JMP l67 1174 l68: JMP l65 1175 l66: JMP l63 1176 l64: JMP l61 1177 l62: CLEAR R32 R40 1178CLOSE_AGGREGATION 1179POP R32 1180LENGTH R32 R33 1181JMPIFNOT R33 l75 1182EQI R0 R33 R34 1183JMPIF R34 l76 1184CALL FUN f_sum_cc_dTvi 1 R32 1185POP R34 1186JMP l77 1187l75: IMMI 0 R34 1188JMP l77 1189l76: GET_VEC R32 R0 R34 1190l77: STORE_GLOBAL R34 27 1191OPEN_AGGREGATION VEC 1192 PUSH R8 1193CLOSE_AGGREGATION 1194POP R35 1195OPEN_AGGREGATION VEC 1196 ITER_ARRAY R35 l79 1197 l78: ITER_NEXT R37 1198 PUSH R37 1199 JMP l78 1200 l79: ITER_ARRAY R5 l81 1201 l80: ITER_NEXT R38 1202 PUSH R38 1203 JMP l80 1204 l81: CLEAR R37 R38 1205CLOSE_AGGREGATION 1206POP R36 1207CALL ROOT output_this 1 R36 1208ITER_ARRAY R10 l83 1209l82: ITER_NEXT R37 1210ITER_NEXT R38 1211ITER_RANGE R37 R38 l85 1212l84: ITER_NEXT R39 1213LOAD_GLOBAL 3 R40 1214GET_ARRAY 1 R40 R39 R41 R42 1215OPEN_AGGREGATION VEC 1216 ITER_ARRAY R41 l87 1217 l86: ITER_NEXT R43 1218 ITER_NEXT R44 1219 ITER_RANGE R43 R44 l89 1220 l88: ITER_NEXT R45 1221 GET_ARRAY 1 R5 R45 R46 R47 1222 PUSH R46 1223 JMP l88 1224 l89: JMP l86 1225 l87: CLEAR R43 R47 1226CLOSE_AGGREGATION 1227POP R43 1228OPEN_AGGREGATION VEC 1229 ITER_ARRAY R4 l91 1230 l90: ITER_NEXT R44 1231 ITER_NEXT R45 1232 ITER_RANGE R44 R45 l93 1233 l92: ITER_NEXT R46 1234 PUSH R46 1235 JMP l92 1236 l93: JMP l90 1237 l91: CLEAR R44 R46 1238CLOSE_AGGREGATION 1239POP R44 1240OPEN_AGGREGATION VEC 1241 ITER_ARRAY R4 l95 1242 l94: ITER_NEXT R45 1243 ITER_NEXT R46 1244 ITER_RANGE R45 R46 l97 1245 l96: ITER_NEXT R47 1246 LOAD_GLOBAL 6 R48 1247 PUSH R48 1248 JMP l96 1249 l97: JMP l94 1250 l95: CLEAR R45 R48 1251CLOSE_AGGREGATION 1252POP R45 1253OPEN_AGGREGATION VEC 1254 ITER_ARRAY R4 l99 1255 l98: ITER_NEXT R46 1256 ITER_NEXT R47 1257 ITER_RANGE R46 R47 l101 1258 l100: ITER_NEXT R48 1259 LOAD_GLOBAL 7 R49 1260 PUSH R49 1261 JMP l100 1262 l101: JMP l98 1263 l99: CLEAR R46 R49 1264CLOSE_AGGREGATION 1265POP R46 1266CALL ROOT f_global_cardinality_low_up_closed_d1vi_d1i_d1i_d1i 1 R43 R44 R45 R46 1267JMP l84 1268l85: JMP l82 1269l83: ITER_ARRAY R12 l103 1270l102: ITER_NEXT R47 1271ITER_NEXT R48 1272ITER_RANGE R47 R48 l105 1273l104: ITER_NEXT R49 1274LOAD_GLOBAL 5 R50 1275GET_ARRAY 2 R50 R49 R0 R51 R52 1276GET_ARRAY 1 R5 R51 R53 R54 1277IMMI 2 R55 1278GET_ARRAY 2 R50 R49 R55 R56 R57 1279GET_ARRAY 1 R5 R56 R58 R59 1280LB R53 R60 1281UB R58 R61 1282LTI R60 R61 R60 1283SIMPLIFY_LIN R53 R58 1 R62 R63 R64 1284POST R52 1285POST R54 1286POST R57 1287POST R59 1288POST R60 1289CALL ROOT f_pre_int_lin_le_d1i_d1vi_i 1 R62 R63 R64 1290JMP l104 1291l105: JMP l102 1292l103: ITER_ARRAY R10 l107 1293l106: ITER_NEXT R65 1294ITER_NEXT R66 1295ITER_RANGE R65 R66 l109 1296l108: ITER_NEXT R67 1297OPEN_AGGREGATION VEC 1298 ITER_ARRAY R4 l111 1299 l110: ITER_NEXT R68 1300 ITER_NEXT R69 1301 ITER_RANGE R68 R69 l113 1302 l112: ITER_NEXT R70 1303 GET_ARRAY 2 R23 R67 R70 R71 R72 1304 PUSH R71 1305 JMP l112 1306 l113: JMP l110 1307 l111: CLEAR R68 R72 1308CLOSE_AGGREGATION 1309POP R68 1310LOAD_GLOBAL 3 R69 1311GET_ARRAY 1 R69 R67 R70 R71 1312OPEN_AGGREGATION VEC 1313 ITER_ARRAY R70 l115 1314 l114: ITER_NEXT R72 1315 ITER_NEXT R73 1316 ITER_RANGE R72 R73 l117 1317 l116: ITER_NEXT R74 1318 GET_ARRAY 1 R5 R74 R75 R76 1319 PUSH R75 1320 JMP l116 1321 l117: JMP l114 1322 l115: CLEAR R72 R76 1323CLOSE_AGGREGATION 1324POP R72 1325OPEN_AGGREGATION VEC 1326 ITER_ARRAY R70 l119 1327 l118: ITER_NEXT R73 1328 ITER_NEXT R74 1329 ITER_RANGE R73 R74 l121 1330 l120: ITER_NEXT R75 1331 LOAD_GLOBAL 8 R76 1332 GET_ARRAY 1 R76 R75 R77 R78 1333 PUSH R77 1334 JMP l120 1335 l121: JMP l118 1336 l119: CLEAR R73 R78 1337CLOSE_AGGREGATION 1338POP R73 1339CALL ROOT f_bin_packing_load_d1vi_d1vi_d1i 1 R68 R72 R73 1340JMP l108 1341l109: JMP l106 1342l107: ITER_ARRAY R10 l123 1343l122: ITER_NEXT R74 1344ITER_NEXT R75 1345ITER_RANGE R74 R75 l125 1346l124: ITER_NEXT R76 1347ITER_ARRAY R4 l127 1348l126: ITER_NEXT R77 1349ITER_NEXT R78 1350ITER_RANGE R77 R78 l129 1351l128: ITER_NEXT R79 1352GET_ARRAY 2 R30 R76 R79 R80 R81 1353GET_ARRAY 2 R23 R76 R79 R82 R83 1354GET_ARRAY 1 R18 R76 R84 R85 1355CALL FUN d_op_minus_i_i 1 R82 R84 1356POP R86 1357GET_ARRAY 1 R17 R76 R87 R88 1358CALL FUN d_op_minus_i_i 0 R87 R82 1359POP R89 1360CALL FUN d_max_i_i 1 R86 R89 1361POP R90 1362DOM R80 R91 1363DOM R90 R92 1364INTERSECTION R91 R92 R91 1365ISEMPTY R91 R92 1366NOT R92 R92 1367SIMPLIFY_LIN R80 R90 0 R94 R95 R93 1368POST R81 1369POST R83 1370POST R85 1371POST R88 1372POST R92 1373CALL ROOT f_pre_int_lin_eq_d1i_d1vi_i 1 R94 R95 R93 1374JMP l128 1375l129: JMP l126 1376l127: JMP l124 1377l125: JMP l122 1378l123: LOAD_GLOBAL 11 R96 1379CALL FUN d_op_times_i_i 0 R96 R34 1380POP R97 1381LOAD_GLOBAL 12 R98 1382CALL FUN d_op_times_i_i 0 R98 R27 1383POP R99 1384CALL FUN d_op_plus_i_i 1 R97 R99 1385POP R100 1386DOM R8 R101 1387DOM R100 R102 1388INTERSECTION R101 R102 R101 1389ISEMPTY R101 R102 1390NOT R102 R102 1391SIMPLIFY_LIN R8 R100 0 R104 R105 R103 1392POST R102 1393CALL ROOT f_pre_int_lin_eq_d1i_d1vi_i 1 R104 R105 R103 1394IMMI 2 R106 1395CALL ROOT solve_this 1 R21 R21 R5 R106 R0 1396CLEAR R0 R106 1397RET