// File: /workspace/github_cpp_makefile_star2_O3/Cell-veto[P]postlhc/./ecmc.hpp
// Function: ChainRunner<IPL, Monodisperse3D>::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 $0x1d0, %rsp            # imm = 0x1D0
movq %rsi, %r14
movq %rdi, %rbx
movq (%rsi), %rax
movq -0x18(%rax), %rax
movq $0xf, 0x8(%rsi,%rax)
movq 0xd18(%rdi), %r15
addq 0xd10(%rdi), %r15
addq 0xd20(%rdi), %r15
leaq 0x1a2f8f(%rip), %rsi    # 0x5ca307
movl $0x24, %edx
movq %r14, %rdi
callq 0x4b0120
leaq 0x1a2fa0(%rip), %rsi    # 0x5ca32c
movl $0x12, %edx
movq %r14, %rdi
callq 0x4b0120
movsd 0xcd8(%rbx), %xmm1
unpcklps 0x1a2c38(%rip), %xmm1   # xmm1 = xmm1[0],mem[0],xmm1[1],mem[1]
subpd 0x1a2c40(%rip), %xmm1   # 0x5c9ff0
movapd %xmm1, %xmm0
unpckhpd %xmm1, %xmm0            # xmm0 = xmm0[1],xmm1[1]
addsd %xmm1, %xmm0
mulsd 0x1a2d0c(%rip), %xmm0   # 0x5ca0d0
movq %r14, %rdi
callq 0x4b1380
movq %rax, %r12
leaq 0x1a2f69(%rip), %rsi    # 0x5ca33f
movl $0x9, %edx
movq %rax, %rdi
callq 0x4b0120
leaq 0x1a2f5f(%rip), %rsi    # 0x5ca349
movl $0x14, %edx
movq %r12, %rdi
callq 0x4b0120
movq %r12, %rdi
movq %r15, %rsi
callq 0x4b0a20
movq %rax, %r12
leaq 0x1b395e(%rip), %rsi    # 0x5dad6a
movl $0x1, %edx
movq %rax, %rdi
callq 0x4b0120
leaq 0x1a2f3e(%rip), %rsi    # 0x5ca35e
movl $0x19, %edx
movq %r12, %rdi
callq 0x4b0120
leaq 0x1a2f44(%rip), %rsi    # 0x5ca378
leaq 0x48(%rsp), %r13
movq %r13, %rdi
callq 0x407a0c
movq %r15, %xmm0
movq 0x1a2b92(%rip), %xmm2   # 0x5c9fe0
punpckldq %xmm2, %xmm0    # xmm0 = xmm0[0],xmm2[0],xmm0[1],xmm2[1]
movapd 0x1a2b96(%rip), %xmm3   # 0x5c9ff0
subpd %xmm3, %xmm0
movapd %xmm0, %xmm1
unpckhpd %xmm0, %xmm1            # xmm1 = xmm1[1],xmm0[1]
addsd %xmm0, %xmm1
movsd 0x1a2c66(%rip), %xmm0   # 0x5ca0d8
movapd %xmm1, (%rsp)
mulsd %xmm1, %xmm0
movq 0xcd8(%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 0x1a2c3d(%rip), %xmm0   # 0x5ca0e0
leaq 0x30(%rsp), %rax
movsd %xmm0, (%rax)
leaq 0x18(%rsp), %rsi
movq %rax, (%rsi)
leaq -0x18e9f(%rip), %rax    # 0x40e61c
movq %rax, 0x8(%rsi)
leaq -0x18ea9(%rip), %rax    # 0x40e61d
movq %rax, 0x10(%rsi)
movq %r13, %rdi
callq 0x40afdc
movq %r12, %rdi
movq %rax, %rsi
callq 0x40e471
movq %rax, %r15
leaq 0x1a2e97(%rip), %rsi    # 0x5ca37e
movl $0x19, %edx
movq %rax, %rdi
callq 0x4b0120
movq 0xd30(%rbx), %rax
addq 0xd28(%rbx), %rax
addq 0xd38(%rbx), %rax
movq %rax, %xmm1
punpckldq 0x1a2aca(%rip), %xmm1 # xmm1 = xmm1[0],mem[0],xmm1[1],mem[1]
subpd 0x1a2ad2(%rip), %xmm1   # 0x5c9ff0
movapd %xmm1, %xmm0
unpckhpd %xmm1, %xmm0            # xmm0 = xmm0[1],xmm1[1]
addsd %xmm1, %xmm0
divsd (%rsp), %xmm0
movq %r15, %rdi
callq 0x4b1380
movq %rax, %r15
leaq 0x1b3829(%rip), %rsi    # 0x5dad6a
movl $0x1, %edx
movq %rax, %rdi
callq 0x4b0120
leaq 0x1a2e43(%rip), %rsi    # 0x5ca398
movl $0x1c, %edx
movq %r15, %rdi
callq 0x4b0120
movsd 0xd60(%rbx), %xmm1
unpcklps 0x1a2a6f(%rip), %xmm1   # xmm1 = xmm1[0],mem[0],xmm1[1],mem[1]
subpd 0x1a2a77(%rip), %xmm1   # 0x5c9ff0
movapd %xmm1, %xmm0
unpckhpd %xmm1, %xmm0            # xmm0 = xmm0[1],xmm1[1]
addsd %xmm1, %xmm0
divsd (%rsp), %xmm0
movq %r15, %rdi
callq 0x4b1380
movq %rax, %r15
leaq 0x1a2e19(%rip), %rsi    # 0x5ca3b5
movl $0x4, %edx
movq %rax, %rdi
callq 0x4b0120
movsd 0xd58(%rbx), %xmm1
unpcklps 0x1a2a28(%rip), %xmm1   # xmm1 = xmm1[0],mem[0],xmm1[1],mem[1]
subpd 0x1a2a30(%rip), %xmm1   # 0x5c9ff0
movapd %xmm1, %xmm0
unpckhpd %xmm1, %xmm0            # xmm0 = xmm0[1],xmm1[1]
addsd %xmm1, %xmm0
divsd (%rsp), %xmm0
movq %r15, %rdi
callq 0x4b1380
leaq 0x1a2dda(%rip), %rsi    # 0x5ca3ba
movl $0x4, %edx
movq %rax, %rdi
callq 0x4b0120
cmpb $0x1, 0x118(%rsp)
jne 0x42760c
leaq 0x120(%rsp), %r15
movq %r15, %rdi
callq 0x447100
movb $0x0, -0x8(%r15)
leaq 0x2219cd(%rip), %rax    # 0x648fe0
movq %rax, 0xc0(%rsp)
cmpb $0x1, 0x108(%rsp)
jne 0x42764d
leaq 0xd8(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq $0x0, 0x10(%rax)
leaq 0xf0(%rsp), %rcx
cmoveq %rax, %rcx
movq (%rcx), %rsi
subq %rdi, %rsi
callq 0x442d20
leaq 0xf8(%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 $0x64fa38, %rax         # imm = 0x64FA38
addq $0x10, %rax
movq %rax, -0x38(%r15)
movq %r15, %rdi
callq 0x447100
movq -0x60(%r15), %rdi
leaq 0xa8(%rsp), %rax
cmpq %rax, %rdi
je 0x4276b0
movq 0xa8(%rsp), %rsi
incq %rsi
callq 0x442d20
movq 0x60(%rsp), %rdi
testq %rdi, %rdi
je 0x4276e6
movq 0x80(%rsp), %rsi
subq %rdi, %rsi
callq 0x442d20
xorl %eax, %eax
movq %rax, 0x60(%rsp)
movl %eax, 0x68(%rsp)
movq %rax, 0x70(%rsp)
movl %eax, 0x78(%rsp)
movq %rax, 0x80(%rsp)
leaq 0x48(%rsp), %rdi
callq 0x407d02
leaq 0x1a2cc8(%rip), %rsi    # 0x5ca3bf
movl $0x17, %edx
movq %r14, %rdi
callq 0x4b0120
leaq 0xce0(%rbx), %rsi
movq %r14, %rdi
callq 0x4181dd
movq %rax, %r15
leaq 0x1b364d(%rip), %r12    # 0x5dad6a
movl $0x1, %edx
movq %rax, %rdi
movq %r12, %rsi
callq 0x4b0120
leaq 0x1a2ca3(%rip), %rsi    # 0x5ca3d7
movl $0x18, %edx
movq %r15, %rdi
callq 0x4b0120
leaq 0xcf8(%rbx), %rsi
movq %r15, %rdi
callq 0x4181dd
movq %rax, %r15
movl $0x1, %edx
movq %rax, %rdi
movq %r12, %rsi
callq 0x4b0120
leaq 0x1a2c86(%rip), %rsi    # 0x5ca3f0
movl $0x16, %edx
movq %r15, %rdi
callq 0x4b0120
xorl %eax, %eax
movsd 0x1a285f(%rip), %xmm3   # 0x5c9fe0
movsd 0xce0(%rbx,%rax,8), %xmm0
movsd 0xd10(%rbx,%rax,8), %xmm1
unpcklps %xmm3, %xmm1            # xmm1 = xmm1[0],xmm3[0],xmm1[1],xmm3[1]
subpd 0x1a2852(%rip), %xmm1   # 0x5c9ff0
movapd %xmm1, %xmm2
unpckhpd %xmm1, %xmm2            # xmm2 = xmm2[1],xmm1[1]
addsd %xmm1, %xmm2
divsd %xmm2, %xmm0
movsd %xmm0, 0x48(%rsp,%rax,8)
incq %rax
cmpq $0x3, %rax
jne 0x427781
leaq 0x48(%rsp), %rsi
movq %r15, %rdi
callq 0x4181dd
movq %rax, %r15
leaq 0x1b3596(%rip), %rsi    # 0x5dad6a
movl $0x1, %edx
movq %rax, %rdi
callq 0x4b0120
leaq 0x1a2c1f(%rip), %rsi    # 0x5ca407
movl $0x12, %edx
movq %r15, %rdi
callq 0x4b0120
movapd 0x1a27f3(%rip), %xmm4   # 0x5c9ff0
movsd 0x1a27db(%rip), %xmm3   # 0x5c9fe0
movl $0x19f, %eax            # imm = 0x19F
movsd (%rbx,%rax,8), %xmm0
movsd 0x18(%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, -0xce0(%rsp,%rax,8)
incq %rax
cmpq $0x1a2, %rax            # imm = 0x1A2
jne 0x42780a
leaq 0x18(%rsp), %rsi
movq %r15, %rdi
callq 0x4181dd
movq %rax, %r15
leaq 0x1b3513(%rip), %rsi    # 0x5dad6a
movl $0x1, %edx
movq %rax, %rdi
callq 0x4b0120
leaq 0x1a2baf(%rip), %rsi    # 0x5ca41a
movl $0x1d, %edx
movq %r15, %rdi
callq 0x4b0120
movsd 0x1a2760(%rip), %xmm3   # 0x5c9fe0
xorl %eax, %eax
movapd 0x1a2766(%rip), %xmm4   # 0x5c9ff0
movsd 0xd10(%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 0xd40(%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, 0x30(%rsp,%rax,8)
incq %rax
cmpq $0x3, %rax
jne 0x42788a
leaq 0x30(%rsp), %rsi
movq %r15, %rdi
callq 0x4181dd
movq %rax, %r15
leaq 0x1b347e(%rip), %rsi    # 0x5dad6a
movl $0x1, %edx
movq %rax, %rdi
callq 0x4b0120
leaq 0x1a2b38(%rip), %rsi    # 0x5ca438
movl $0x24, %edx
movq %r15, %rdi
callq 0x4b0120
movsd 0x1a26cb(%rip), %xmm2   # 0x5c9fe0
xorl %eax, %eax
movapd 0x1a26d1(%rip), %xmm3   # 0x5c9ff0
movsd 0xd40(%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 0xca8(%rbx,%rax,8), %xmm1
movsd %xmm1, 0x1a0(%rsp,%rax,8)
incq %rax
cmpq $0x3, %rax
jne 0x42791f
xorl %eax, %eax
movsd 0xd10(%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 0x1a0(%rsp,%rax,8), %xmm1
movsd %xmm1, 0x1b8(%rsp,%rax,8)
incq %rax
cmpq $0x3, %rax
jne 0x427958
leaq 0x1b8(%rsp), %rsi
movq %r15, %rdi
callq 0x4181dd
movq %rax, %r15
leaq 0x1b33c1(%rip), %rsi    # 0x5dad6a
movl $0x1, %edx
movq %rax, %rdi
callq 0x4b0120
leaq 0x1a2aa0(%rip), %rsi    # 0x5ca45d
movl $0x1c, %edx
movq %r15, %rdi
callq 0x4b0120
movl $0x19c, %eax            # imm = 0x19C
movsd (%rbx,%rax,8), %xmm0
addsd 0x18(%rbx,%rax,8), %xmm0
movsd %xmm0, -0xb70(%rsp,%rax,8)
incq %rax
cmpq $0x19f, %rax            # imm = 0x19F
jne 0x4279cf
xorl %eax, %eax
movsd 0x1a25e8(%rip), %xmm3   # 0x5c9fe0
movapd 0x1a25f0(%rip), %xmm4   # 0x5c9ff0
movsd 0x170(%rsp,%rax,8), %xmm0
movsd 0xd40(%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, 0x188(%rsp,%rax,8)
incq %rax
cmpq $0x3, %rax
jne 0x427a00
leaq 0x188(%rsp), %rsi
movq %r15, %rdi
callq 0x4181dd
movq %rax, %r15
leaq 0x1b3315(%rip), %rsi    # 0x5dad6a
movl $0x1, %edx
movq %rax, %rdi
callq 0x4b0120
leaq 0x1a2a11(%rip), %rsi    # 0x5ca47a
movl $0x23, %edx
movq %r15, %rdi
callq 0x4b0120
movl $0x19c, %eax            # imm = 0x19C
movsd (%rbx,%rax,8), %xmm0
addsd 0x18(%rbx,%rax,8), %xmm0
movsd %xmm0, -0xba0(%rsp,%rax,8)
incq %rax
cmpq $0x19f, %rax            # imm = 0x19F
jne 0x427a7b
xorl %eax, %eax
movsd 0x1a253c(%rip), %xmm2   # 0x5c9fe0
movapd 0x1a2544(%rip), %xmm3   # 0x5c9ff0
movsd 0xd40(%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 0xcc0(%rbx,%rax,8), %xmm1
movsd %xmm1, 0x128(%rsp,%rax,8)
incq %rax
cmpq $0x3, %rax
jne 0x427aac
xorl %eax, %eax
movsd 0x140(%rsp,%rax,8), %xmm0
divsd 0x128(%rsp,%rax,8), %xmm0
movsd %xmm0, 0x158(%rsp,%rax,8)
incq %rax
cmpq $0x3, %rax
jne 0x427ae5
leaq 0x158(%rsp), %rsi
movq %r15, %rdi
callq 0x4181dd
leaq 0x1b324a(%rip), %rsi    # 0x5dad6a
movl $0x1, %edx
movq %rax, %rdi
callq 0x4b0120
leaq 0x1a5701(%rip), %rsi    # 0x5cd235
movl $0x20, %edx
movq %r14, %rdi
callq 0x4b0120
movl $0x19c, %eax            # imm = 0x19C
movsd (%rbx,%rax,8), %xmm0
addsd 0x18(%rbx,%rax,8), %xmm0
movsd %xmm0, -0xcc8(%rsp,%rax,8)
incq %rax
cmpq $0x19f, %rax            # imm = 0x19F
jne 0x427b46
xorl %eax, %eax
movsd 0x18(%rsp,%rax,8), %xmm0
divsd 0xce0(%rbx,%rax,8), %xmm0
movsd %xmm0, 0x48(%rsp,%rax,8)
incq %rax
cmpq $0x3, %rax
jne 0x427b67
leaq 0x48(%rsp), %rsi
movq %r14, %rdi
callq 0x4181dd
leaq 0x1b31d1(%rip), %rsi    # 0x5dad6a
movl $0x1, %edx
movq %rax, %rdi
callq 0x4b0120
leaq 0x1a28f1(%rip), %rsi    # 0x5ca49e
movl $0x29, %edx
movq %r14, %rdi
callq 0x4b0120
movq (%rbx), %rax
movq %rbx, %rdi
callq *0x20(%rax)
addq $0x1d0, %rsp            # imm = 0x1D0
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
retq
movq %rax, %rbx
leaq 0x48(%rsp), %rdi
callq 0x407b82
movq %rbx, %rdi
callq 0x4f63f0
nop