// File: /workspace/github_cpp_makefile_star2_O2/Cell-veto[P]postlhc/./storage.hpp
// Function: Storage<Monodisperse2D>::dump_statistics(std::ostream&)
void dump_statistics (std::ostream &os) override
    {
        os << "fillfrac " << fdivide (num_, num_cells_) << "\n";

        // cell occupation histogram
        size_t max_occup = cell_count (DIM);
        std::vector <size_t> occ_hist (max_occup + 1, 0);
        for (size_t k = 0; k != num_cells_; k += max_occup)
        {
            size_t c = 0;
            for (size_t j = 0; j != max_occup; ++j)
                c += data_[k+j].in_use ();
            ++occ_hist[c];
        }
        os << "cell_occup";
        for (size_t occ : occ_hist)
            os << ' ' << fdivide (occ, num_cells_/max_occup);
        os << "\nplanes_in_use " << planes_in_use_ << "\n";
    }

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x38, %rsp
movq %rsi, %rax
movq %rdi, %rbx
leaq 0x1950af(%rip), %rsi    # 0x5c4f22
movq %rax, 0x10(%rsp)
movq %rax, %rdi
callq 0x4a4910
movdqu 0x28(%rbx), %xmm1
movdqa 0x194f63(%rip), %xmm0   # 0x5c4df0
pand %xmm1, %xmm0
por 0x194f67(%rip), %xmm0   # 0x5c4e00
psrlq $0x20, %xmm1
por 0x194f6a(%rip), %xmm1   # 0x5c4e10
subpd 0x194f72(%rip), %xmm1   # 0x5c4e20
addpd %xmm0, %xmm1
movapd %xmm1, %xmm0
unpckhpd %xmm1, %xmm0            # xmm0 = xmm0[1],xmm1[1]
divsd %xmm1, %xmm0
movq %rax, %rdi
callq 0x4a5640
leaq 0x1a053d(%rip), %rsi    # 0x5d040a
movq %rax, %rdi
callq 0x4a4910
movq (%rbx), %rax
pushq $0x2
popq %rsi
movq %rbx, %rdi
callq *0x48(%rax)
movq %rax, %r15
leaq 0x1(%rax), %rsi
leaq 0x30(%rsp), %rdx
andq $0x0, (%rdx)
leaq 0x18(%rsp), %r12
leaq 0xf(%rsp), %rcx
movq %r12, %rdi
callq 0x43038a
movq (%r12), %rax
leaq 0x90(%rbx), %rcx
movq %r15, %rdx
shlq $0x4, %rdx
xorl %esi, %esi
cmpq 0x28(%rbx), %rsi
je 0x42ff48
movq %r15, %rdi
movq %rcx, %r9
xorl %r8d, %r8d
subq $0x1, %rdi
jb 0x42ff3c
movq (%r9), %r10
andl $0x1, %r10d
addq %r10, %r8
addq $0x10, %r9
jmp 0x42ff26
incq (%rax,%r8,8)
addq %r15, %rsi
addq %rdx, %rcx
jmp 0x42ff17
leaq 0x194fdd(%rip), %rsi    # 0x5c4f2c
movq 0x10(%rsp), %rdi
callq 0x4a4910
movq 0x18(%rsp), %r12
movq 0x20(%rsp), %r13
pushq $0x20
popq %rbp
cmpq %r13, %r12
je 0x42ffd8
movq (%r12), %r14
movq 0x10(%rsp), %rdi
movl %ebp, %esi
callq 0x4a4840
movq %rax, %rdi
movq %r14, %xmm1
movq 0x18f0b5(%rip), %xmm2   # 0x5bf040
punpckldq %xmm2, %xmm1    # xmm1 = xmm1[0],xmm2[0],xmm1[1],xmm2[1]
movapd 0x18f0b9(%rip), %xmm3   # 0x5bf050
subpd %xmm3, %xmm1
movapd %xmm1, %xmm0
unpckhpd %xmm1, %xmm0            # xmm0 = xmm0[1],xmm1[1]
addsd %xmm1, %xmm0
movq 0x28(%rbx), %rax
xorl %edx, %edx
divq %r15
movq %rax, %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
callq 0x4a5640
addq $0x8, %r12
jmp 0x42ff66
leaq 0x194f58(%rip), %rsi    # 0x5c4f37
movq 0x10(%rsp), %rdi
callq 0x4a4910
movl 0x48(%rbx), %esi
movq %rax, %rdi
callq 0x4a4ce0
leaq 0x1a040f(%rip), %rsi    # 0x5d040a
movq %rax, %rdi
callq 0x4a4910
leaq 0x18(%rsp), %rdi
callq 0x417874
addq $0x38, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
jmp 0x43001e
movq %rax, %rbx
leaq 0x18(%rsp), %rdi
callq 0x417874
movq %rbx, %rdi
callq 0x4eb220
nop