// File: icemiliang[P]vot/src/votx/otx.cc
// Function: votx::OTX::write_empirical(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>)
void OTX::write_empirical(std::string filename) {
        std::ofstream of(filename);
        of << "empirical " << vNumEmpiricalXs << " " << vDim << std::endl;
        for (int i = 0; i < vNumEmpiricalXs; i++) {
            of << "{ mass: " << vEmpiricalXs[i]->mass() << " dirac index: " << vEmpiricalXs[i]->di() << " } ";
            for (int j = 0; j < vDim; j++) {
                of << (*vEmpiricalXs[i])[j] << " ";
            }
            of << std::endl;
        }
        of.close();
    }

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x2a0, %rsp            # imm = 0x2A0
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movq -0x8(%rbp), %rax
movq %rax, -0x240(%rbp)
leaq -0x210(%rbp), %rdi
movq %rdi, -0x238(%rbp)
movl $0x10, %edx
callq 0x9990
movq -0x238(%rbp), %rdi
leaq 0x60fe(%rip), %rsi      # 0x26062
callq 0x9480
movq %rax, -0x230(%rbp)
jmp 0x1ff72
movq -0x230(%rbp), %rdi
movq -0x240(%rbp), %rax
movl 0x80(%rax), %esi
callq 0x9890
movq %rax, -0x248(%rbp)
jmp 0x1ff94
movq -0x248(%rbp), %rdi
leaq 0x6027(%rip), %rsi      # 0x25fc9
callq 0x9480
movq %rax, -0x250(%rbp)
jmp 0x1ffb0
movq -0x250(%rbp), %rdi
movq -0x240(%rbp), %rax
movl 0x84(%rax), %esi
callq 0x9890
movq %rax, -0x258(%rbp)
jmp 0x1ffd2
movq -0x258(%rbp), %rdi
movq 0x16f68(%rip), %rsi     # 0x36f48
callq 0x94d0
jmp 0x1ffe7
movl $0x0, -0x220(%rbp)
movq -0x240(%rbp), %rcx
movl -0x220(%rbp), %eax
cmpl 0x80(%rcx), %eax
jge 0x201c6
leaq 0x603f(%rip), %rsi      # 0x26050
leaq -0x210(%rbp), %rdi
callq 0x9480
movq %rax, -0x260(%rbp)
jmp 0x20026
movq -0x240(%rbp), %rdi
addq $0x18, %rdi
movslq -0x220(%rbp), %rsi
callq 0x20a80
movq (%rax), %rdi
callq 0x20780
movsd %xmm0, -0x268(%rbp)
jmp 0x2004f
movsd -0x268(%rbp), %xmm0
movq -0x260(%rbp), %rdi
callq 0x9960
movq %rax, -0x270(%rbp)
jmp 0x2006c
movq -0x270(%rbp), %rdi
leaq 0x5ff3(%rip), %rsi      # 0x2606d
callq 0x9480
movq %rax, -0x278(%rbp)
jmp 0x20088
movq -0x240(%rbp), %rdi
addq $0x18, %rdi
movslq -0x220(%rbp), %rsi
callq 0x20a80
movq (%rax), %rdi
callq 0x20e50
movl %eax, -0x27c(%rbp)
jmp 0x200af
movl -0x27c(%rbp), %esi
movq -0x278(%rbp), %rdi
callq 0x9890
movq %rax, -0x288(%rbp)
jmp 0x200ca
movq -0x288(%rbp), %rdi
leaq 0x5f86(%rip), %rsi      # 0x2605e
callq 0x9480
jmp 0x200df
movl $0x0, -0x224(%rbp)
movq -0x240(%rbp), %rcx
movl -0x224(%rbp), %eax
cmpl 0x84(%rcx), %eax
jge 0x2019b
movq -0x240(%rbp), %rdi
addq $0x18, %rdi
movslq -0x220(%rbp), %rsi
callq 0x20a80
movq (%rax), %rdi
movl -0x224(%rbp), %esi
callq 0x20aa0
movq %rax, -0x290(%rbp)
jmp 0x20130
movq -0x290(%rbp), %rax
movsd (%rax), %xmm0
leaq -0x210(%rbp), %rdi
callq 0x9960
movq %rax, -0x298(%rbp)
jmp 0x20150
movq -0x298(%rbp), %rdi
leaq 0x5e6b(%rip), %rsi      # 0x25fc9
callq 0x9480
jmp 0x20165
jmp 0x20167
movl -0x224(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x224(%rbp)
jmp 0x200e9
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x218(%rbp)
movl %eax, -0x21c(%rbp)
leaq -0x210(%rbp), %rdi
callq 0x9730
jmp 0x201e9
movq 0x16da6(%rip), %rsi     # 0x36f48
leaq -0x210(%rbp), %rdi
callq 0x94d0
jmp 0x201b0
jmp 0x201b2
movl -0x220(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x220(%rbp)
jmp 0x1fff1
leaq -0x210(%rbp), %rdi
callq 0x96d0
jmp 0x201d4
leaq -0x210(%rbp), %rdi
callq 0x9730
addq $0x2a0, %rsp            # imm = 0x2A0
popq %rbp
retq
movq -0x218(%rbp), %rdi
callq 0x98c0
nopw %cs:(%rax,%rax)
nop