// File: /workspace/github_cpp_makefile_star2_O2/Luthaf[P]zeopp/channel.cc
// Function: CHANNEL::print(std::ostream&, bool)
void CHANNEL::print(ostream &out, bool dispNodeInfo){
    out << "Channel info:" << "\n";
    out << "     # Nodes: " << nodes.size() << "\n";
    
    if(dispNodeInfo){
        out << "     Original Node IDs: ";
        for(unsigned int i = 0; i < nodes.size(); i++){
            out << reverseIDMappings.find(i)->second << " ";
        }
        out << "\n";
        
        out << "     New Node IDs: ";
        for(unsigned int i = 0; i < nodes.size(); i++){
            out << i << " ";
        }
        out << "\n";
        
        out << "  New Node info: " << "\n";
        for(unsigned int i = 0; i< nodes.size(); i++){
            nodes.at(i).print();
        }
    }
    
    out << "     # Unit cells:" << unitCells.size() << "\n";
    
    for(unsigned int i = 0; i < unitCells.size(); i++){
        DELTA_POS position = unitCells.at(i);
        vector<int> ucNode = ucNodes.at(i);
        out << "       Unit cell #: " << i  << "\n"
        << "          Displacement: " << position.x << " " << position.y << " " << position.z << "\n"
        << "          New Node ids: ";
        for(unsigned int j = 0; j < ucNode.size(); j++){
            out << ucNode.at(j) << " ";
        }
        out << "\n";
    }
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x38, %rsp
movl %edx, %r15d
movq %rsi, %rbx
movq %rdi, %r12
leaq 0xaf199(%rip), %rsi     # 0x1038a1
movq %rbx, %rdi
callq 0x4480
leaq 0xade67(%rip), %r14     # 0x10257e
movq %rax, %rdi
movq %r14, %rsi
callq 0x4480
leaq 0xaf186(%rip), %rsi     # 0x1038af
movq %rbx, %rdi
callq 0x4480
movq %rax, %rdi
movq 0x68(%r12), %rax
movq %r12, (%rsp)
subq 0x60(%r12), %rax
pushq $0x48
popq %rbp
cqto
idivq %rbp
movq %rax, %rsi
callq 0x42e0
movq %rax, %rdi
movq %r14, %rsi
callq 0x4480
testl %r15d, %r15d
je 0x548a6
movq (%rsp), %r14
leaq 0x60(%r14), %rax
movq %rax, 0x8(%rsp)
leaq 0xaf144(%rip), %rsi     # 0x1038be
movq %rbx, %rdi
callq 0x4480
addq $0x30, %r14
xorl %r15d, %r15d
leaq 0x20(%rsp), %r12
leaq 0xafd7d(%rip), %r13     # 0x104512
movl %r15d, %ecx
movq (%rsp), %rdx
movq 0x68(%rdx), %rax
subq 0x60(%rdx), %rax
cqto
idivq %rbp
cmpq %rcx, %rax
jbe 0x547d9
movl %r15d, 0x20(%rsp)
movq %r14, %rdi
movq %r12, %rsi
callq 0x10996
movl 0x24(%rax), %esi
movq %rbx, %rdi
callq 0x4760
movq %rax, %rdi
movq %r13, %rsi
callq 0x4480
incl %r15d
jmp 0x54795
leaq 0xadd9e(%rip), %rsi     # 0x10257e
movq %rbx, %rdi
callq 0x4480
leaq 0xaf0e8(%rip), %rsi     # 0x1038d7
movq %rbx, %rdi
callq 0x4480
xorl %eax, %eax
leaq 0xafd12(%rip), %r14     # 0x104512
movq 0x8(%rsp), %r15
movl %eax, %r12d
movq (%rsp), %rcx
movq 0x68(%rcx), %rax
subq 0x60(%rcx), %rax
cqto
idivq %rbp
cmpq %r12, %rax
jbe 0x5483b
movq %rbx, %rdi
movq %r12, %rsi
callq 0x42e0
movq %rax, %rdi
movq %r14, %rsi
callq 0x4480
leal 0x1(%r12), %eax
jmp 0x54805
leaq 0xadd3c(%rip), %r14     # 0x10257e
movq %rbx, %rdi
movq %r14, %rsi
callq 0x4480
leaq 0xaf097(%rip), %rsi     # 0x1038eb
movq %rbx, %rdi
callq 0x4480
movq %rax, %rdi
movq %r14, %rsi
callq 0x4480
xorl %eax, %eax
movq 0xfb750(%rip), %r14     # 0x14ffc0
movl %eax, %r12d
movq (%rsp), %rcx
movq 0x68(%rcx), %rax
subq 0x60(%rcx), %rax
cqto
idivq %rbp
cmpq %r12, %rax
jbe 0x548a6
movq %r15, %rdi
movq %r12, %rsi
callq 0xabe2
movq %rax, %rdi
movq %r14, %rsi
callq 0x3d5e0
leal 0x1(%r12), %eax
jmp 0x54870
leaq 0xaf050(%rip), %rsi     # 0x1038fd
movq %rbx, %rdi
callq 0x4480
movq %rax, %rdi
movq (%rsp), %r14
leaq 0x90(%r14), %rax
movq %rax, 0x18(%rsp)
movq 0x98(%r14), %rax
subq 0x90(%r14), %rax
pushq $0xc
popq %rcx
cqto
idivq %rcx
movq %rax, %rsi
callq 0x42e0
leaq 0xadc91(%rip), %rsi     # 0x10257e
movq %rax, %rdi
callq 0x4480
leaq 0xa8(%r14), %rax
movq %rax, 0x10(%rsp)
xorl %ebp, %ebp
leaq 0x20(%rsp), %r15
leaq 0xafc03(%rip), %r13     # 0x104512
movl %ebp, %ebp
movq (%rsp), %rcx
movq 0x98(%rcx), %rax
subq 0x90(%rcx), %rax
cqto
pushq $0xc
popq %rcx
idivq %rcx
cmpq %rbp, %rax
jbe 0x54a51
movq 0x18(%rsp), %rdi
movq %rbp, %rsi
callq 0x576b6
movl (%rax), %r12d
movl 0x4(%rax), %r14d
movl 0x8(%rax), %eax
movl %eax, 0x8(%rsp)
movq 0x10(%rsp), %rdi
movq %rbp, %rsi
callq 0x4bbec
movq %r15, %rdi
movq %rax, %rsi
callq 0xa6ce
movq %rbx, %rdi
leaq 0xaef9f(%rip), %rsi     # 0x103910
callq 0x4480
movq %rax, %rdi
movq %rbp, %rsi
callq 0x42e0
movq %rax, %rdi
leaq 0xadbf3(%rip), %rsi     # 0x10257e
callq 0x4480
movq %rax, %rdi
leaq 0xaef8b(%rip), %rsi     # 0x103925
callq 0x4480
movq %rax, %rdi
movl %r12d, %esi
callq 0x4760
movq %rax, %rdi
movq %r13, %rsi
callq 0x4480
movq %rax, %rdi
movl %r14d, %esi
callq 0x4760
movq %rax, %rdi
movq %r13, %rsi
callq 0x4480
movq %rax, %rdi
movl 0x8(%rsp), %esi
callq 0x4760
movq %rax, %rdi
leaq 0xadb9d(%rip), %rsi     # 0x10257e
callq 0x4480
movq %rax, %rdi
leaq 0xaef4e(%rip), %rsi     # 0x10393e
callq 0x4480
xorl %r14d, %r14d
movl %r14d, %r14d
movq 0x28(%rsp), %rax
subq 0x20(%rsp), %rax
sarq $0x2, %rax
cmpq %r14, %rax
jbe 0x54a33
movq %r15, %rdi
movq %r14, %rsi
callq 0xac00
movl (%rax), %esi
movq %rbx, %rdi
callq 0x4760
movq %rax, %rdi
movq %r13, %rsi
callq 0x4480
incl %r14d
jmp 0x549f8
movq %rbx, %rdi
leaq 0xadb41(%rip), %rsi     # 0x10257e
callq 0x4480
movq %r15, %rdi
callq 0xb290
incl %ebp
jmp 0x5490f
addq $0x38, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
jmp 0x54a62
movq %rax, %rbx
leaq 0x20(%rsp), %rdi
callq 0xb290
movq %rbx, %rdi
callq 0x4780
nop