// File: 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
movq %rsp, %rbp
subq $0xd0, %rsp
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movq -0x8(%rbp), %rax
movq %rax, -0xa0(%rbp)
movq -0x10(%rbp), %rdi
leaq 0x1a1da6(%rip), %rsi    # 0x602f1f
callq 0x4e1b60
movq %rax, %rcx
movq -0xa0(%rbp), %rax
movq %rcx, -0xa8(%rbp)
movq 0x30(%rax), %xmm0
movaps 0x19b205(%rip), %xmm3   # 0x5fc3a0
punpckldq %xmm3, %xmm0    # xmm0 = xmm0[0],xmm3[0],xmm0[1],xmm3[1]
movapd 0x19b209(%rip), %xmm2   # 0x5fc3b0
subpd %xmm2, %xmm0
movaps %xmm0, %xmm1
unpckhpd %xmm0, %xmm0            # xmm0 = xmm0[1,1]
addsd %xmm1, %xmm0
movq 0x28(%rax), %xmm1
punpckldq %xmm3, %xmm1    # xmm1 = xmm1[0],xmm3[0],xmm1[1],xmm3[1]
subpd %xmm2, %xmm1
movaps %xmm1, %xmm2
unpckhpd %xmm1, %xmm1            # xmm1 = xmm1[1,1]
addsd %xmm2, %xmm1
callq 0x4187d0
movq -0xa8(%rbp), %rdi
callq 0x4e2ad0
movq %rax, %rdi
leaq 0x1ad221(%rip), %rsi    # 0x60e40a
callq 0x4e1b60
movq -0xa0(%rbp), %rdi
movq (%rdi), %rax
movq 0x48(%rax), %rax
movl $0x2, %esi
callq *%rax
movq %rax, -0x18(%rbp)
movq -0x18(%rbp), %rax
incq %rax
movq %rax, -0x98(%rbp)
movq $0x0, -0x38(%rbp)
leaq -0x39(%rbp), %rdi
movq %rdi, -0x90(%rbp)
callq 0x40a6a0
movq -0x98(%rbp), %rsi
movq -0x90(%rbp), %rcx
leaq -0x30(%rbp), %rdi
leaq -0x38(%rbp), %rdx
callq 0x461cb0
jmp 0x46124a
leaq -0x39(%rbp), %rdi
callq 0x4094f0
movq $0x0, -0x58(%rbp)
movq -0xa0(%rbp), %rcx
movq -0x58(%rbp), %rax
cmpq 0x28(%rcx), %rax
je 0x461309
movq $0x0, -0x60(%rbp)
movq $0x0, -0x68(%rbp)
movq -0x68(%rbp), %rax
cmpq -0x18(%rbp), %rax
je 0x4612e1
movq -0xa0(%rbp), %rdi
addq $0x88, %rdi
movq -0x58(%rbp), %rax
addq -0x68(%rbp), %rax
shlq $0x4, %rax
addq %rax, %rdi
callq 0x41dff0
andb $0x1, %al
movzbl %al, %eax
addq -0x60(%rbp), %rax
movq %rax, -0x60(%rbp)
movq -0x68(%rbp), %rax
addq $0x1, %rax
movq %rax, -0x68(%rbp)
jmp 0x461280
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
leaq -0x39(%rbp), %rdi
callq 0x4094f0
jmp 0x46147e
movq -0x60(%rbp), %rsi
leaq -0x30(%rbp), %rdi
callq 0x423c90
movq (%rax), %rcx
addq $0x1, %rcx
movq %rcx, (%rax)
movq -0x18(%rbp), %rax
addq -0x58(%rbp), %rax
movq %rax, -0x58(%rbp)
jmp 0x46125b
movq -0x10(%rbp), %rdi
leaq 0x1a1c15(%rip), %rsi    # 0x602f29
callq 0x4e1b60
jmp 0x46131b
leaq -0x30(%rbp), %rax
movq %rax, -0x70(%rbp)
movq -0x70(%rbp), %rdi
callq 0x4355a0
movq %rax, -0x78(%rbp)
movq -0x70(%rbp), %rdi
callq 0x4353f0
movq %rax, -0x80(%rbp)
leaq -0x78(%rbp), %rdi
leaq -0x80(%rbp), %rsi
callq 0x461d30
testb $0x1, %al
jne 0x461353
jmp 0x46141f
leaq -0x78(%rbp), %rdi
callq 0x435850
movq (%rax), %rax
movq %rax, -0x88(%rbp)
movq -0x10(%rbp), %rdi
movl $0x20, %esi
callq 0x4e1a90
movq %rax, -0xb0(%rbp)
jmp 0x46137d
movq -0xa0(%rbp), %rax
movq -0x88(%rbp), %xmm0
movaps 0x19b00d(%rip), %xmm3   # 0x5fc3a0
punpckldq %xmm3, %xmm0    # xmm0 = xmm0[0],xmm3[0],xmm0[1],xmm3[1]
movapd 0x19b011(%rip), %xmm2   # 0x5fc3b0
subpd %xmm2, %xmm0
movaps %xmm0, %xmm1
unpckhpd %xmm0, %xmm0            # xmm0 = xmm0[1,1]
addsd %xmm1, %xmm0
movq 0x28(%rax), %rax
movq -0x18(%rbp), %rcx
xorl %edx, %edx
divq %rcx
movq %rax, %xmm1
punpckldq %xmm3, %xmm1    # xmm1 = xmm1[0],xmm3[0],xmm1[1],xmm3[1]
subpd %xmm2, %xmm1
movaps %xmm1, %xmm2
unpckhpd %xmm1, %xmm1            # xmm1 = xmm1[1,1]
addsd %xmm2, %xmm1
callq 0x4187d0
movsd %xmm0, -0xb8(%rbp)
jmp 0x4613e2
movsd -0xb8(%rbp), %xmm0
movq -0xb0(%rbp), %rdi
callq 0x4e2ad0
jmp 0x4613f8
jmp 0x4613fa
leaq -0x78(%rbp), %rdi
callq 0x461d70
jmp 0x46133d
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
leaq -0x30(%rbp), %rdi
callq 0x431fb0
jmp 0x46147e
movq -0x10(%rbp), %rdi
leaq 0x1a1b0a(%rip), %rsi    # 0x602f34
callq 0x4e1b60
movq %rax, -0xc0(%rbp)
jmp 0x461438
movq -0xc0(%rbp), %rdi
movq -0xa0(%rbp), %rax
movl 0x48(%rax), %esi
callq 0x4e2190
movq %rax, -0xc8(%rbp)
jmp 0x461457
movq -0xc8(%rbp), %rdi
leaq 0x1acfa5(%rip), %rsi    # 0x60e40a
callq 0x4e1b60
jmp 0x46146c
leaq -0x30(%rbp), %rdi
callq 0x431fb0
addq $0xd0, %rsp
popq %rbp
retq
movq -0x48(%rbp), %rdi
callq 0x5283c0
nopw (%rax,%rax)