// File: /workspace/github_cpp_makefile_star2_O1/Cell-veto[P]postlhc/./ecmc.hpp
// Function: ChainRunner<IPL, Monodisperse2D>::dump_statistics(std::ostream&)
virtual
    void dump_statistics (std::ostream &os)
    {
        using boost::format;

        // some of these are physics data, so increase precision
        os.precision (15);
        // dump performance metrics
        uint64_t num_events = sum_uivector (all_events);
        os
            << "# new-style logfile -- episode dump\n"
            << "perfstat walltime "
            << walltime*1e-6 << " seconds\n"
            << "perfstat num_events "
            << num_events << "\n"
            << "perfstat events_per_hour "
            << format ("%.3e\n") % (3600. * num_events / walltime * 1e6)
            << "perfstat ratio_lr_events "
            << fdivide (sum_uivector (longrange_events), num_events) << "\n"
            << "perfstat predicts_per_event "
            << fdivide (shortrange_predicts, num_events) << " sr "
            << fdivide (longrange_predicts, num_events) << " lr\n";

        // EC dynamics
        os
            << "ecstat cumulative_disp "
            << cumulative_disp << "\n"
            << "ecstat cumulative_xdisp "
            << cumulative_xdisp << "\n"
            << "ecstat mean_free_path "
            << elementwise_fdivide (cumulative_disp, all_events) << "\n"
            << "ecstat mean_xdisp "
            << elementwise_fdivide (cumulative_xdisp, all_events) << "\n"
            << "ecstat mean_events_per_chain "
            << elementwise_fdivide (all_events, chainend_events) << "\n"
            << "ecstat scaled_mean_events_per_chain "
            << elementwise_fdivide (all_events,
                elementwise_product (chainend_events, target_epc)) << "\n"
            << "ecstat mean_tdisp_per_chain "
            << elementwise_fdivide (cumulative_disp + cumulative_xdisp, chainend_events) << "\n"
            << "ecstat scaled_mean_tdisp_per_chain "
            << elementwise_fdivide (cumulative_disp + cumulative_xdisp,
                elementwise_product (chainend_events, target_tdisppc)) << "\n";

        // compressibility factor: beta pressure / rho
        if (!inter.poison_xdisp_pressure ())
        {
            os
                << "compressib_factor instantaneous "
                << elementwise_fdivide (cumulative_disp + cumulative_xdisp, cumulative_disp) << "\n";
        }

        // zero
        os << "# new-style logfile -- clearing counters\n";
        reset_statistics ();
    }

