// File: /workspace/github_cpp_makefile_star2_O3/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 $0x28, %rsp
movq %rsi, %r13
movq %rdi, %rbx
movq 0xb20(%rdi), %rax
movslq %eax, %r12
cmpq %rsi, %r12
jge 0xa2c2
leaq 0xb28(%rbx), %r15
movslq %eax, %r14
movq %rsp, %r12
xorps %xmm0, %xmm0
movaps %xmm0, (%rsp)
movq $0x0, 0x10(%rsp)
movq %r15, %rdi
movq %r12, %rsi
callq 0xaae4
movq (%rsp), %rdi
testq %rdi, %rdi
je 0xa2b3
callq 0x32c0
incq %r14
cmpq %r13, %r14
jl 0xa28a
movslq 0xb20(%rbx), %r12
cmpq %r13, %r12
jge 0xa43a
movq 0xae8(%rbx), %rax
movq (%rax), %rcx
movq %rsp, %r15
movq %rcx, %r8
movq %rcx, %r9
movq %r13, 0x20(%rsp)
movq 0x8(%rax), %rdx
cmpq %r9, %rdx
je 0xa49d
movq (%r9), %rsi
movq 0x18(%rsi), %rsi
leaq (%r12,%r12,2), %r13
movq 0x8(%rsi,%r13,8), %rdi
cmpq (%rsi,%r13,8), %rdi
je 0xa41d
xorl %ebp, %ebp
movq %r9, %rdi
subq %rdi, %rdx
sarq $0x3, %rdx
cmpq $0x2, %rdx
jb 0xa48a
movq 0x8(%rdi), %rdx
movq 0x18(%rdx), %rsi
movq (%rsi,%r13,8), %rdx
cmpq %rdx, 0x8(%rsi,%r13,8)
je 0xa3df
movq %rdi, %rsi
xorl %r14d, %r14d
movq (%rsi), %rsi
movq 0x18(%rsi), %rsi
leaq (,%r12,8), %rdi
leaq (%rdi,%rdi,2), %r9
movq (%rsi,%r9), %rsi
movl 0x68(%rbx), %r8d
imull (%rsi,%rbp,4), %r8d
addl (%rdx,%r14,4), %r8d
movl %r8d, (%rsp)
movq 0xb28(%rbx), %rdx
leaq (%rdx,%r9), %rdi
movq 0x8(%rdx,%r9), %rsi
cmpq 0x10(%rdx,%r9), %rsi
je 0xa38c
movl %r8d, (%rsi)
addq $0x4, %rsi
movq %rsi, 0x8(%rdi)
movq %rcx, %rsi
jmp 0xa39e
movq %r15, %rdx
callq 0xbd60
movq 0xae8(%rbx), %rax
movq (%rax), %rsi
movq 0x8(%rax), %rdx
subq %rsi, %rdx
sarq $0x3, %rdx
cmpq $0x1, %rdx
jbe 0xa48a
incq %r14
movq 0x8(%rsi), %rcx
movq 0x18(%rcx), %rcx
movq (%rcx,%r13,8), %rdx
movq 0x8(%rcx,%r13,8), %r8
subq %rdx, %r8
sarq $0x2, %r8
movq %rsi, %rdi
movq %rsi, %rcx
cmpq %r14, %r8
ja 0xa33d
jmp 0xa3e5
movq %rcx, %rsi
movq %r8, %rdi
movq 0x8(%rax), %rdx
cmpq %rdi, %rdx
je 0xa49d
incq %rbp
movq (%rdi), %rcx
movq 0x18(%rcx), %rcx
movq 0x8(%rcx,%r13,8), %r10
subq (%rcx,%r13,8), %r10
sarq $0x2, %r10
movq %rdi, %r8
movq %rsi, %rcx
movq %rdi, %r9
cmpq %rbp, %r10
ja 0xa30f
jmp 0xa423
movq %rcx, %rsi
movq %r8, %rdi
incq %r12
movq %rsi, %rcx
movq %rdi, %r8
movq 0x20(%rsp), %r13
cmpq %r13, %r12
jl 0xa2e3
movq 0xb30(%rbx), %rax
subq 0xb28(%rbx), %rax
sarq $0x3, %rax
movabsq $-0x5555555555555555, %rcx # imm = 0xAAAAAAAAAAAAAAAB
imulq %rax, %rcx
movq %rcx, %xmm1
punpckldq 0x7cb9(%rip), %xmm1 # xmm1 = xmm1[0],mem[0],xmm1[1],mem[1]
subpd 0x7cc1(%rip), %xmm1     # 0x12130
movapd %xmm1, %xmm0
unpckhpd %xmm1, %xmm0            # xmm0 = xmm0[1],xmm1[1]
addsd %xmm1, %xmm0
addq $0x28, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
leaq 0x80fe(%rip), %rdi      # 0x1258f
movl $0x1, %esi
xorl %eax, %eax
callq 0x3490
leaq 0x80eb(%rip), %rdi      # 0x1258f
xorl %esi, %esi
xorl %edx, %edx
jmp 0xa496
movq %rax, %rbx
movq (%rsp), %rdi
testq %rdi, %rdi
je 0xa4bb
callq 0x32c0
movq %rbx, %rdi
callq 0x35c0
nop