// File: /workspace/github_cpp_makefile_star2_O3/BGI-Qingdao[P]metaSLR/classify.cpp
// Function: printBarcodeInfos(BarcodeCache const&, std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>>> const&)
void printBarcodeInfos(const BarcodeCache& g_barcode_haps , 
        const std::vector<std::string> & haps){
    std::cout<<"barcode_str\thap_result";
    for( int i = 0 ; i < (int)g_kmers.size() ; i ++ ){
        std::cout<<'\t'<<getSpeciesName(haps.at(i));
    }
    std::cout<<'\n';
    for(const auto & pair : g_barcode_haps.barcode_haps){
        std::cout<<pair.first;
        const auto & data=pair.second;
        std::cout<<'\t'<<getHap(pair.first,data);
        for( int i = 0 ; i < (int)g_kmers.size() ; i ++ )
            std::cout<<'\t'<<getHapCount(data,i);
        std::cout<<'\n';
        //std::cout<<'\t'<<getHapCount(data,-1)<<'\n';
    }
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x38, %rsp
movq %rsi, %r14
movq %rdi, -0x30(%rbp)
movq 0xa30e(%rip), %rdi      # 0xdfd0
leaq 0x63b8(%rip), %rsi      # 0xa081
movl $0x16, %edx
callq 0x3290
movq 0xa646(%rip), %rax      # 0xe320
subq 0xa637(%rip), %rax      # 0xe318
shrq $0x3, %rax
imull $0xb6db6db7, %eax, %eax # imm = 0xB6DB6DB7
testl %eax, %eax
jle 0x3d86
xorl %r12d, %r12d
leaq -0x50(%rbp), %r13
xorl %r15d, %r15d
movb $0x9, -0x50(%rbp)
movl $0x1, %edx
movq 0xa2c3(%rip), %rdi      # 0xdfd0
movq %r13, %rsi
callq 0x3290
movq (%r14), %rsi
movq 0x8(%r14), %rdx
subq %rsi, %rdx
sarq $0x5, %rdx
cmpq %r15, %rdx
jbe 0x3eaa
movq %rax, %rbx
addq %r12, %rsi
movq %r13, %rdi
callq 0x3c5b
movq -0x50(%rbp), %rsi
movq -0x48(%rbp), %rdx
movq %rbx, %rdi
callq 0x3290
movq -0x50(%rbp), %rdi
leaq -0x40(%rbp), %rax
cmpq %rax, %rdi
je 0x3d5c
callq 0x3230
incq %r15
movq 0xa5ba(%rip), %rax      # 0xe320
subq 0xa5ab(%rip), %rax      # 0xe318
shrq $0x3, %rax
imull $0xb6db6db7, %eax, %eax # imm = 0xB6DB6DB7
cltq
addq $0x20, %r12
cmpq %rax, %r15
jl 0x3cfd
leaq -0x50(%rbp), %rsi
movb $0xa, (%rsi)
movq 0xa23c(%rip), %rdi      # 0xdfd0
movl $0x1, %edx
callq 0x3290
movq -0x30(%rbp), %rax
movq 0x18(%rax), %rbx
addq $0x8, %rax
movq %rax, -0x30(%rbp)
cmpq %rax, %rbx
je 0x3e9b
movq 0xa212(%rip), %r15      # 0xdfd0
leaq -0x50(%rbp), %r12
leaq 0x20(%rbx), %r14
movq 0x20(%rbx), %rsi
movq 0x28(%rbx), %rdx
movq %r15, %rdi
callq 0x3290
movq %rbx, -0x58(%rbp)
leaq 0x40(%rbx), %r13
movb $0x9, -0x50(%rbp)
movl $0x1, %edx
movq %r15, %rdi
movq %r12, %rsi
callq 0x3290
movq %rax, %rbx
movq %r14, %rdi
movq %r13, %rsi
callq 0x3a7e
movq %rbx, %rdi
movl %eax, %esi
callq 0x33f0
movq 0xa50f(%rip), %rax      # 0xe320
subq 0xa500(%rip), %rax      # 0xe318
shrq $0x3, %rax
imull $0xb6db6db7, %eax, %eax # imm = 0xB6DB6DB7
testl %eax, %eax
jle 0x3e71
xorl %ebx, %ebx
movb $0x9, -0x50(%rbp)
movl $0x1, %edx
movq %r15, %rdi
movq %r12, %rsi
callq 0x3290
movq %rax, %r14
movq %r13, %rdi
movl %ebx, %esi
callq 0x3c0b
movq %r14, %rdi
movl %eax, %esi
callq 0x33f0
movq 0xa4c6(%rip), %rax      # 0xe320
subq 0xa4b7(%rip), %rax      # 0xe318
incl %ebx
shrq $0x3, %rax
imull $0xb6db6db7, %eax, %eax # imm = 0xB6DB6DB7
cmpl %eax, %ebx
jl 0x3e28
movb $0xa, -0x50(%rbp)
movl $0x1, %edx
movq %r15, %rdi
movq %r12, %rsi
callq 0x3290
movq -0x58(%rbp), %rdi
callq 0x32a0
movq %rax, %rbx
cmpq -0x30(%rbp), %rax
jne 0x3dc2
addq $0x38, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
leaq 0x665e(%rip), %rdi      # 0xa50f
movq %r15, %rsi
xorl %eax, %eax
callq 0x3350
movq %rax, %rbx
movq -0x50(%rbp), %rdi
leaq -0x40(%rbp), %rax
cmpq %rax, %rdi
je 0x3ed0
callq 0x3230
movq %rbx, %rdi
callq 0x3400