// Assembly:
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x190, %rsp            # imm = 0x190
movq %rsi, %r14
movq %rdi, %rbx
movq (%rsi), %rax
movq -0x18(%rax), %rax
movq $0xf, 0x8(%rsi,%rax)
movq 0xce8(%rdi), %r15
addq 0xcf0(%rdi), %r15
leaq 0x1aa5b8(%rip), %rsi    # 0x5cb217
movl $0x24, %edx
movq %r14, %rdi
callq 0x4b14d0
leaq 0x1aa5c9(%rip), %rsi    # 0x5cb23c
movl $0x12, %edx
movq %r14, %rdi
callq 0x4b14d0
movsd 0xcc0(%rbx), %xmm1
unpcklps 0x1aa421(%rip), %xmm1   # xmm1 = xmm1[0],mem[0],xmm1[1],mem[1]
subpd 0x1aa429(%rip), %xmm1   # 0x5cb0c0
movapd %xmm1, %xmm0
unpckhpd %xmm1, %xmm0            # xmm0 = xmm0[1],xmm1[1]
addsd %xmm1, %xmm0
mulsd 0x1aa2e5(%rip), %xmm0   # 0x5caf90
movq %r14, %rdi
callq 0x4b2730
movq %rax, %r12
leaq 0x1aa592(%rip), %rsi    # 0x5cb24f
movl $0x9, %edx
movq %rax, %rdi
callq 0x4b14d0
leaq 0x1aa588(%rip), %rsi    # 0x5cb259
movl $0x14, %edx
movq %r12, %rdi
callq 0x4b14d0
movq %r12, %rdi
movq %r15, %rsi
callq 0x4b1dd0
movq %rax, %r12
leaq 0x1baef7(%rip), %rsi    # 0x5dbbea
movl $0x1, %edx
movq %rax, %rdi
callq 0x4b14d0
leaq 0x1aa567(%rip), %rsi    # 0x5cb26e
movl $0x19, %edx
movq %r12, %rdi
callq 0x4b14d0
leaq 0x1aa56d(%rip), %rsi    # 0x5cb288
leaq 0x18(%rsp), %r13
movq %r13, %rdi
callq 0x407aac
movq %r15, %xmm0
movq 0x1aa37b(%rip), %xmm2   # 0x5cb0b0
punpckldq %xmm2, %xmm0    # xmm0 = xmm0[0],xmm2[0],xmm0[1],xmm2[1]
movapd 0x1aa37f(%rip), %xmm3   # 0x5cb0c0
subpd %xmm3, %xmm0
movapd %xmm0, %xmm1
unpckhpd %xmm0, %xmm1            # xmm1 = xmm1[1],xmm0[1]
addsd %xmm0, %xmm1
movsd 0x1aa23f(%rip), %xmm0   # 0x5caf98
movapd %xmm1, (%rsp)
mulsd %xmm1, %xmm0
movq 0xcc0(%rbx), %xmm1
punpckldq %xmm2, %xmm1    # xmm1 = xmm1[0],xmm2[0],xmm1[1],xmm2[1]
subpd %xmm3, %xmm1
movapd %xmm1, %xmm2
unpckhpd %xmm1, %xmm2            # xmm2 = xmm2[1],xmm1[1]
addsd %xmm1, %xmm2
divsd %xmm2, %xmm0
mulsd 0x1aa216(%rip), %xmm0   # 0x5cafa0
leaq 0x150(%rsp), %rax
movsd %xmm0, (%rax)
leaq 0xf8(%rsp), %rsi
movq %rax, (%rsi)
leaq -0x127c0(%rip), %rax    # 0x40e5e8
movq %rax, 0x8(%rsi)
leaq -0x127ca(%rip), %rax    # 0x40e5e9
movq %rax, 0x10(%rsi)
movq %r13, %rdi
callq 0x40aeb6
movq %r12, %rdi
movq %rax, %rsi
callq 0x40e43d
movq %rax, %r15
leaq 0x1aa4ba(%rip), %rsi    # 0x5cb28e
movl $0x19, %edx
movq %rax, %rdi
callq 0x4b14d0
movq 0xcf8(%rbx), %rax
addq 0xd00(%rbx), %rax
movq %rax, %xmm1
punpckldq 0x1aa2b4(%rip), %xmm1 # xmm1 = xmm1[0],mem[0],xmm1[1],mem[1]
subpd 0x1aa2bc(%rip), %xmm1   # 0x5cb0c0
movapd %xmm1, %xmm0
unpckhpd %xmm1, %xmm0            # xmm0 = xmm0[1],xmm1[1]
addsd %xmm1, %xmm0
divsd (%rsp), %xmm0
movq %r15, %rdi
callq 0x4b2730
movq %rax, %r15
leaq 0x1badc3(%rip), %rsi    # 0x5dbbea
movl $0x1, %edx
movq %rax, %rdi
callq 0x4b14d0
leaq 0x1aa46d(%rip), %rsi    # 0x5cb2a8
movl $0x1c, %edx
movq %r15, %rdi
callq 0x4b14d0
movsd 0xd20(%rbx), %xmm1
unpcklps 0x1aa259(%rip), %xmm1   # xmm1 = xmm1[0],mem[0],xmm1[1],mem[1]
subpd 0x1aa261(%rip), %xmm1   # 0x5cb0c0
movapd %xmm1, %xmm0
unpckhpd %xmm1, %xmm0            # xmm0 = xmm0[1],xmm1[1]
addsd %xmm1, %xmm0
divsd (%rsp), %xmm0
movq %r15, %rdi
callq 0x4b2730
movq %rax, %r15
leaq 0x1aa443(%rip), %rsi    # 0x5cb2c5
movl $0x4, %edx
movq %rax, %rdi
callq 0x4b14d0
movsd 0xd18(%rbx), %xmm1
unpcklps 0x1aa212(%rip), %xmm1   # xmm1 = xmm1[0],mem[0],xmm1[1],mem[1]
subpd 0x1aa21a(%rip), %xmm1   # 0x5cb0c0
movapd %xmm1, %xmm0
unpckhpd %xmm1, %xmm0            # xmm0 = xmm0[1],xmm1[1]
addsd %xmm1, %xmm0
divsd (%rsp), %xmm0
movq %r15, %rdi
callq 0x4b2730
leaq 0x1aa404(%rip), %rsi    # 0x5cb2ca
movl $0x4, %edx
movq %rax, %rdi
callq 0x4b14d0
cmpb $0x1, 0xe8(%rsp)
jne 0x420ef2
leaq 0xf0(%rsp), %r15
movq %r15, %rdi
callq 0x4484b0
movb $0x0, -0x8(%r15)
leaq 0x228fc7(%rip), %rax    # 0x649ec0
movq %rax, 0x90(%rsp)
cmpb $0x1, 0xd8(%rsp)
jne 0x420f33
leaq 0xa8(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq $0x0, 0x10(%rax)
leaq 0xc0(%rsp), %rcx
cmoveq %rax, %rcx
movq (%rcx), %rsi
subq %rdi, %rsi
callq 0x4440d0
leaq 0xc8(%rsp), %r15
movb $0x0, 0x10(%r15)
movq $0x0, 0x8(%r15)
xorpd %xmm0, %xmm0
movupd %xmm0, -0x30(%r15)
movupd %xmm0, -0x20(%r15)
movupd %xmm0, -0x10(%r15)
movq $0x650a38, %rax         # imm = 0x650A38
addq $0x10, %rax
movq %rax, -0x38(%r15)
movq %r15, %rdi
callq 0x4484b0
movq -0x60(%r15), %rdi
leaq 0x78(%rsp), %rax
cmpq %rax, %rdi
je 0x420f90
movq 0x78(%rsp), %rsi
incq %rsi
callq 0x4440d0
movq 0x30(%rsp), %rdi
testq %rdi, %rdi
je 0x420fc0
movq 0x50(%rsp), %rsi
subq %rdi, %rsi
callq 0x4440d0
xorl %eax, %eax
movq %rax, 0x30(%rsp)
movl %eax, 0x38(%rsp)
movq %rax, 0x40(%rsp)
movl %eax, 0x48(%rsp)
movq %rax, 0x50(%rsp)
leaq 0x18(%rsp), %rdi
callq 0x407da2
leaq 0x1aa2fe(%rip), %rsi    # 0x5cb2cf
movl $0x17, %edx
movq %r14, %rdi
callq 0x4b14d0
leaq 0xcc8(%rbx), %rsi
movq %r14, %rdi
callq 0x40e5ab
movq %rax, %r15
leaq 0x1babf3(%rip), %r12    # 0x5dbbea
movl $0x1, %edx
movq %rax, %rdi
movq %r12, %rsi
callq 0x4b14d0
leaq 0x1aa2d9(%rip), %rsi    # 0x5cb2e7
movl $0x18, %edx
movq %r15, %rdi
callq 0x4b14d0
leaq 0xcd8(%rbx), %rsi
movq %r15, %rdi
callq 0x40e5ab
movq %rax, %r15
movl $0x1, %edx
movq %rax, %rdi
movq %r12, %rsi
callq 0x4b14d0
leaq 0x1aa2bc(%rip), %rsi    # 0x5cb300
movl $0x16, %edx
movq %r15, %rdi
callq 0x4b14d0
xorl %eax, %eax
movsd 0x1aa055(%rip), %xmm3   # 0x5cb0b0
movsd 0xcc8(%rbx,%rax,8), %xmm0
movsd 0xce8(%rbx,%rax,8), %xmm1
unpcklps %xmm3, %xmm1            # xmm1 = xmm1[0],xmm3[0],xmm1[1],xmm3[1]
subpd 0x1aa048(%rip), %xmm1   # 0x5cb0c0
movapd %xmm1, %xmm2
unpckhpd %xmm1, %xmm2            # xmm2 = xmm2[1],xmm1[1]
addsd %xmm1, %xmm2
divsd %xmm2, %xmm0
movsd %xmm0, 0x18(%rsp,%rax,8)
incq %rax
cmpq $0x2, %rax
jne 0x42105b
movupd 0x18(%rsp), %xmm0
leaq 0xf8(%rsp), %rsi
movupd %xmm0, (%rsi)
movq %r15, %rdi
callq 0x40e5ab
movq %rax, %r15
leaq 0x1bab2f(%rip), %rsi    # 0x5dbbea
movl $0x1, %edx
movq %rax, %rdi
callq 0x4b14d0
leaq 0x1aa248(%rip), %rsi    # 0x5cb317
movl $0x12, %edx
movq %r15, %rdi
callq 0x4b14d0
movapd 0x1a9fdc(%rip), %xmm4   # 0x5cb0c0
movsd 0x1a9fc4(%rip), %xmm3   # 0x5cb0b0
movl $0x19d, %eax            # imm = 0x19D
movsd -0x10(%rbx,%rax,8), %xmm0
movsd (%rbx,%rax,8), %xmm1
unpcklps %xmm3, %xmm1            # xmm1 = xmm1[0],xmm3[0],xmm1[1],xmm3[1]
subpd %xmm4, %xmm1
movapd %xmm1, %xmm2
unpckhpd %xmm1, %xmm2            # xmm2 = xmm2[1],xmm1[1]
addsd %xmm1, %xmm2
divsd %xmm2, %xmm0
movsd %xmm0, -0xcd0(%rsp,%rax,8)
incq %rax
cmpq $0x19f, %rax            # imm = 0x19F
jne 0x4210f1
movupd 0x18(%rsp), %xmm0
leaq 0x150(%rsp), %rsi
movupd %xmm0, (%rsi)
movq %r15, %rdi
callq 0x40e5ab
movq %rax, %r15
leaq 0x1baa9f(%rip), %rsi    # 0x5dbbea
movl $0x1, %edx
movq %rax, %rdi
callq 0x4b14d0
leaq 0x1aa1cb(%rip), %rsi    # 0x5cb32a
movl $0x1d, %edx
movq %r15, %rdi
callq 0x4b14d0
movsd 0x1a9f3c(%rip), %xmm3   # 0x5cb0b0
xorl %eax, %eax
movapd 0x1a9f42(%rip), %xmm4   # 0x5cb0c0
movsd 0xce8(%rbx,%rax,8), %xmm0
unpcklps %xmm3, %xmm0            # xmm0 = xmm0[0],xmm3[0],xmm0[1],xmm3[1]
subpd %xmm4, %xmm0
movapd %xmm0, %xmm1
unpckhpd %xmm0, %xmm1            # xmm1 = xmm1[1],xmm0[1]
addsd %xmm0, %xmm1
movsd 0xd08(%rbx,%rax,8), %xmm0
unpcklps %xmm3, %xmm0            # xmm0 = xmm0[0],xmm3[0],xmm0[1],xmm3[1]
subpd %xmm4, %xmm0
movapd %xmm0, %xmm2
unpckhpd %xmm0, %xmm2            # xmm2 = xmm2[1],xmm0[1]
addsd %xmm0, %xmm2
divsd %xmm2, %xmm1
movsd %xmm1, 0x18(%rsp,%rax,8)
incq %rax
cmpq $0x2, %rax
jne 0x42117e
movupd 0x18(%rsp), %xmm0
leaq 0x180(%rsp), %rsi
movupd %xmm0, (%rsi)
movq %r15, %rdi
callq 0x40e5ab
movq %rax, %r15
leaq 0x1ba9fd(%rip), %rsi    # 0x5dbbea
movl $0x1, %edx
movq %rax, %rdi
callq 0x4b14d0
leaq 0x1aa147(%rip), %rsi    # 0x5cb348
movl $0x24, %edx
movq %r15, %rdi
callq 0x4b14d0
movsd 0x1a9e9a(%rip), %xmm2   # 0x5cb0b0
xorl %eax, %eax
movapd 0x1a9ea0(%rip), %xmm3   # 0x5cb0c0
movsd 0xd08(%rbx,%rax,8), %xmm0
unpcklps %xmm2, %xmm0            # xmm0 = xmm0[0],xmm2[0],xmm0[1],xmm2[1]
subpd %xmm3, %xmm0
movapd %xmm0, %xmm1
unpckhpd %xmm0, %xmm1            # xmm1 = xmm1[1],xmm0[1]
addsd %xmm0, %xmm1
mulsd 0xca0(%rbx,%rax,8), %xmm1
movsd %xmm1, 0x18(%rsp,%rax,8)
incq %rax
cmpq $0x2, %rax
jne 0x421220
movupd 0x18(%rsp), %xmm0
movupd %xmm0, 0x140(%rsp)
xorl %eax, %eax
movsd 0xce8(%rbx,%rax,8), %xmm0
unpcklps %xmm2, %xmm0            # xmm0 = xmm0[0],xmm2[0],xmm0[1],xmm2[1]
subpd %xmm3, %xmm0
movapd %xmm0, %xmm1
unpckhpd %xmm0, %xmm1            # xmm1 = xmm1[1],xmm0[1]
addsd %xmm0, %xmm1
divsd 0x140(%rsp,%rax,8), %xmm1
movsd %xmm1, 0x18(%rsp,%rax,8)
incq %rax
cmpq $0x2, %rax
jne 0x421265
movupd 0x18(%rsp), %xmm0
leaq 0x170(%rsp), %rsi
movupd %xmm0, (%rsi)
movq %r15, %rdi
callq 0x40e5ab
movq %rax, %r15
leaq 0x1ba92d(%rip), %rsi    # 0x5dbbea
movl $0x1, %edx
movq %rax, %rdi
callq 0x4b14d0
leaq 0x1aa09c(%rip), %rsi    # 0x5cb36d
movl $0x1c, %edx
movq %r15, %rdi
callq 0x4b14d0
movl $0x19b, %eax            # imm = 0x19B
movsd -0x10(%rbx,%rax,8), %xmm0
addsd (%rbx,%rax,8), %xmm0
movsd %xmm0, -0xcc0(%rsp,%rax,8)
incq %rax
cmpq $0x19d, %rax            # imm = 0x19D
jne 0x4212e3
movupd 0x18(%rsp), %xmm0
movupd %xmm0, 0x130(%rsp)
xorl %eax, %eax
movsd 0x1a9d95(%rip), %xmm3   # 0x5cb0b0
movapd 0x1a9d9d(%rip), %xmm4   # 0x5cb0c0
movsd 0x130(%rsp,%rax,8), %xmm0
movsd 0xd08(%rbx,%rax,8), %xmm1
unpcklps %xmm3, %xmm1            # xmm1 = xmm1[0],xmm3[0],xmm1[1],xmm3[1]
subpd %xmm4, %xmm1
movapd %xmm1, %xmm2
unpckhpd %xmm1, %xmm2            # xmm2 = xmm2[1],xmm1[1]
addsd %xmm1, %xmm2
divsd %xmm2, %xmm0
movsd %xmm0, 0x18(%rsp,%rax,8)
incq %rax
cmpq $0x2, %rax
jne 0x421323
movupd 0x18(%rsp), %xmm0
leaq 0x160(%rsp), %rsi
movupd %xmm0, (%rsi)
movq %r15, %rdi
callq 0x40e5ab
movq %rax, %r15
leaq 0x1ba86b(%rip), %rsi    # 0x5dbbea
movl $0x1, %edx
movq %rax, %rdi
callq 0x4b14d0
leaq 0x1a9ff7(%rip), %rsi    # 0x5cb38a
movl $0x23, %edx
movq %r15, %rdi
callq 0x4b14d0
movl $0x19b, %eax            # imm = 0x19B
movsd -0x10(%rbx,%rax,8), %xmm0
addsd (%rbx,%rax,8), %xmm0
movsd %xmm0, -0xcc0(%rsp,%rax,8)
incq %rax
cmpq $0x19d, %rax            # imm = 0x19D
jne 0x4213a5
movupd 0x18(%rsp), %xmm0
movupd %xmm0, 0x120(%rsp)
xorl %eax, %eax
movsd 0x1a9cd3(%rip), %xmm2   # 0x5cb0b0
movapd 0x1a9cdb(%rip), %xmm3   # 0x5cb0c0
movsd 0xd08(%rbx,%rax,8), %xmm0
unpcklps %xmm2, %xmm0            # xmm0 = xmm0[0],xmm2[0],xmm0[1],xmm2[1]
subpd %xmm3, %xmm0
movapd %xmm0, %xmm1
unpckhpd %xmm0, %xmm1            # xmm1 = xmm1[1],xmm0[1]
addsd %xmm0, %xmm1
mulsd 0xcb0(%rbx,%rax,8), %xmm1
movsd %xmm1, 0x18(%rsp,%rax,8)
incq %rax
cmpq $0x2, %rax
jne 0x4213e5
movupd 0x18(%rsp), %xmm0
movupd %xmm0, 0x110(%rsp)
xorl %eax, %eax
movsd 0x120(%rsp,%rax,8), %xmm0
divsd 0x110(%rsp,%rax,8), %xmm0
movsd %xmm0, 0x18(%rsp,%rax,8)
incq %rax
cmpq $0x2, %rax
jne 0x42142a
leaq 0x18(%rsp), %rsi
movupd (%rsi), %xmm0
movupd %xmm0, (%rsi)
movq %r15, %rdi
callq 0x40e5ab
leaq 0x1ba783(%rip), %rsi    # 0x5dbbea
movl $0x1, %edx
movq %rax, %rdi
callq 0x4b14d0
leaq 0x1accca(%rip), %rsi    # 0x5ce145
movl $0x20, %edx
movq %r14, %rdi
callq 0x4b14d0
movl $0x19b, %eax            # imm = 0x19B
movsd -0x10(%rbx,%rax,8), %xmm0
addsd (%rbx,%rax,8), %xmm0
movsd %xmm0, -0xcc0(%rsp,%rax,8)
incq %rax
cmpq $0x19d, %rax            # imm = 0x19D
jne 0x42148d
movupd 0x18(%rsp), %xmm0
movupd %xmm0, 0xf8(%rsp)
xorl %eax, %eax
movsd 0xf8(%rsp,%rax,8), %xmm0
divsd 0xcc8(%rbx,%rax,8), %xmm0
movsd %xmm0, 0x18(%rsp,%rax,8)
incq %rax
cmpq $0x2, %rax
jne 0x4214bd
leaq 0x18(%rsp), %rsi
movups (%rsi), %xmm0
movups %xmm0, (%rsi)
movq %r14, %rdi
callq 0x40e5ab
leaq 0x1ba6f2(%rip), %rsi    # 0x5dbbea
movl $0x1, %edx
movq %rax, %rdi
callq 0x4b14d0
leaq 0x1a9ea2(%rip), %rsi    # 0x5cb3ae
movl $0x29, %edx
movq %r14, %rdi
callq 0x4b14d0
movq (%rbx), %rax
movq %rbx, %rdi
callq *0x20(%rax)
addq $0x190, %rsp            # imm = 0x190
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
retq
movq %rax, %rbx
leaq 0x18(%rsp), %rdi
callq 0x407c22
movq %rbx, %rdi
callq 0x4f77a0