// File: /workspace/github_cpp_makefile_star2_O1/gchen98[P]macs/datastructures.cpp
// Function: GraphBuilder::printDataStructures()
void GraphBuilder::printDataStructures(){
    cerr<<endl<<"*** Begin printing structures ***"<<endl;

    double trueLen = 0.0;
    cerr<<"Full ARG (list of edges)\n";
    trueLen = 0.0;
    for (EdgePtrList::iterator it=pEdgeListInARG->begin();it!=pEdgeListInARG->end();it++){
        EdgePtr curEdge = *it;
        cerr<<"low:ht:"<<curEdge->getBottomNodeRef()->getHeight()<<
        ",type:"<<curEdge->getBottomNodeRef()->getTypeStr()<<
        ",pop:"<<curEdge->getBottomNodeRef()->getPopulation()<<
        ";high:ht:"<<curEdge->getTopNodeRef()->getHeight()<<
        ",type:"<<curEdge->getTopNodeRef()->getTypeStr()<<
        ",pop:"<<curEdge->getTopNodeRef()->getPopulation()<<
        ",del:"<<curEdge->bDeleted<<
//        ",length:"<<curEdge->getLength()<<
        ";hist:"<<curEdge->iGraphIteration<<endl;
        trueLen+=curEdge->getLength();
    }


    cerr<<"Last tree (list of edges)\n";
//    it;
    trueLen = 0.0;
    EdgePtrVector::iterator it=pEdgeVectorInTree->begin();
    unsigned int count=0;
    while(count<iTotalTreeEdges){
//    for (EdgePtrVector::iterator it=pEdgeVectorInTree->begin();it!=pEdgeVectorInTree->end();++it){
        EdgePtr curEdge = *it;
        cerr<<"low_ht:"<<curEdge->getBottomNodeRef()->getHeight()<<
        ",type:"<<curEdge->getBottomNodeRef()->getTypeStr()<<
        ",pop:"<<curEdge->getBottomNodeRef()->getPopulation()<<
        ";high_ht:"<<curEdge->getTopNodeRef()->getHeight()<<
        ",type:"<<curEdge->getTopNodeRef()->getTypeStr()<<
        ",pop:"<<curEdge->getTopNodeRef()->getPopulation()<<endl;
//        ",intree:"<<curEdge->bInCurrentTree<<endl;
//        ",length:"<<curEdge->getLength()<<
//        ";hist:"<<curEdge->iGraphIteration<<endl;
        trueLen+=curEdge->getLength();
        ++count;
        ++it;
    }
    cerr<<"MRCA: "<<localMRCA->getHeight()<<endl;
    cerr<<"Graph grandMRCA: "<<grandMRCA->getHeight()<<endl;
//    cerr<<"true length:"<<trueLen<<endl;

    cerr<<"*** Done printing structures ***"<<endl;
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x18, %rsp
movq %rdi, %rbx
movq 0xcd64(%rip), %r14      # 0x1fff0
movq (%r14), %rax
movq -0x18(%rax), %rdi
addq %r14, %rdi
movl $0xa, %esi
callq 0x3240
movsbl %al, %esi
movq %r14, %rdi
callq 0x3040
movq %rax, %rdi
callq 0x31b0
movq %rax, %r15
leaq 0x6597(%rip), %rsi      # 0x19854
movl $0x21, %edx
movq %rax, %rdi
callq 0x32a0
movq (%r15), %rax
movq -0x18(%rax), %rdi
addq %r15, %rdi
movl $0xa, %esi
callq 0x3240
movsbl %al, %esi
movq %r15, %rdi
callq 0x3040
movq %rax, %rdi
callq 0x31b0
leaq 0x657e(%rip), %rsi      # 0x19876
movl $0x19, %edx
movq %r14, %rdi
callq 0x32a0
movq 0x10(%rbx), %rax
movq (%rax), %r15
cmpq %rax, %r15
je 0x1359b
leaq 0x62c8(%rip), %r13      # 0x195e4
leaq 0x657c(%rip), %rbp      # 0x1989f
movq 0x10(%r15), %rax
movq %rax, 0x8(%rsp)
movq 0x18(%r15), %rax
movq %rax, 0x10(%rsp)
testq %rax, %rax
je 0x1333e
lock
incl 0x8(%rax)
movl $0x7, %edx
movq 0xcca6(%rip), %rdi      # 0x1fff0
leaq 0x653f(%rip), %rsi      # 0x19890
callq 0x32a0
movq 0x8(%rsp), %rax
testq %rax, %rax
je 0x138f8
movq 0x20(%rax), %rax
testq %rax, %rax
je 0x13917
movsd 0x70(%rax), %xmm0
movq 0xcc73(%rip), %rdi      # 0x1fff0
callq 0x3360
movq %rax, %r12
movl $0x6, %edx
movq %rax, %rdi
leaq 0x6504(%rip), %rsi      # 0x19898
callq 0x32a0
movq 0x8(%rsp), %rax
testq %rax, %rax
je 0x138f8
movq 0x20(%rax), %rax
testq %rax, %rax
je 0x13917
movl 0x64(%rax), %eax
movq %r13, %r14
cmpq $0x4, %rax
ja 0x133cb
leaq 0xc7a9(%rip), %rcx      # 0x1fb70
movq (%rcx,%rax,8), %r14
movq %r14, %rdi
callq 0x30e0
movq %r12, %rdi
movq %r14, %rsi
movq %rax, %rdx
callq 0x32a0
movl $0x5, %edx
movq %r12, %rdi
movq %rbp, %rsi
callq 0x32a0
movq 0x8(%rsp), %rax
testq %rax, %rax
je 0x138f8
movq 0x20(%rax), %rax
testq %rax, %rax
je 0x13917
movswl 0x62(%rax), %esi
movq %r12, %rdi
callq 0x3210
movq %rax, %r12
movl $0x9, %edx
movq %rax, %rdi
leaq 0x647b(%rip), %rsi      # 0x198a5
callq 0x32a0
movq 0x8(%rsp), %rax
testq %rax, %rax
je 0x138f8
movq 0x18(%rax), %rax
testq %rax, %rax
je 0x13917
movsd 0x70(%rax), %xmm0
movq %r12, %rdi
callq 0x3360
movq %rax, %r12
movl $0x6, %edx
movq %rax, %rdi
leaq 0x642f(%rip), %rsi      # 0x19898
callq 0x32a0
movq 0x8(%rsp), %rax
testq %rax, %rax
je 0x138f8
movq 0x18(%rax), %rax
testq %rax, %rax
je 0x13917
movl 0x64(%rax), %eax
movq %r13, %r14
cmpq $0x4, %rax
ja 0x134a0
leaq 0xc6d4(%rip), %rcx      # 0x1fb70
movq (%rcx,%rax,8), %r14
movq %r14, %rdi
callq 0x30e0
movq %r12, %rdi
movq %r14, %rsi
movq %rax, %rdx
callq 0x32a0
movl $0x5, %edx
movq %r12, %rdi
movq %rbp, %rsi
callq 0x32a0
movq 0x8(%rsp), %rax
testq %rax, %rax
je 0x138f8
movq 0x18(%rax), %rax
testq %rax, %rax
je 0x13917
movswl 0x62(%rax), %esi
movq %r12, %rdi
callq 0x3210
movq %rax, %r12
movl $0x5, %edx
movq %rax, %rdi
leaq 0x63b0(%rip), %rsi      # 0x198af
callq 0x32a0
movq 0x8(%rsp), %rax
testq %rax, %rax
je 0x138f8
movzbl 0x10(%rax), %esi
movq %r12, %rdi
callq 0x33a0
movq %rax, %r12
movl $0x6, %edx
movq %rax, %rdi
leaq 0x6385(%rip), %rsi      # 0x198b5
callq 0x32a0
movq 0x8(%rsp), %rax
testq %rax, %rax
je 0x138f8
movl 0x14(%rax), %esi
movq %r12, %rdi
callq 0x33e0
movq %rax, %r12
movq (%rax), %rax
movq -0x18(%rax), %rdi
addq %r12, %rdi
movl $0xa, %esi
callq 0x3240
movsbl %al, %esi
movq %r12, %rdi
callq 0x3040
movq %rax, %rdi
callq 0x31b0
cmpq $0x0, 0x8(%rsp)
je 0x138f8
leaq 0x10(%rsp), %rdi
callq 0x10dec
movq (%r15), %r15
cmpq 0x10(%rbx), %r15
jne 0x13323
movq 0xca4e(%rip), %rdi      # 0x1fff0
leaq 0x6313(%rip), %rsi      # 0x198bc
movl $0x1a, %edx
callq 0x32a0
movq %rbx, %r13
cmpl $0x0, 0x20(%rbx)
je 0x137f3
movq 0x18(%r13), %rax
movq (%rax), %rbx
xorl %r15d, %r15d
leaq 0x62ce(%rip), %rbp      # 0x1989f
movq (%rbx), %rax
movq %rax, 0x8(%rsp)
movq 0x8(%rbx), %rax
movq %rax, 0x10(%rsp)
testq %rax, %rax
je 0x135eb
lock
incl 0x8(%rax)
movl $0x7, %edx
movq 0xc9f9(%rip), %rdi      # 0x1fff0
leaq 0x62d9(%rip), %rsi      # 0x198d7
callq 0x32a0
movq 0x8(%rsp), %rax
testq %rax, %rax
je 0x138f8
movq 0x20(%rax), %rax
testq %rax, %rax
je 0x13917
movsd 0x70(%rax), %xmm0
movq 0xc9c6(%rip), %rdi      # 0x1fff0
callq 0x3360
movq %rax, %r12
movl $0x6, %edx
movq %rax, %rdi
leaq 0x6257(%rip), %rsi      # 0x19898
callq 0x32a0
movq 0x8(%rsp), %rax
testq %rax, %rax
je 0x138f8
movq 0x20(%rax), %rax
testq %rax, %rax
je 0x13917
movl 0x64(%rax), %eax
leaq 0x5f79(%rip), %r14      # 0x195e4
cmpq $0x4, %rax
ja 0x1367c
leaq 0xc4f8(%rip), %rcx      # 0x1fb70
movq (%rcx,%rax,8), %r14
movq %r14, %rdi
callq 0x30e0
movq %r12, %rdi
movq %r14, %rsi
movq %rax, %rdx
callq 0x32a0
movl $0x5, %edx
movq %r12, %rdi
movq %rbp, %rsi
callq 0x32a0
movq 0x8(%rsp), %rax
testq %rax, %rax
je 0x138f8
movq 0x20(%rax), %rax
testq %rax, %rax
je 0x13917
movswl 0x62(%rax), %esi
movq %r12, %rdi
callq 0x3210
movq %rax, %r12
movl $0x9, %edx
movq %rax, %rdi
leaq 0x6204(%rip), %rsi      # 0x198df
callq 0x32a0
movq 0x8(%rsp), %rax
testq %rax, %rax
je 0x138f8
movq 0x18(%rax), %rax
testq %rax, %rax
je 0x13917
movsd 0x70(%rax), %xmm0
movq %r12, %rdi
callq 0x3360
movq %rax, %r12
movl $0x6, %edx
movq %rax, %rdi
leaq 0x617e(%rip), %rsi      # 0x19898
callq 0x32a0
movq 0x8(%rsp), %rax
testq %rax, %rax
je 0x138f8
movq 0x18(%rax), %rax
testq %rax, %rax
je 0x13917
movl 0x64(%rax), %eax
leaq 0x5ea0(%rip), %r14      # 0x195e4
cmpq $0x4, %rax
ja 0x13755
leaq 0xc41f(%rip), %rcx      # 0x1fb70
movq (%rcx,%rax,8), %r14
movq %r14, %rdi
callq 0x30e0
movq %r12, %rdi
movq %r14, %rsi
movq %rax, %rdx
callq 0x32a0
movl $0x5, %edx
movq %r12, %rdi
movq %rbp, %rsi
callq 0x32a0
movq 0x8(%rsp), %rax
testq %rax, %rax
je 0x138f8
movq 0x18(%rax), %rax
testq %rax, %rax
je 0x13917
movswl 0x62(%rax), %esi
movq %r12, %rdi
callq 0x3210
movq %rax, %r12
movq (%rax), %rax
movq -0x18(%rax), %rdi
addq %r12, %rdi
movl $0xa, %esi
callq 0x3240
movsbl %al, %esi
movq %r12, %rdi
callq 0x3040
movq %rax, %rdi
callq 0x31b0
cmpq $0x0, 0x8(%rsp)
je 0x138f8
incl %r15d
addq $0x10, %rbx
leaq 0x10(%rsp), %rdi
callq 0x10dec
cmpl 0x20(%r13), %r15d
jb 0x135d1
movq 0xc7f6(%rip), %rdi      # 0x1fff0
leaq 0x60f3(%rip), %rsi      # 0x198f4
movl $0x6, %edx
callq 0x32a0
movq 0x40(%r13), %rax
testq %rax, %rax
je 0x13917
movsd 0x70(%rax), %xmm0
movq 0xc7cc(%rip), %r14      # 0x1fff0
movq %r14, %rdi
callq 0x3360
movq %rax, %r15
movq (%rax), %rax
movq -0x18(%rax), %rdi
addq %r15, %rdi
movl $0xa, %esi
callq 0x3240
movsbl %al, %esi
movq %r15, %rdi
callq 0x3040
movq %rax, %rdi
callq 0x31b0
leaq 0x608c(%rip), %rsi      # 0x198e9
movl $0x11, %edx
movq %r14, %rdi
callq 0x32a0
movq 0x38(%r13), %rax
testq %rax, %rax
je 0x13917
movsd 0x70(%rax), %xmm0
movq %r14, %rdi
callq 0x3360
movq %rax, %rbx
movq (%rax), %rax
movq -0x18(%rax), %rdi
addq %rbx, %rdi
movl $0xa, %esi
callq 0x3240
movsbl %al, %esi
movq %rbx, %rdi
callq 0x3040
movq %rax, %rdi
callq 0x31b0
leaq 0x6046(%rip), %rsi      # 0x198fb
movl $0x20, %edx
movq %r14, %rdi
callq 0x32a0
movq (%r14), %rax
movq -0x18(%rax), %rdi
addq %r14, %rdi
movl $0xa, %esi
callq 0x3240
movsbl %al, %esi
movq %r14, %rdi
callq 0x3040
movq %rax, %rdi
callq 0x31b0
addq $0x18, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
leaq 0x51f9(%rip), %rdi      # 0x18af8
leaq 0x5b00(%rip), %rsi      # 0x19406
leaq 0x5b25(%rip), %rcx      # 0x19432
movl $0x2d8, %edx            # imm = 0x2D8
callq 0x3170
leaq 0x51da(%rip), %rdi      # 0x18af8
leaq 0x51db(%rip), %rsi      # 0x18b00
leaq 0x5b6f(%rip), %rcx      # 0x1949b
movl $0xc7, %edx
callq 0x3170
jmp 0x13938
movq %rax, %rbx
leaq 0x10(%rsp), %rdi
callq 0x10dec
movq %rbx, %rdi
callq 0x33f0
nop