// File: /workspace/github_cpp_makefile_star2_O2/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 0xe8a2(%rip), %r14      # 0x1eff0
movq %r14, %rdi
callq 0x3100
leaq 0x6107(%rip), %rsi      # 0x16864
movq %rax, %rdi
callq 0x3250
movq %rax, %rdi
callq 0x3100
leaq 0x6112(%rip), %rsi      # 0x16886
movq %r14, %rdi
callq 0x3250
movq 0x10(%rbx), %rax
leaq 0x8(%rsp), %r13
leaq 0x611c(%rip), %rbp      # 0x168a8
leaq 0x611c(%rip), %r15      # 0x168af
movq %rax, %r14
movq (%r14), %r14
cmpq %rax, %r14
je 0x10949
movq 0x10(%r14), %rax
movq %rax, 0x8(%rsp)
movq 0x18(%r14), %rax
movq %rax, 0x10(%rsp)
testq %rax, %rax
je 0x107bd
lock
incl 0x8(%rax)
movq 0xe82c(%rip), %rdi      # 0x1eff0
leaq 0x60d5(%rip), %rsi      # 0x168a0
callq 0x3250
movq %rax, %r12
movq %r13, %rdi
callq 0xda24
leaq 0x20(%rax), %rdi
callq 0xda4e
movsd 0x70(%rax), %xmm0
movq %r12, %rdi
callq 0x3370
movq %rax, %rdi
movq %rbp, %rsi
callq 0x3250
movq %rax, %r12
movq %r13, %rdi
callq 0xda24
leaq 0x20(%rax), %rdi
callq 0xda4e
movq %rax, %rdi
callq 0xf860
movq %r12, %rdi
movq %rax, %rsi
callq 0x3250
movq %rax, %rdi
movq %r15, %rsi
callq 0x3250
movq %rax, %r12
movq %r13, %rdi
callq 0xda24
leaq 0x20(%rax), %rdi
callq 0xda4e
movswl 0x62(%rax), %esi
movq %r12, %rdi
callq 0x3220
movq %rax, %rdi
leaq 0x605d(%rip), %rsi      # 0x168b5
callq 0x3250
movq %rax, %r12
movq %r13, %rdi
callq 0xda24
leaq 0x18(%rax), %rdi
callq 0xda4e
movsd 0x70(%rax), %xmm0
movq %r12, %rdi
callq 0x3370
movq %rax, %rdi
movq %rbp, %rsi
callq 0x3250
movq %rax, %r12
movq %r13, %rdi
callq 0xda24
leaq 0x18(%rax), %rdi
callq 0xda4e
movq %rax, %rdi
callq 0xf860
movq %r12, %rdi
movq %rax, %rsi
callq 0x3250
movq %rax, %rdi
movq %r15, %rsi
callq 0x3250
movq %rax, %r12
movq %r13, %rdi
callq 0xda24
leaq 0x18(%rax), %rdi
callq 0xda4e
movswl 0x62(%rax), %esi
movq %r12, %rdi
callq 0x3220
movq %rax, %rdi
leaq 0x5fda(%rip), %rsi      # 0x168bf
callq 0x3250
movq %rax, %r12
movq %r13, %rdi
callq 0xda24
movzbl 0x10(%rax), %esi
movq %r12, %rdi
callq 0x33b0
movq %rax, %rdi
leaq 0x5fba(%rip), %rsi      # 0x168c5
callq 0x3250
movq %rax, %r12
movq %r13, %rdi
callq 0xda24
movl 0x14(%rax), %esi
movq %r12, %rdi
callq 0x33f0
movq %rax, %rdi
callq 0x3100
movq %r13, %rdi
callq 0xda24
leaq 0x10(%rsp), %rdi
callq 0xdff8
movq 0x10(%rbx), %rax
jmp 0x10796
movq 0xe6a0(%rip), %rdi      # 0x1eff0
leaq 0x5f75(%rip), %rsi      # 0x168cc
callq 0x3250
movq %rbx, %rbp
movq 0x18(%rbx), %rax
movq (%rax), %r14
xorl %ebx, %ebx
leaq 0x8(%rsp), %r13
leaq 0x5f3b(%rip), %r15      # 0x168af
cmpl 0x20(%rbp), %ebx
jae 0x10ae2
movq (%r14), %rax
movq %rax, 0x8(%rsp)
movq 0x8(%r14), %rax
movq %rax, 0x10(%rsp)
testq %rax, %rax
je 0x10997
lock
incl 0x8(%rax)
movq 0xe652(%rip), %rdi      # 0x1eff0
leaq 0x5f42(%rip), %rsi      # 0x168e7
callq 0x3250
movq %rax, %r12
movq %r13, %rdi
callq 0xda24
leaq 0x20(%rax), %rdi
callq 0xda4e
movsd 0x70(%rax), %xmm0
movq %r12, %rdi
callq 0x3370
movq %rax, %rdi
leaq 0x5ed3(%rip), %rsi      # 0x168a8
callq 0x3250
movq %rax, %r12
movq %r13, %rdi
callq 0xda24
leaq 0x20(%rax), %rdi
callq 0xda4e
movq %rax, %rdi
callq 0xf860
movq %r12, %rdi
movq %rax, %rsi
callq 0x3250
movq %rax, %rdi
movq %r15, %rsi
callq 0x3250
movq %rax, %r12
movq %r13, %rdi
callq 0xda24
leaq 0x20(%rax), %rdi
callq 0xda4e
movswl 0x62(%rax), %esi
movq %r12, %rdi
callq 0x3220
movq %rax, %rdi
leaq 0x5eb9(%rip), %rsi      # 0x168ef
callq 0x3250
movq %rax, %r12
movq %r13, %rdi
callq 0xda24
leaq 0x18(%rax), %rdi
callq 0xda4e
movsd 0x70(%rax), %xmm0
movq %r12, %rdi
callq 0x3370
movq %rax, %rdi
leaq 0x5e42(%rip), %rsi      # 0x168a8
callq 0x3250
movq %rax, %r12
movq %r13, %rdi
callq 0xda24
leaq 0x18(%rax), %rdi
callq 0xda4e
movq %rax, %rdi
callq 0xf860
movq %r12, %rdi
movq %rax, %rsi
callq 0x3250
movq %rax, %rdi
movq %r15, %rsi
callq 0x3250
movq %rax, %r12
movq %r13, %rdi
callq 0xda24
leaq 0x18(%rax), %rdi
callq 0xda4e
movswl 0x62(%rax), %esi
movq %r12, %rdi
callq 0x3220
movq %rax, %rdi
callq 0x3100
movq %r13, %rdi
callq 0xda24
incl %ebx
addq $0x10, %r14
leaq 0x10(%rsp), %rdi
callq 0xdff8
jmp 0x10974
movq 0xe507(%rip), %r14      # 0x1eff0
leaq 0x5e14(%rip), %rsi      # 0x16904
movq %r14, %rdi
callq 0x3250
movq %rax, %r15
leaq 0x40(%rbp), %rdi
callq 0xda4e
movsd 0x70(%rax), %xmm0
movq %r15, %rdi
callq 0x3370
movq %rax, %rdi
callq 0x3100
leaq 0x5dd9(%rip), %rsi      # 0x168f9
movq %r14, %rdi
callq 0x3250
movq %rax, %r15
addq $0x38, %rbp
movq %rbp, %rdi
callq 0xda4e
movsd 0x70(%rax), %xmm0
movq %r15, %rdi
callq 0x3370
movq %rax, %rdi
callq 0x3100
leaq 0x5db8(%rip), %rsi      # 0x1690b
movq %r14, %rdi
callq 0x3250
movq %rax, %rdi
callq 0x3100
addq $0x18, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
jmp 0x10b74
movq %rax, %rbx
leaq 0x10(%rsp), %rdi
callq 0xdff8
movq %rbx, %rdi
callq 0x3400
nop