// File: canzarlab[P]Trajan/src/LPInt.cpp
// Function: LPInt::Solve(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>)
void LPInt::Solve(string filename, string outScoreFile)
{
    int cnt = 1;
    for (int i = 0; cnt; i++)
    {
        Timer T_lp, T_cross, T_indep;
        T_lp.start();
        SolveLP();
        WriteSolution(filename);
        T_lp.stop();
        clog << ">>> Time for solve: \t\t" << T_lp.secs() << " secs" << endl;
        if (cf == 0)
            break;

        vector<ii> E;
        for (size_t i = 0; i < K.size(); i++)
            for (size_t j = 0; j < K[i].size(); j++)
                if (K[i][j] != -1 && x(K[i][j]) > 1-1e-1)
                    E.emplace_back(i, j);

        cnt = 0;
        for (int i = 0; i < E.size(); ++i)
            for (int j = i + 1; j < E.size(); ++j)
                if (!CC(E[i], E[j]))
                    AddConstraint(E[i], E[j]), cnt++;
        clog << "Added " << cnt << " rows." << endl;
    }
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x1e0, %rsp            # imm = 0x1E0
movq %rsi, -0x150(%rbp)
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movq %rdx, -0x18(%rbp)
movq -0x8(%rbp), %rax
movq %rax, -0x148(%rbp)
movl $0x1, -0x1c(%rbp)
movl $0x0, -0x20(%rbp)
cmpl $0x0, -0x1c(%rbp)
je 0xdcf8e
leaq -0x60(%rbp), %rdi
movq %rdi, -0x160(%rbp)
callq 0xeb30
leaq -0xa0(%rbp), %rdi
callq 0xeb30
leaq -0xe0(%rbp), %rdi
callq 0xeb30
movq -0x160(%rbp), %rdi
callq 0xeb50
movq -0x148(%rbp), %rdi
movq (%rdi), %rax
movq 0x20(%rax), %rax
callq *%rax
movq -0x150(%rbp), %rsi
leaq -0x100(%rbp), %rdi
movq %rdi, -0x158(%rbp)
callq 0xa190
movq -0x148(%rbp), %rdi
movq -0x158(%rbp), %rsi
movq (%rdi), %rax
movq 0x18(%rax), %rax
callq *%rax
jmp 0xdcb78
leaq -0x100(%rbp), %rdi
callq 0xa8d8
leaq -0x60(%rbp), %rdi
callq 0xf350
movq 0xc43bc(%rip), %rdi     # 0x1a0f50
leaq 0x4d629(%rip), %rsi     # 0x12a1c4
callq 0xa440
movq %rax, -0x168(%rbp)
leaq -0x60(%rbp), %rdi
callq 0xf3b0
movq -0x168(%rbp), %rdi
callq 0xa340
movq %rax, %rdi
leaq 0x2e6a6(%rip), %rsi     # 0x10b26c
callq 0xa440
movq %rax, %rdi
movq 0xc438b(%rip), %rsi     # 0x1a0f60
callq 0xa4a0
leaq 0xc48ff(%rip), %rax     # 0x1a14e0
cmpl $0x0, (%rax)
jne 0xdcc0e
jmp 0xdcf8e
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x108(%rbp)
movl %eax, -0x10c(%rbp)
leaq -0x100(%rbp), %rdi
callq 0xa8d8
jmp 0xdcf97
leaq -0x128(%rbp), %rdi
callq 0xdd8c0
movq $0x0, -0x130(%rbp)
movq -0x148(%rbp), %rdi
movq -0x130(%rbp), %rax
movq %rax, -0x170(%rbp)
addq $0xe0, %rdi
callq 0x9b070
movq %rax, %rcx
movq -0x170(%rbp), %rax
cmpq %rcx, %rax
jae 0xdcdb6
movq $0x0, -0x138(%rbp)
movq -0x148(%rbp), %rdi
movq -0x138(%rbp), %rax
movq %rax, -0x178(%rbp)
addq $0xe0, %rdi
movq -0x130(%rbp), %rsi
callq 0x993b0
movq %rax, %rdi
callq 0x1be50
movq %rax, %rcx
movq -0x178(%rbp), %rax
cmpq %rcx, %rax
jae 0xdcd9d
movq -0x148(%rbp), %rdi
addq $0xe0, %rdi
movq -0x130(%rbp), %rsi
callq 0x993b0
movq %rax, %rdi
movq -0x138(%rbp), %rsi
callq 0x145d0
cmpl $-0x1, (%rax)
je 0xdcd84
movq -0x148(%rbp), %rdi
movq %rdi, %rax
addq $0xc0, %rax
movq %rax, -0x188(%rbp)
addq $0xe0, %rdi
movq -0x130(%rbp), %rsi
callq 0x993b0
movq %rax, %rdi
movq -0x138(%rbp), %rsi
callq 0x145d0
movq -0x188(%rbp), %rdi
movslq (%rax), %rsi
callq 0x145f0
movq %rax, -0x180(%rbp)
jmp 0xdcd2a
movq -0x180(%rbp), %rax
movsd (%rax), %xmm0
movsd 0x30f3b(%rip), %xmm1    # 0x10dc78
ucomisd %xmm1, %xmm0
jbe 0xdcd84
leaq -0x128(%rbp), %rdi
leaq -0x130(%rbp), %rsi
leaq -0x138(%rbp), %rdx
callq 0xdd8e0
jmp 0xdcd5f
jmp 0xdcd84
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x108(%rbp)
movl %eax, -0x10c(%rbp)
leaq -0x128(%rbp), %rdi
callq 0xdd9a0
jmp 0xdcf97
jmp 0xdcd86
movq -0x138(%rbp), %rax
addq $0x1, %rax
movq %rax, -0x138(%rbp)
jmp 0xdcc64
jmp 0xdcd9f
movq -0x130(%rbp), %rax
addq $0x1, %rax
movq %rax, -0x130(%rbp)
jmp 0xdcc25
movl $0x0, -0x1c(%rbp)
movl $0x0, -0x13c(%rbp)
movslq -0x13c(%rbp), %rax
movq %rax, -0x190(%rbp)
leaq -0x128(%rbp), %rdi
callq 0xdd960
movq %rax, %rcx
movq -0x190(%rbp), %rax
cmpq %rcx, %rax
jae 0xdcf0f
movl -0x13c(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x140(%rbp)
movslq -0x140(%rbp), %rax
movq %rax, -0x198(%rbp)
leaq -0x128(%rbp), %rdi
callq 0xdd960
movq %rax, %rcx
movq -0x198(%rbp), %rax
cmpq %rcx, %rax
jae 0xdcef9
movslq -0x13c(%rbp), %rsi
leaq -0x128(%rbp), %rdi
movq %rdi, -0x1b0(%rbp)
callq 0xdd980
movq -0x1b0(%rbp), %rdi
movq %rax, -0x1a8(%rbp)
movslq -0x140(%rbp), %rsi
callq 0xdd980
movq -0x148(%rbp), %rdi
movq -0x1a8(%rbp), %rsi
movq %rax, %rdx
callq 0xdcfb0
movb %al, -0x199(%rbp)
jmp 0xdce82
movb -0x199(%rbp), %al
testb $0x1, %al
jne 0xdcee3
jmp 0xdce8e
movslq -0x13c(%rbp), %rsi
leaq -0x128(%rbp), %rdi
movq %rdi, -0x1c0(%rbp)
callq 0xdd980
movq -0x1c0(%rbp), %rdi
movq %rax, -0x1b8(%rbp)
movslq -0x140(%rbp), %rsi
callq 0xdd980
movq -0x148(%rbp), %rdi
movq -0x1b8(%rbp), %rsi
movq %rax, %rdx
callq 0xdd030
jmp 0xdceda
movl -0x1c(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x1c(%rbp)
jmp 0xdcee5
movl -0x140(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x140(%rbp)
jmp 0xdce03
jmp 0xdcefb
movl -0x13c(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x13c(%rbp)
jmp 0xdcdc7
movq 0xc403a(%rip), %rdi     # 0x1a0f50
leaq 0x4d311(%rip), %rsi     # 0x12a22e
callq 0xa440
movq %rax, -0x1c8(%rbp)
jmp 0xdcf2b
movq -0x1c8(%rbp), %rdi
movl -0x1c(%rbp), %esi
callq 0xa790
movq %rax, -0x1d0(%rbp)
jmp 0xdcf43
movq -0x1d0(%rbp), %rdi
leaq 0x4d2e4(%rip), %rsi     # 0x12a235
callq 0xa440
movq %rax, -0x1d8(%rbp)
jmp 0xdcf5f
movq -0x1d8(%rbp), %rdi
movq 0xc3ff3(%rip), %rsi     # 0x1a0f60
callq 0xa4a0
jmp 0xdcf74
leaq -0x128(%rbp), %rdi
callq 0xdd9a0
movl -0x20(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x20(%rbp)
jmp 0xdcaf7
addq $0x1e0, %rsp            # imm = 0x1E0
popq %rbp
retq
movq -0x108(%rbp), %rdi
callq 0xa7c0
nopw %cs:(%rax,%rax)