// File: Cell-veto[P]postlhc/./adap_prober.hpp
// Function: AdaptiveProber::calib_finish(unsigned int)
void calib_finish (unsigned DIM)
    {
        // fill in cumsum_
        cumsum_[0] = binrate_[0] * ball_volume (DIM, binrad_[0]);
        auto stat = format ("adap_prober_stat %4i %10.5f %10.5f || % 5g || %10.5f\n");
        std::cerr << boost::str (format (stat) % 0 % 0. % binrad_[0] % binexp_[0] % cumsum_[0]);

        for (unsigned i = 1; i != N_; ++i)
        {
            double iexpon = DIM - (1.+binexp_[i]);
            double w = pow (binrad_[i]/binrad_[i-1], iexpon);
            double tot = (w - 1) * pow (binrad_[i-1], iexpon);
            tot *= sphere_surface (DIM);
            tot /= iexpon;
            tot *= binrate_[i];

            std::cerr << boost::str (stat % i % binrad_[i-1] % binrad_[i] % binexp_[i] % tot);
            cumsum_[i] = cumsum_[i-1] + tot;
        }

        std::cerr << "adap_prober_stat total " << cumsum_[N_-1] << '\n';
    }

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x310, %rsp            # imm = 0x310
movq %rdi, -0x8(%rbp)
movl %esi, -0xc(%rbp)
movq -0x8(%rbp), %rdi
movq %rdi, -0x270(%rbp)
addq $0x600, %rdi            # imm = 0x600
xorl %eax, %eax
movl %eax, %esi
movq %rsi, -0x268(%rbp)
callq 0x41b830
movq -0x270(%rbp), %rdi
movq -0x268(%rbp), %rsi
movsd (%rax), %xmm0
movsd %xmm0, -0x260(%rbp)
movl -0xc(%rbp), %eax
movl %eax, -0x274(%rbp)
addq $0x200, %rdi            # imm = 0x200
callq 0x41b830
movl -0x274(%rbp), %edi
movsd (%rax), %xmm0
callq 0x41c4c0
movq -0x270(%rbp), %rdi
movq -0x268(%rbp), %rsi
movaps %xmm0, %xmm1
movsd -0x260(%rbp), %xmm0
mulsd %xmm1, %xmm0
movsd %xmm0, -0x258(%rbp)
callq 0x41b830
movsd -0x258(%rbp), %xmm0
movsd %xmm0, (%rax)
leaq 0x1e17e0(%rip), %rsi    # 0x5fca6f
leaq -0xf0(%rbp), %rdi
movq %rdi, -0x250(%rbp)
callq 0x407ce0
movq -0x250(%rbp), %rsi
leaq -0x1f0(%rbp), %rdi
callq 0x41c500
jmp 0x41b2b7
movl $0x0, -0x200(%rbp)
leaq -0x1f0(%rbp), %rdi
leaq -0x200(%rbp), %rsi
callq 0x41c640
movq %rax, -0x280(%rbp)
jmp 0x41b2dd
movq -0x280(%rbp), %rdi
movq $0x0, -0x208(%rbp)
leaq -0x208(%rbp), %rsi
callq 0x4187a0
movq %rax, -0x288(%rbp)
jmp 0x41b304
movq -0x270(%rbp), %rdi
addq $0x200, %rdi            # imm = 0x200
xorl %eax, %eax
movl %eax, %esi
callq 0x41b830
movq -0x288(%rbp), %rdi
movq %rax, %rsi
callq 0x407fa0
movq %rax, -0x290(%rbp)
jmp 0x41b333
movq -0x270(%rbp), %rdi
addq $0x400, %rdi            # imm = 0x400
xorl %eax, %eax
movl %eax, %esi
callq 0x41b830
movq -0x290(%rbp), %rdi
movq %rax, %rsi
callq 0x407fa0
movq %rax, -0x298(%rbp)
jmp 0x41b362
movq -0x270(%rbp), %rdi
xorl %eax, %eax
movl %eax, %esi
callq 0x41b830
movq -0x298(%rbp), %rdi
movq %rax, %rsi
callq 0x407fa0
movq %rax, -0x2a0(%rbp)
jmp 0x41b38a
movq -0x2a0(%rbp), %rsi
leaq -0x110(%rbp), %rdi
callq 0x407cb0
jmp 0x41b39f
movq $0x698ac0, %rdi         # imm = 0x698AC0
leaq -0x110(%rbp), %rsi
callq 0x4f4680
jmp 0x41b3b4
leaq -0x110(%rbp), %rdi
callq 0x4f1e40
leaq -0x1f0(%rbp), %rdi
callq 0x407e90
movl $0x1, -0x20c(%rbp)
cmpl $0x40, -0x20c(%rbp)
je 0x41b75e
movq -0x270(%rbp), %rdi
movl -0xc(%rbp), %eax
cvtsi2sd %rax, %xmm0
movsd %xmm0, -0x2d0(%rbp)
addq $0x400, %rdi            # imm = 0x400
movl -0x20c(%rbp), %eax
movl %eax, %esi
callq 0x41b830
movsd -0x2d0(%rbp), %xmm0
movq -0x270(%rbp), %rdi
movsd (%rax), %xmm1
movsd 0x1dfbef(%rip), %xmm2   # 0x5fb018
movsd %xmm2, -0x2c0(%rbp)
addsd %xmm2, %xmm1
subsd %xmm1, %xmm0
movsd %xmm0, -0x218(%rbp)
addq $0x200, %rdi            # imm = 0x200
movq %rdi, -0x2b8(%rbp)
movl -0x20c(%rbp), %eax
movl %eax, %esi
callq 0x41b830
movq -0x2b8(%rbp), %rdi
movsd (%rax), %xmm0
movsd %xmm0, -0x2c8(%rbp)
movl -0x20c(%rbp), %eax
decl %eax
movl %eax, %esi
callq 0x41b830
movsd -0x2c8(%rbp), %xmm0
movsd (%rax), %xmm1
divsd %xmm1, %xmm0
movsd -0x218(%rbp), %xmm1
callq 0x51ef10
movsd -0x2c0(%rbp), %xmm1
movq -0x2b8(%rbp), %rdi
movsd %xmm0, -0x220(%rbp)
movsd -0x220(%rbp), %xmm0
subsd %xmm1, %xmm0
movsd %xmm0, -0x2b0(%rbp)
movl -0x20c(%rbp), %eax
decl %eax
movl %eax, %esi
callq 0x41b830
movsd (%rax), %xmm0
movsd -0x218(%rbp), %xmm1
callq 0x51ef10
movaps %xmm0, %xmm1
movsd -0x2b0(%rbp), %xmm0
mulsd %xmm1, %xmm0
movsd %xmm0, -0x228(%rbp)
movl -0xc(%rbp), %edi
callq 0x41c670
movsd %xmm0, -0x2a8(%rbp)
jmp 0x41b50f
movq -0x270(%rbp), %rdi
movsd -0x2a8(%rbp), %xmm1
movsd -0x228(%rbp), %xmm0
mulsd %xmm1, %xmm0
movsd %xmm0, -0x228(%rbp)
movsd -0x218(%rbp), %xmm1
movsd -0x228(%rbp), %xmm0
divsd %xmm1, %xmm0
movsd %xmm0, -0x228(%rbp)
addq $0x600, %rdi            # imm = 0x600
movl -0x20c(%rbp), %eax
movl %eax, %esi
callq 0x41b830
movsd (%rax), %xmm1
movsd -0x228(%rbp), %xmm0
mulsd %xmm1, %xmm0
movsd %xmm0, -0x228(%rbp)
leaq -0xf0(%rbp), %rdi
leaq -0x20c(%rbp), %rsi
callq 0x41c6c0
movq %rax, -0x2d8(%rbp)
jmp 0x41b596
movq -0x270(%rbp), %rdi
addq $0x200, %rdi            # imm = 0x200
movl -0x20c(%rbp), %eax
decl %eax
movl %eax, %esi
callq 0x41b830
movq -0x2d8(%rbp), %rdi
movq %rax, %rsi
callq 0x407fa0
movq %rax, -0x2e0(%rbp)
jmp 0x41b5cb
movq -0x270(%rbp), %rdi
addq $0x200, %rdi            # imm = 0x200
movl -0x20c(%rbp), %eax
movl %eax, %esi
callq 0x41b830
movq -0x2e0(%rbp), %rdi
movq %rax, %rsi
callq 0x407fa0
movq %rax, -0x2e8(%rbp)
jmp 0x41b5fe
movq -0x270(%rbp), %rdi
addq $0x400, %rdi            # imm = 0x400
movl -0x20c(%rbp), %eax
movl %eax, %esi
callq 0x41b830
movq -0x2e8(%rbp), %rdi
movq %rax, %rsi
callq 0x407fa0
movq %rax, -0x2f0(%rbp)
jmp 0x41b631
movq -0x2f0(%rbp), %rdi
leaq -0x228(%rbp), %rsi
callq 0x407fa0
movq %rax, -0x2f8(%rbp)
jmp 0x41b64d
movq -0x2f8(%rbp), %rsi
leaq -0x248(%rbp), %rdi
callq 0x407cb0
jmp 0x41b662
movq $0x698ac0, %rdi         # imm = 0x698AC0
leaq -0x248(%rbp), %rsi
callq 0x4f4680
jmp 0x41b677
leaq -0x248(%rbp), %rdi
callq 0x4f1e40
movq -0x270(%rbp), %rdi
movl -0x20c(%rbp), %eax
subl $0x1, %eax
movl %eax, %eax
movl %eax, %esi
callq 0x41b830
movq -0x270(%rbp), %rdi
movsd (%rax), %xmm0
addsd -0x228(%rbp), %xmm0
movsd %xmm0, -0x300(%rbp)
movl -0x20c(%rbp), %eax
movl %eax, %esi
callq 0x41b830
movsd -0x300(%rbp), %xmm0
movsd %xmm0, (%rax)
movl -0x20c(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x20c(%rbp)
jmp 0x41b3d6
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x1f8(%rbp)
movl %eax, -0x1fc(%rbp)
jmp 0x41b7cc
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x1f8(%rbp)
movl %eax, -0x1fc(%rbp)
jmp 0x41b72d
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x1f8(%rbp)
movl %eax, -0x1fc(%rbp)
leaq -0x110(%rbp), %rdi
callq 0x4f1e40
leaq -0x1f0(%rbp), %rdi
callq 0x407e90
jmp 0x41b7cc
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x1f8(%rbp)
movl %eax, -0x1fc(%rbp)
leaq -0x248(%rbp), %rdi
callq 0x4f1e40
jmp 0x41b7cc
movq $0x698ac0, %rdi         # imm = 0x698AC0
leaq 0x1e1339(%rip), %rsi    # 0x5fcaa5
callq 0x4e1b60
movq %rax, -0x308(%rbp)
jmp 0x41b77a
movq -0x270(%rbp), %rdi
movl $0x3f, %esi
callq 0x41b830
movq -0x308(%rbp), %rdi
movsd (%rax), %xmm0
callq 0x4e2ad0
movq %rax, -0x310(%rbp)
jmp 0x41b7a4
movq -0x310(%rbp), %rdi
movl $0xa, %esi
callq 0x4e1a90
jmp 0x41b7b7
leaq -0xf0(%rbp), %rdi
callq 0x407e90
addq $0x310, %rsp            # imm = 0x310
popq %rbp
retq
leaq -0xf0(%rbp), %rdi
callq 0x407e90
movq -0x1f8(%rbp), %rdi
callq 0x5283c0
nopw %cs:(%rax,%rax)
nop