// File: /workspace/github_cpp_makefile_star2_O3/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 $0x28, %rsp
movq %rsi, %r12
movq %rdi, %r14
leaq 0x195e73(%rip), %rsi    # 0x5cf892
movl $0x9, %edx
movq %r12, %rdi
callq 0x4b0120
movdqu 0x28(%r14), %xmm1
movdqa 0x1905c6(%rip), %xmm0   # 0x5ca000
pand %xmm1, %xmm0
por 0x1905ca(%rip), %xmm0   # 0x5ca010
psrlq $0x20, %xmm1
por 0x1905cd(%rip), %xmm1   # 0x5ca020
subpd 0x1905d5(%rip), %xmm1   # 0x5ca030
addpd %xmm0, %xmm1
movapd %xmm1, %xmm0
unpckhpd %xmm1, %xmm0            # xmm0 = xmm0[1],xmm1[1]
divsd %xmm1, %xmm0
movq %r12, %rdi
callq 0x4b1380
leaq 0x1a12f0(%rip), %rsi    # 0x5dad6a
movl $0x1, %edx
movq %rax, %rdi
callq 0x4b0120
movq (%r14), %rax
movq %r14, %rdi
movl $0x2, %esi
callq *0x48(%rax)
movq %rax, %r15
leaq 0x1(%rax), %rsi
leaq 0x8(%rsp), %rdx
movq $0x0, (%rdx)
leaq 0x10(%rsp), %rdi
leaq 0x7(%rsp), %rcx
callq 0x439fd2
cmpq $0x0, 0x28(%r14)
je 0x439b07
movq 0x10(%rsp), %rax
leaq 0x90(%r14), %rcx
movq %r15, %rdx
shlq $0x4, %rdx
xorl %esi, %esi
testq %r15, %r15
je 0x439af5
movq %rcx, %r8
movq %r15, %r9
xorl %edi, %edi
movq (%r8), %r10
andl $0x1, %r10d
addq %r10, %rdi
addq $0x10, %r8
decq %r9
jne 0x439ae0
jmp 0x439af7
xorl %edi, %edi
incq (%rax,%rdi,8)
addq %r15, %rsi
addq %rdx, %rcx
cmpq 0x28(%r14), %rsi
jne 0x439ad3
leaq 0x195d8e(%rip), %rsi    # 0x5cf89c
movl $0xa, %edx
movq %r12, %rdi
callq 0x4b0120
movq 0x10(%rsp), %r13
movq 0x18(%rsp), %rbp
cmpq %rbp, %r13
je 0x439ba2
movq (%r13), %rbx
movb $0x20, 0x8(%rsp)
movl $0x1, %edx
movq %r12, %rdi
leaq 0x8(%rsp), %rsi
callq 0x4b0120
movq %rax, %rdi
movq %rbx, %xmm1
movq 0x19048b(%rip), %xmm2   # 0x5c9fe0
punpckldq %xmm2, %xmm1    # xmm1 = xmm1[0],xmm2[0],xmm1[1],xmm2[1]
movapd 0x19048f(%rip), %xmm3   # 0x5c9ff0
subpd %xmm3, %xmm1
movapd %xmm1, %xmm0
unpckhpd %xmm1, %xmm0            # xmm0 = xmm0[1],xmm1[1]
addsd %xmm1, %xmm0
movq 0x28(%r14), %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 0x4b1380
addq $0x8, %r13
jmp 0x439b25
leaq 0x195cfe(%rip), %rsi    # 0x5cf8a7
movl $0xf, %edx
movq %r12, %rdi
callq 0x4b0120
movl 0x48(%r14), %esi
movq %r12, %rdi
callq 0x4b0a20
leaq 0x1a11a1(%rip), %rsi    # 0x5dad6a
movl $0x1, %edx
movq %rax, %rdi
callq 0x4b0120
movq 0x10(%rsp), %rdi
testq %rdi, %rdi
je 0x439bed
movq 0x20(%rsp), %rsi
subq %rdi, %rsi
callq 0x442d20
addq $0x28, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
jmp 0x439bfe
movq %rax, %rbx
movq 0x10(%rsp), %rdi
testq %rdi, %rdi
je 0x439c18
movq 0x20(%rsp), %rsi
subq %rdi, %rsi
callq 0x442d20
movq %rbx, %rdi
callq 0x4f63f0