// File: /workspace/github_cpp_makefile_star2_O1/JenTus[P]TCEM/src_TCEM/allocator.cc
// Function: Cide::allocator::createhyperGTPairs(long long)
double allocator::createhyperGTPairs(int64 newSize) {
        // use to create reverse rr pairs
        //update hyperG and hyper_degree
        //cout << "newSize is " << newSize << endl;
        for (int z = prevSize; z < newSize; ++z) {
            hyperGTpairs.emplace_back(std::vector<int>()); // init
        }

        for (int rcID = prevSize; rcID < newSize; ++rcID) {
            for (int i = 0; i < rcList->at(0)->hyperGT[rcID].size(); ++i) {
                for (int j = 0; j < rcList->at(1)->hyperGT[rcID].size(); ++j) {
                    //cout << "r: " << rcList->at(0)->hyperGT[rcID].size() << " b: " << rcList->at(1)->hyperGT[rcID].size()<< endl;
                   int t = rcList->at(0)->hyperGT[rcID][i]*n + rcList->at(1)->hyperGT[rcID][j];
                   hyperGTpairs[rcID].push_back(t);
                }
            }
        }

        return hyperGTpairs.size();
    }

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x38, %rsp
movq %rsi, %r13
movq %rdi, %rbx
movq 0xb20(%rdi), %rax
movslq %eax, %rcx
cmpq %rsi, %rcx
jge 0xa363
leaq 0xb28(%rbx), %r15
movslq %eax, %r14
leaq 0x10(%rsp), %r12
xorps %xmm0, %xmm0
movaps %xmm0, 0x10(%rsp)
movq $0x0, 0x20(%rsp)
movq %r15, %rdi
movq %r12, %rsi
callq 0xab56
movq 0x10(%rsp), %rdi
testq %rdi, %rdi
je 0xa35b
callq 0x32c0
incq %r14
cmpq %r13, %r14
jl 0xa330
movslq 0xb20(%rbx), %rax
movq %rax, 0x8(%rsp)
cmpq %r13, %rax
jge 0xa4ab
leaq 0x10(%rsp), %r15
movq %r13, 0x30(%rsp)
movq 0xae8(%rbx), %rcx
movq (%rcx), %rax
cmpq %rax, 0x8(%rcx)
je 0xa50e
movq 0x8(%rsp), %rcx
leaq (%rcx,%rcx,2), %r13
leaq (,%rcx,8), %rcx
leaq (%rcx,%rcx,2), %rbp
xorl %r14d, %r14d
movq (%rax), %rax
movq 0x18(%rax), %rax
movq 0x8(%rax,%r13,8), %rcx
subq (%rax,%r13,8), %rcx
sarq $0x2, %rcx
cmpq %r14, %rcx
jbe 0xa490
movq 0xae8(%rbx), %rcx
movq (%rcx), %rax
movq 0x8(%rcx), %rdx
subq %rax, %rdx
sarq $0x3, %rdx
cmpq $0x2, %rdx
jb 0xa4fb
xorl %r12d, %r12d
movq 0x8(%rax), %rcx
movq 0x18(%rcx), %rdx
movq (%rdx,%r13,8), %rcx
movq 0x8(%rdx,%r13,8), %rdx
subq %rcx, %rdx
sarq $0x2, %rdx
cmpq %r12, %rdx
jbe 0xa477
movq (%rax), %rax
movq 0x18(%rax), %rax
movq (%rax,%rbp), %rdx
movl 0x68(%rbx), %eax
imull (%rdx,%r14,4), %eax
addl (%rcx,%r12,4), %eax
movl %eax, 0x10(%rsp)
movq 0xb28(%rbx), %rcx
leaq (%rcx,%rbp), %rdi
movq 0x8(%rcx,%rbp), %rsi
cmpq 0x10(%rcx,%rbp), %rsi
je 0xa448
movl %eax, (%rsi)
addq $0x4, %rsi
movq %rsi, 0x8(%rdi)
jmp 0xa450
movq %r15, %rdx
callq 0xbdaa
incq %r12
movq 0xae8(%rbx), %rcx
movq (%rcx), %rax
movq 0x8(%rcx), %rdx
subq %rax, %rdx
sarq $0x3, %rdx
cmpq $0x1, %rdx
ja 0xa3ed
jmp 0xa4fb
incq %r14
movq 0xae8(%rbx), %rcx
movq (%rcx), %rax
cmpq %rax, 0x8(%rcx)
jne 0xa3ae
jmp 0xa50e
movq 0x8(%rsp), %rax
incq %rax
movq 0x30(%rsp), %r13
movq %rax, 0x8(%rsp)
cmpq %r13, %rax
jl 0xa382
movq 0xb30(%rbx), %rax
subq 0xb28(%rbx), %rax
sarq $0x3, %rax
movabsq $-0x5555555555555555, %rcx # imm = 0xAAAAAAAAAAAAAAAB
imulq %rax, %rcx
movq %rcx, %xmm1
punpckldq 0x7c48(%rip), %xmm1 # xmm1 = xmm1[0],mem[0],xmm1[1],mem[1]
subpd 0x7c50(%rip), %xmm1     # 0x12130
movapd %xmm1, %xmm0
unpckhpd %xmm1, %xmm0            # xmm0 = xmm0[1],xmm1[1]
addsd %xmm1, %xmm0
addq $0x38, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
leaq 0x8095(%rip), %rdi      # 0x12597
movl $0x1, %esi
xorl %eax, %eax
callq 0x3490
leaq 0x8082(%rip), %rdi      # 0x12597
xorl %esi, %esi
xorl %edx, %edx
jmp 0xa507
movq %rax, %rbx
movq 0x10(%rsp), %rdi
testq %rdi, %rdi
je 0xa52d
callq 0x32c0
movq %rbx, %rdi
callq 0x35c0
nop