// File: /workspace/github_cpp_makefile_star2_O1/btbujiangjun[P]abcdl/example/sessionq.cpp
// Function: main
int main(int argc, char** argv){
    abcdl::utils::log::set_min_log_level(abcdl::utils::log::INFO);
    abcdl::utils::log::initialize_log(argc, argv);

    abcdl::utils::LibsvmHelper<real> helper;
    abcdl::algebra::Mat train_data;
    abcdl::algebra::Mat train_label;
    abcdl::algebra::Mat test_data;
    abcdl::algebra::Mat test_label;
    size_t feature_dim = 251;
    size_t label_dim = 2;
    
    std::vector<std::string> paths;
    paths.push_back("./data/sessionq/sessionq.train.libsvmaa");
    paths.push_back("./data/sessionq/sessionq.train.libsvmab");
    paths.push_back("./data/sessionq/sessionq.train.libsvmac");
    paths.push_back("./data/sessionq/sessionq.train.libsvmad");
    paths.push_back("./data/sessionq/sessionq.train.libsvmae");
    paths.push_back("./data/sessionq/sessionq.train.libsvmaf");
    paths.push_back("./data/sessionq/sessionq.train.libsvmag");
    paths.push_back("./data/sessionq/sessionq.train.libsvmah");
    paths.push_back("./data/sessionq/sessionq.train.libsvmai");
    
    SessionQ sessionq;
    sessionq.init(feature_dim, label_dim);
    
    helper.read_data(feature_dim, label_dim, "./data/sessionq/sessionq.train.libsvmaj", &test_data, &test_label);
    for(auto& path : paths){
        helper.read_data(feature_dim, label_dim, path, &train_data, &train_label);
        sessionq.pass(train_data, train_label, test_data, test_label);
    }
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x208, %rsp            # imm = 0x208
movq %rsi, %rbx
movl %edi, %ebp
xorl %edi, %edi
callq 0x484fc
movl %ebp, %edi
movq %rbx, %rsi
callq 0x480a8
movq $0x2710, 0x98(%rsp) # imm = 0x2710
leaq 0x120(%rsp), %rdi
callq 0x29638
leaq 0xf8(%rsp), %rdi
callq 0x29638
leaq 0xd0(%rsp), %rdi
callq 0x29638
leaq 0xa8(%rsp), %rdi
callq 0x29638
xorps %xmm0, %xmm0
movaps %xmm0, (%rsp)
movq $0x0, 0x10(%rsp)
leaq 0x30(%rsp), %r14
movq %r14, -0x10(%r14)
leaq 0x3dc13(%rip), %rsi     # 0x4a1a0
leaq 0x3dc33(%rip), %rdx     # 0x4a1c7
leaq 0x20(%rsp), %rdi
callq 0x1625a
movq %rsp, %rdi
leaq 0x20(%rsp), %rsi
callq 0x24160
movq 0x20(%rsp), %rdi
cmpq %r14, %rdi
je 0xc5ba
callq 0xb440
leaq 0x20(%rsp), %rdi
movq %r14, (%rdi)
leaq 0x3dbff(%rip), %rsi     # 0x4a1c8
leaq 0x3dc1f(%rip), %rdx     # 0x4a1ef
callq 0x1625a
movq %rsp, %rdi
leaq 0x20(%rsp), %rsi
callq 0x24160
movq 0x20(%rsp), %rdi
cmpq %r14, %rdi
je 0xc5f1
callq 0xb440
leaq 0x20(%rsp), %rdi
movq %r14, (%rdi)
leaq 0x3dbf0(%rip), %rsi     # 0x4a1f0
leaq 0x3dc10(%rip), %rdx     # 0x4a217
callq 0x1625a
movq %rsp, %rdi
leaq 0x20(%rsp), %rsi
callq 0x24160
movq 0x20(%rsp), %rdi
cmpq %r14, %rdi
je 0xc628
callq 0xb440
leaq 0x20(%rsp), %rdi
movq %r14, (%rdi)
leaq 0x3dbe1(%rip), %rsi     # 0x4a218
leaq 0x3dc01(%rip), %rdx     # 0x4a23f
callq 0x1625a
movq %rsp, %rdi
leaq 0x20(%rsp), %rsi
callq 0x24160
movq 0x20(%rsp), %rdi
cmpq %r14, %rdi
je 0xc65f
callq 0xb440
leaq 0x20(%rsp), %rdi
movq %r14, (%rdi)
leaq 0x3dbd2(%rip), %rsi     # 0x4a240
leaq 0x3dbf2(%rip), %rdx     # 0x4a267
callq 0x1625a
movq %rsp, %rdi
leaq 0x20(%rsp), %rsi
callq 0x24160
movq 0x20(%rsp), %rdi
cmpq %r14, %rdi
je 0xc696
callq 0xb440
leaq 0x20(%rsp), %rdi
movq %r14, (%rdi)
leaq 0x3dbc3(%rip), %rsi     # 0x4a268
leaq 0x3dbe3(%rip), %rdx     # 0x4a28f
callq 0x1625a
movq %rsp, %rdi
leaq 0x20(%rsp), %rsi
callq 0x24160
movq 0x20(%rsp), %rdi
cmpq %r14, %rdi
je 0xc6cd
callq 0xb440
leaq 0x20(%rsp), %rdi
movq %r14, (%rdi)
leaq 0x3dbb4(%rip), %rsi     # 0x4a290
leaq 0x3dbd4(%rip), %rdx     # 0x4a2b7
callq 0x1625a
movq %rsp, %rdi
leaq 0x20(%rsp), %rsi
callq 0x24160
movq 0x20(%rsp), %rdi
cmpq %r14, %rdi
je 0xc704
callq 0xb440
leaq 0x20(%rsp), %rdi
movq %r14, (%rdi)
leaq 0x3dba5(%rip), %rsi     # 0x4a2b8
leaq 0x3dbc5(%rip), %rdx     # 0x4a2df
callq 0x1625a
movq %rsp, %rdi
leaq 0x20(%rsp), %rsi
callq 0x24160
movq 0x20(%rsp), %rdi
cmpq %r14, %rdi
je 0xc73b
callq 0xb440
leaq 0x20(%rsp), %rdi
movq %r14, (%rdi)
leaq 0x3db96(%rip), %rsi     # 0x4a2e0
leaq 0x3dbb6(%rip), %rdx     # 0x4a307
callq 0x1625a
movq %rsp, %rdi
leaq 0x20(%rsp), %rsi
callq 0x24160
movq 0x20(%rsp), %rdi
cmpq %r14, %rdi
je 0xc772
callq 0xb440
leaq 0x20(%rsp), %rdi
callq 0x13b9e
leaq 0x20(%rsp), %rdi
movl $0xfb, %esi
movl $0x2, %edx
callq 0x13286
leaq 0x158(%rsp), %r14
movq %r14, -0x10(%r14)
leaq 0x3db65(%rip), %rsi     # 0x4a308
leaq 0x3db85(%rip), %rdx     # 0x4a32f
leaq 0x148(%rsp), %rdi
callq 0x1625a
leaq 0x98(%rsp), %rdi
leaq 0x148(%rsp), %rcx
leaq 0xd0(%rsp), %r8
leaq 0xa8(%rsp), %r9
movl $0xfb, %esi
movl $0x2, %edx
callq 0x13638
movq 0x148(%rsp), %rdi
cmpq %r14, %rdi
je 0xc7f8
callq 0xb440
movq (%rsp), %rbx
movq 0x8(%rsp), %rax
movq %rax, 0x90(%rsp)
cmpq %rax, %rbx
je 0xca4e
movabsq $0x3fffffffffffffff, %rbp # imm = 0x3FFFFFFFFFFFFFFF
movq $-0x1, %r13
leaq 0x1e0(%rsp), %r12
movq %r12, %r14
movl $0xfb, %esi
movl $0x2, %edx
leaq 0x98(%rsp), %rdi
movq %rbx, %rcx
leaq 0x120(%rsp), %r8
leaq 0xf8(%rsp), %r9
callq 0x13638
leaq 0x1f8(%rsp), %rdi
callq 0xe540
movq 0x120(%rsp), %rax
movq 0x128(%rsp), %rcx
movq %rax, 0x1e0(%rsp)
movq %rcx, 0x1e8(%rsp)
imulq %rax, %rcx
leaq (,%rcx,4), %r12
cmpq %rbp, %rcx
movq %r12, %rdi
cmovaq %r13, %rdi
callq 0xb030
movq %rax, 0x1f0(%rsp)
movq 0x130(%rsp), %rsi
movq %rax, %rdi
movq %r12, %rdx
callq 0xb3a0
leaq 0x1d0(%rsp), %rdi
callq 0xe540
movq 0xf8(%rsp), %rax
movq 0x100(%rsp), %rcx
movq %rax, 0x1b8(%rsp)
movq %rcx, 0x1c0(%rsp)
imulq %rax, %rcx
leaq (,%rcx,4), %r12
cmpq %rbp, %rcx
movq %r12, %rdi
cmovaq %r13, %rdi
callq 0xb030
movq %rax, 0x1c8(%rsp)
movq 0x108(%rsp), %rsi
movq %rax, %rdi
movq %r12, %rdx
callq 0xb3a0
leaq 0x1a8(%rsp), %rdi
callq 0xe540
movq 0xd0(%rsp), %rax
movq 0xd8(%rsp), %rcx
movq %rax, 0x190(%rsp)
movq %rcx, 0x198(%rsp)
imulq %rax, %rcx
leaq (,%rcx,4), %r12
cmpq %rbp, %rcx
movq %r12, %rdi
cmovaq %r13, %rdi
callq 0xb030
movq %rax, 0x1a0(%rsp)
movq 0xe0(%rsp), %rsi
movq %rax, %rdi
movq %r12, %rdx
callq 0xb3a0
leaq 0x180(%rsp), %rdi
callq 0xe540
movq 0xa8(%rsp), %rax
movq 0xb0(%rsp), %rcx
movq %rax, 0x168(%rsp)
movq %rcx, 0x170(%rsp)
imulq %rax, %rcx
leaq (,%rcx,4), %r12
cmpq %rbp, %rcx
movq %r12, %rdi
cmovaq %r13, %rdi
callq 0xb030
movq %rax, 0x178(%rsp)
movq 0xb8(%rsp), %rsi
movq %rax, %rdi
movq %r12, %rdx
callq 0xb3a0
leaq 0x20(%rsp), %rdi
movq %r14, %r12
movq %r14, %rsi
leaq 0x1b8(%rsp), %r14
movq %r14, %rdx
leaq 0x190(%rsp), %r15
movq %r15, %rcx
leaq 0x168(%rsp), %r13
movq %r13, %r8
callq 0x13b04
movq %r13, %rdi
callq 0x2988e
movq %r15, %rdi
callq 0x2988e
movq %r14, %rdi
callq 0x2988e
movq %r12, %rdi
callq 0x2988e
addq $0x20, %rbx
cmpq 0x90(%rsp), %rbx
movq $-0x1, %r13
jne 0xc82b
leaq 0x20(%rsp), %rdi
callq 0x14448
movq %rsp, %rdi
callq 0x13b50
leaq 0xa8(%rsp), %rdi
callq 0x2988e
leaq 0xd0(%rsp), %rdi
callq 0x2988e
leaq 0xf8(%rsp), %rdi
callq 0x2988e
leaq 0x120(%rsp), %rdi
callq 0x2988e
xorl %eax, %eax
addq $0x208, %rsp            # imm = 0x208
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
movq %rax, %rbx
movq 0x148(%rsp), %rdi
cmpq %r14, %rdi
je 0xcb68
callq 0xb440
jmp 0xcb68
jmp 0xcb65
jmp 0xcb65
jmp 0xcb06
jmp 0xcaf2
jmp 0xcb06
jmp 0xcaf2
jmp 0xcb06
jmp 0xcaf2
jmp 0xcb06
jmp 0xcaf2
jmp 0xcb06
jmp 0xcaf2
jmp 0xcb06
jmp 0xcaf2
jmp 0xcb06
jmp 0xcaf2
jmp 0xcb06
jmp 0xcaf2
jmp 0xcb06
movq %rax, %rbx
movq 0x20(%rsp), %rdi
cmpq %r14, %rdi
je 0xcb72
callq 0xb440
jmp 0xcb72
movq %rax, %rbx
jmp 0xcb72
movq %rax, %rbx
jmp 0xcb87
movq %rax, %rbx
jmp 0xcb94
movq %rax, %rbx
jmp 0xcba1
movq %rax, %rbx
leaq 0x168(%rsp), %rdi
callq 0x2988e
jmp 0xcb3c
movq %rax, %rbx
jmp 0xcb56
movq %rax, %rbx
jmp 0xcb49
movq %rax, %rbx
leaq 0x190(%rsp), %rdi
callq 0x2988e
leaq 0x1b8(%rsp), %rdi
callq 0x2988e
leaq 0x1e0(%rsp), %rdi
callq 0x2988e
jmp 0xcb68
movq %rax, %rbx
leaq 0x20(%rsp), %rdi
callq 0x14448
movq %rsp, %rdi
callq 0x13b50
leaq 0xa8(%rsp), %rdi
callq 0x2988e
leaq 0xd0(%rsp), %rdi
callq 0x2988e
leaq 0xf8(%rsp), %rdi
callq 0x2988e
leaq 0x120(%rsp), %rdi
callq 0x2988e
movq %rbx, %rdi
callq 0xb770