// File: mororo18[P]simplex-method/src/model.cpp
// Function: Model::~Model()
Model::~Model(){

    type.clear();

    solution_primal.clear();
    solution_dual.clear();

    delete main_func;

    cstr_vec.clear();
    cstr_vec_new.clear();

    for(int i = 0; i < tableau.size(); i++){
        tableau[i].clear();
    }
    tableau.clear();
    for(int i = 0; i < solution_tableau.size(); i++){
        solution_tableau[i].clear();
    }
    solution_tableau.clear();

    solution_primal.clear();
    solution_primal_mod.clear();
    solution_dual.clear();
    solution_dual_mod.clear();

    b_opt.clear();
    b_range.clear();
    b_range_mod.clear();
    c_range.clear();
    c_range_mod.clear();
    I_index.clear();
    inverse_matrix.clear();

    original_coef.clear();
    basic_coef.clear();

    output_model.clear();
    output_model_mod.clear();
    output_solution.clear();
    output_solution_mod.clear();
    output_analysis.clear();
    output_analysis_mod.clear();
}

// Assembly:
subq $0x38, %rsp
movq %rdi, 0x30(%rsp)
movq 0x30(%rsp), %rdi
movq %rdi, 0x18(%rsp)
addq $0x8, %rdi
callq 0x2260
movq 0x18(%rsp), %rdi
addq $0xb8, %rdi
callq 0x10720
movq 0x18(%rsp), %rdi
addq $0xe8, %rdi
callq 0x10720
movq 0x18(%rsp), %rax
movq 0x50(%rax), %rax
movq %rax, 0x20(%rsp)
cmpq $0x0, %rax
je 0x8406
movq 0x20(%rsp), %rdi
callq 0x56e0
movq 0x20(%rsp), %rdi
callq 0x21d0
movq 0x18(%rsp), %rdi
addq $0x58, %rdi
callq 0x10740
movq 0x18(%rsp), %rdi
addq $0x70, %rdi
callq 0x10740
movl $0x0, 0x2c(%rsp)
movq 0x18(%rsp), %rdi
movslq 0x2c(%rsp), %rax
movq %rax, 0x10(%rsp)
addq $0x88, %rdi
callq 0x10760
movq %rax, %rcx
movq 0x10(%rsp), %rax
cmpq %rcx, %rax
jae 0x847d
movq 0x18(%rsp), %rdi
addq $0x88, %rdi
movslq 0x2c(%rsp), %rsi
callq 0x10780
movq %rax, %rdi
callq 0x10720
movl 0x2c(%rsp), %eax
addl $0x1, %eax
movl %eax, 0x2c(%rsp)
jmp 0x842a
movq 0x18(%rsp), %rdi
addq $0x88, %rdi
callq 0x107a0
movl $0x0, 0x28(%rsp)
movq 0x18(%rsp), %rdi
movslq 0x28(%rsp), %rax
movq %rax, 0x8(%rsp)
addq $0xa0, %rdi
callq 0x10760
movq %rax, %rcx
movq 0x8(%rsp), %rax
cmpq %rcx, %rax
jae 0x84e9
movq 0x18(%rsp), %rdi
addq $0xa0, %rdi
movslq 0x28(%rsp), %rsi
callq 0x10780
movq %rax, %rdi
callq 0x10720
movl 0x28(%rsp), %eax
addl $0x1, %eax
movl %eax, 0x28(%rsp)
jmp 0x8496
movq 0x18(%rsp), %rdi
addq $0xa0, %rdi
callq 0x107a0
movq 0x18(%rsp), %rdi
addq $0xb8, %rdi
callq 0x10720
movq 0x18(%rsp), %rdi
addq $0xd0, %rdi
callq 0x10720
movq 0x18(%rsp), %rdi
addq $0xe8, %rdi
callq 0x10720
movq 0x18(%rsp), %rdi
addq $0x100, %rdi            # imm = 0x100
callq 0x10720
movq 0x18(%rsp), %rdi
addq $0x118, %rdi            # imm = 0x118
callq 0x10720
movq 0x18(%rsp), %rdi
addq $0x130, %rdi            # imm = 0x130
callq 0x107c0
movq 0x18(%rsp), %rdi
addq $0x148, %rdi            # imm = 0x148
callq 0x107c0
movq 0x18(%rsp), %rdi
addq $0x160, %rdi            # imm = 0x160
callq 0x107c0
movq 0x18(%rsp), %rdi
addq $0x178, %rdi            # imm = 0x178
callq 0x107c0
movq 0x18(%rsp), %rdi
addq $0x190, %rdi            # imm = 0x190
callq 0x107e0
movq 0x18(%rsp), %rdi
addq $0x1a8, %rdi            # imm = 0x1A8
callq 0x107a0
movq 0x18(%rsp), %rdi
addq $0x1c0, %rdi            # imm = 0x1C0
callq 0x10720
movq 0x18(%rsp), %rdi
addq $0x1d8, %rdi            # imm = 0x1D8
callq 0x10720
movq 0x18(%rsp), %rdi
addq $0x1f0, %rdi            # imm = 0x1F0
callq 0x2260
movq 0x18(%rsp), %rdi
addq $0x210, %rdi            # imm = 0x210
callq 0x2260
movq 0x18(%rsp), %rdi
addq $0x230, %rdi            # imm = 0x230
callq 0x2260
movq 0x18(%rsp), %rdi
addq $0x250, %rdi            # imm = 0x250
callq 0x2260
movq 0x18(%rsp), %rdi
addq $0x270, %rdi            # imm = 0x270
callq 0x2260
movq 0x18(%rsp), %rdi
addq $0x290, %rdi            # imm = 0x290
callq 0x2260
movq 0x18(%rsp), %rdi
addq $0x290, %rdi            # imm = 0x290
callq 0x2140
movq 0x18(%rsp), %rdi
addq $0x270, %rdi            # imm = 0x270
callq 0x2140
movq 0x18(%rsp), %rdi
addq $0x250, %rdi            # imm = 0x250
callq 0x2140
movq 0x18(%rsp), %rdi
addq $0x230, %rdi            # imm = 0x230
callq 0x2140
movq 0x18(%rsp), %rdi
addq $0x210, %rdi            # imm = 0x210
callq 0x2140
movq 0x18(%rsp), %rdi
addq $0x1f0, %rdi            # imm = 0x1F0
callq 0x2140
movq 0x18(%rsp), %rdi
addq $0x1d8, %rdi            # imm = 0x1D8
callq 0x6bc0
movq 0x18(%rsp), %rdi
addq $0x1c0, %rdi            # imm = 0x1C0
callq 0x6bc0
movq 0x18(%rsp), %rdi
addq $0x1a8, %rdi            # imm = 0x1A8
callq 0x10800
movq 0x18(%rsp), %rdi
addq $0x190, %rdi            # imm = 0x190
callq 0x5940
movq 0x18(%rsp), %rdi
addq $0x178, %rdi            # imm = 0x178
callq 0x10860
movq 0x18(%rsp), %rdi
addq $0x160, %rdi            # imm = 0x160
callq 0x10860
movq 0x18(%rsp), %rdi
addq $0x148, %rdi            # imm = 0x148
callq 0x10860
movq 0x18(%rsp), %rdi
addq $0x130, %rdi            # imm = 0x130
callq 0x10860
movq 0x18(%rsp), %rdi
addq $0x118, %rdi            # imm = 0x118
callq 0x6bc0
movq 0x18(%rsp), %rdi
addq $0x100, %rdi            # imm = 0x100
callq 0x6bc0
movq 0x18(%rsp), %rdi
addq $0xe8, %rdi
callq 0x6bc0
movq 0x18(%rsp), %rdi
addq $0xd0, %rdi
callq 0x6bc0
movq 0x18(%rsp), %rdi
addq $0xb8, %rdi
callq 0x6bc0
movq 0x18(%rsp), %rdi
addq $0xa0, %rdi
callq 0x10800
movq 0x18(%rsp), %rdi
addq $0x88, %rdi
callq 0x10800
movq 0x18(%rsp), %rdi
addq $0x70, %rdi
callq 0x108c0
movq 0x18(%rsp), %rdi
addq $0x58, %rdi
callq 0x108c0
movq 0x18(%rsp), %rdi
addq $0x8, %rdi
callq 0x2140
addq $0x38, %rsp
retq
nopw %cs:(%rax,%rax)