// File: /workspace/github_cpp_makefile_star2_O2/icemiliang[P]vot/src/vot/diagram.cc
// Function: vot::Diagram::write_results(int, int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>)
void Diagram::write_results(int const iterD, int const iterH, std::string pFilePrefix) {
        std::cout << "File prefix: " << pFilePrefix << std::endl;
        std::string diagramFileName = pFilePrefix + "_diagram_" + std::to_string(iterD) 
                                                  + "_" + std::to_string(iterH)+ ".gnu";
        std::string pFileName = pFilePrefix + "_" + std::to_string(iterD) 
                                            + "_" + std::to_string(iterH) + ".vot";
        std::string pFileNameInput = pFilePrefix + "_" + std::to_string(iterD) 
                                                 + "_" + std::to_string(iterH) + "_input.vot";

        // Reconstruct the diagram in case the data stored in the voro++ object is not updated.
        mDiagram->clear();
        for (int i = 0; i < mNumDiracs; i++) {
            mDiagram->put(i, mDiracs[i].x(), mDiracs[i].y(), mDiracs[i].z(), sqrt(mHs[i]));
        }
        
        draw_diagram(diagramFileName);
        write_dirac(pFileName);
        write_dirac_as_input(pFileNameInput);
    }

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r12
pushq %rbx
subq $0x1a0, %rsp            # imm = 0x1A0
movq %rcx, %r15
movl %edx, %ebp
movl %esi, %r14d
movq %rdi, %rbx
movq 0x4d053(%rip), %rdi     # 0x5af98
leaq 0x30cb1(%rip), %rsi     # 0x3ebfd
callq 0x7360
movq %rax, %rdi
movq %r15, %rsi
callq 0x7330
movq %rax, %rdi
callq 0x71c0
leaq 0x30ca0(%rip), %rdx     # 0x3ec0b
leaq 0x48(%rsp), %rdi
movq %r15, %rsi
callq 0x8e59
leaq 0x28(%rsp), %rdi
movl %r14d, %esi
callq 0xedec
leaq 0x68(%rsp), %rdi
leaq 0x48(%rsp), %rsi
leaq 0x28(%rsp), %rdx
callq 0x8d90
leaq 0x30c73(%rip), %rdx     # 0x3ec13
leaq 0x88(%rsp), %rdi
leaq 0x68(%rsp), %rsi
callq 0x8df7
leaq 0x8(%rsp), %rdi
movl %ebp, %esi
callq 0xedec
leaq 0xe0(%rsp), %rdi
leaq 0x88(%rsp), %rsi
leaq 0x8(%rsp), %rdx
callq 0x8d90
leaq 0x30c36(%rip), %rdx     # 0x3ec15
leaq 0x180(%rsp), %rdi
leaq 0xe0(%rsp), %rsi
callq 0x8df7
leaq 0xe0(%rsp), %rdi
callq 0x77f8
leaq 0x8(%rsp), %rdi
callq 0x77f8
leaq 0x88(%rsp), %rdi
callq 0x77f8
leaq 0x68(%rsp), %rdi
callq 0x77f8
leaq 0x28(%rsp), %rdi
callq 0x77f8
leaq 0x48(%rsp), %rdi
callq 0x77f8
leaq 0x30bd6(%rip), %rdx     # 0x3ec13
leaq 0x28(%rsp), %rdi
movq %r15, %rsi
callq 0x8e59
leaq 0x8(%rsp), %rdi
movl %r14d, %esi
callq 0xedec
leaq 0x48(%rsp), %rdi
leaq 0x28(%rsp), %rsi
leaq 0x8(%rsp), %rdx
callq 0x8d90
leaq 0x30ba1(%rip), %rdx     # 0x3ec13
leaq 0x68(%rsp), %rdi
leaq 0x48(%rsp), %rsi
callq 0x8df7
leaq 0xc0(%rsp), %rdi
movl %ebp, %esi
callq 0xedec
leaq 0x88(%rsp), %rdi
leaq 0x68(%rsp), %rsi
leaq 0xc0(%rsp), %rdx
callq 0x8d90
leaq 0x30b6f(%rip), %rdx     # 0x3ec20
leaq 0xe0(%rsp), %rdi
leaq 0x88(%rsp), %rsi
callq 0x8df7
leaq 0x88(%rsp), %rdi
callq 0x77f8
leaq 0xc0(%rsp), %rdi
callq 0x77f8
leaq 0x68(%rsp), %rdi
callq 0x77f8
leaq 0x48(%rsp), %rdi
callq 0x77f8
leaq 0x8(%rsp), %rdi
callq 0x77f8
leaq 0x28(%rsp), %rdi
callq 0x77f8
leaq 0x30b04(%rip), %rdx     # 0x3ec13
leaq 0x8(%rsp), %rdi
movq %r15, %rsi
callq 0x8e59
leaq 0xc0(%rsp), %rdi
movl %r14d, %esi
callq 0xedec
leaq 0x28(%rsp), %rdi
leaq 0x8(%rsp), %rsi
leaq 0xc0(%rsp), %rdx
callq 0x8d90
leaq 0x30ac9(%rip), %rdx     # 0x3ec13
leaq 0x48(%rsp), %rdi
leaq 0x28(%rsp), %rsi
callq 0x8df7
leaq 0x160(%rsp), %rdi
movl %ebp, %esi
callq 0xedec
leaq 0x68(%rsp), %rdi
leaq 0x48(%rsp), %rsi
leaq 0x160(%rsp), %rdx
callq 0x8d90
leaq 0x30a94(%rip), %rdx     # 0x3ec1a
leaq 0x88(%rsp), %rdi
leaq 0x68(%rsp), %rsi
callq 0x8df7
leaq 0x68(%rsp), %rdi
callq 0x77f8
leaq 0x160(%rsp), %rdi
callq 0x77f8
leaq 0x48(%rsp), %rdi
callq 0x77f8
leaq 0x28(%rsp), %rdi
callq 0x77f8
leaq 0xc0(%rsp), %rdi
callq 0x77f8
leaq 0x8(%rsp), %rdi
callq 0x77f8
movq (%rbx), %rdi
callq 0x21ab6
pushq $0x2
popq %r12
xorl %r14d, %r14d
movslq 0x38(%rbx), %rax
cmpq %rax, %r14
jge 0xe284
movq (%rbx), %r15
movq 0x20(%rbx), %rax
movsd -0x10(%rax,%r12,8), %xmm4
movsd -0x8(%rax,%r12,8), %xmm1
movsd (%rax,%r12,8), %xmm2
movq 0x50(%rbx), %rax
movsd (%rax,%r14,8), %xmm0
ucomisd 0x30925(%rip), %xmm0    # 0x3eb48
jb 0xe22b
sqrtsd %xmm0, %xmm3
jmp 0xe26a
movsd %xmm4, 0xb8(%rsp)
movsd %xmm1, 0xb0(%rsp)
movsd %xmm2, 0xa8(%rsp)
callq 0x72e0
movsd 0xa8(%rsp), %xmm2
movsd 0xb0(%rsp), %xmm1
movsd 0xb8(%rsp), %xmm4
movapd %xmm0, %xmm3
movq %r15, %rdi
movl %r14d, %esi
movaps %xmm4, %xmm0
callq 0x20caa
incq %r14
addq $0x6, %r12
jmp 0xe1e9
leaq 0x140(%rsp), %rdi
leaq 0x180(%rsp), %rsi
callq 0x74d0
leaq 0x140(%rsp), %rsi
movq %rbx, %rdi
callq 0xdbfc
leaq 0x140(%rsp), %rdi
callq 0x77f8
leaq 0x120(%rsp), %rdi
leaq 0xe0(%rsp), %rsi
callq 0x74d0
leaq 0x120(%rsp), %rsi
movq %rbx, %rdi
callq 0xddcc
leaq 0x120(%rsp), %rdi
callq 0x77f8
leaq 0x100(%rsp), %rdi
leaq 0x88(%rsp), %rsi
callq 0x74d0
leaq 0x100(%rsp), %rsi
movq %rbx, %rdi
callq 0xdc3e
leaq 0x100(%rsp), %rdi
callq 0x77f8
leaq 0x88(%rsp), %rdi
callq 0x77f8
leaq 0xe0(%rsp), %rdi
callq 0x77f8
leaq 0x180(%rsp), %rdi
callq 0x77f8
addq $0x1a0, %rsp            # imm = 0x1A0
popq %rbx
popq %r12
popq %r14
popq %r15
popq %rbp
retq
movq %rax, %rbx
leaq 0x100(%rsp), %rdi
jmp 0xe376
movq %rax, %rbx
leaq 0x120(%rsp), %rdi
jmp 0xe376
movq %rax, %rbx
leaq 0x140(%rsp), %rdi
callq 0x77f8
jmp 0xe4a6
movq %rax, %rbx
leaq 0x68(%rsp), %rdi
callq 0x77f8
jmp 0xe392
movq %rax, %rbx
leaq 0x160(%rsp), %rdi
callq 0x77f8
jmp 0xe3a4
movq %rax, %rbx
leaq 0x48(%rsp), %rdi
callq 0x77f8
jmp 0xe3b3
movq %rax, %rbx
leaq 0x28(%rsp), %rdi
callq 0x77f8
jmp 0xe3c2
movq %rax, %rbx
leaq 0xc0(%rsp), %rdi
callq 0x77f8
leaq 0x8(%rsp), %rdi
jmp 0xe4ae
movq %rax, %rbx
jmp 0xe3cf
movq %rax, %rbx
jmp 0xe4b3
movq %rax, %rbx
leaq 0x88(%rsp), %rdi
callq 0x77f8
jmp 0xe3fb
movq %rax, %rbx
leaq 0xc0(%rsp), %rdi
callq 0x77f8
jmp 0xe40d
movq %rax, %rbx
leaq 0x68(%rsp), %rdi
callq 0x77f8
jmp 0xe41c
movq %rax, %rbx
leaq 0x48(%rsp), %rdi
callq 0x77f8
jmp 0xe42b
movq %rax, %rbx
leaq 0x8(%rsp), %rdi
callq 0x77f8
leaq 0x28(%rsp), %rdi
jmp 0xe4bb
movq %rax, %rbx
jmp 0xe435
movq %rax, %rbx
jmp 0xe4c0
movq %rax, %rbx
leaq 0xe0(%rsp), %rdi
callq 0x77f8
jmp 0xe45b
movq %rax, %rbx
leaq 0x8(%rsp), %rdi
callq 0x77f8
jmp 0xe46a
movq %rax, %rbx
leaq 0x88(%rsp), %rdi
callq 0x77f8
jmp 0xe47c
movq %rax, %rbx
leaq 0x68(%rsp), %rdi
callq 0x77f8
jmp 0xe48b
movq %rax, %rbx
leaq 0x28(%rsp), %rdi
callq 0x77f8
leaq 0x48(%rsp), %rdi
jmp 0xe4c8
movq %rax, %rbx
jmp 0xe495
jmp 0xe4a3
movq %rax, %rbx
leaq 0x88(%rsp), %rdi
callq 0x77f8
leaq 0xe0(%rsp), %rdi
callq 0x77f8
leaq 0x180(%rsp), %rdi
callq 0x77f8
movq %rbx, %rdi
callq 0x76c0
nop