// File: Cell-veto[P]postlhc/./storage.hpp
// Function: Storage<Monodisperse2D>::set_periods(Periods const&)
void set_periods (const Periods &periods) override
    {
        if (num_particles () != 0)
            rt_error ("don't set_periods with particles");

        double MAX = 1. + UINT64_MAX;
        unsigned n = 0;
        for (; n != DIM; ++n)
        {
            peri_[n] = periods[n];
            real2frac[n] = periods[n]==0. ? 0. : MAX/periods[n];
            frac2real[n] = periods[n]==0. ? 0. : 1./real2frac[n];
        }
        for (; n != MAX_DIM; ++n)
        {
            if (periods[n] != 0.)
                rt_error ("periods invalid for this Storage");
        }

        // emit updated parameters to logfile
        std::cerr << "periods " << peri_ << '\n';
    }

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0xc0, %rsp
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movq -0x8(%rbp), %rdi
movq %rdi, -0x88(%rbp)
movq (%rdi), %rax
callq *0x30(%rax)
cmpq $0x0, %rax
je 0x4615df
leaq -0x31(%rbp), %rdi
movq %rdi, -0x90(%rbp)
callq 0x4771f0
movq -0x90(%rbp), %rdx
leaq 0x1a19ac(%rip), %rsi    # 0x602f44
leaq -0x30(%rbp), %rdi
callq 0x407bd0
jmp 0x4615a3
leaq -0x30(%rbp), %rdi
callq 0x46d330
jmp 0x4615ae
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
jmp 0x4615d1
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
leaq -0x30(%rbp), %rdi
callq 0x4f1e40
leaq -0x31(%rbp), %rdi
callq 0x477210
jmp 0x4617f2
movsd 0x19ada9(%rip), %xmm0   # 0x5fc390
movsd %xmm0, -0x50(%rbp)
movl $0x0, -0x54(%rbp)
cmpl $0x2, -0x54(%rbp)
je 0x461719
movq -0x10(%rbp), %rdi
movl -0x54(%rbp), %eax
movl %eax, %esi
callq 0x41da30
movq -0x88(%rbp), %rdi
movsd (%rax), %xmm0
movsd %xmm0, -0x98(%rbp)
addq $0x50, %rdi
movl -0x54(%rbp), %eax
movl %eax, %esi
callq 0x419310
movsd -0x98(%rbp), %xmm0
movsd %xmm0, (%rax)
movq -0x10(%rbp), %rdi
movl -0x54(%rbp), %eax
movl %eax, %esi
callq 0x41da30
movsd (%rax), %xmm0
xorps %xmm1, %xmm1
ucomisd %xmm1, %xmm0
jne 0x461662
jp 0x461662
xorps %xmm0, %xmm0
movsd %xmm0, -0xa0(%rbp)
jmp 0x461691
movsd -0x50(%rbp), %xmm0
movsd %xmm0, -0xa8(%rbp)
movq -0x10(%rbp), %rdi
movl -0x54(%rbp), %eax
movl %eax, %esi
callq 0x41da30
movsd -0xa8(%rbp), %xmm0
divsd (%rax), %xmm0
movsd %xmm0, -0xa0(%rbp)
movq -0x88(%rbp), %rax
movsd -0xa0(%rbp), %xmm0
movl -0x54(%rbp), %ecx
movsd %xmm0, 0x68(%rax,%rcx,8)
movq -0x10(%rbp), %rdi
movl -0x54(%rbp), %eax
movl %eax, %esi
callq 0x41da30
movsd (%rax), %xmm0
xorps %xmm1, %xmm1
ucomisd %xmm1, %xmm0
jne 0x4616d3
jp 0x4616d3
xorps %xmm0, %xmm0
movsd %xmm0, -0xb0(%rbp)
jmp 0x4616f3
movq -0x88(%rbp), %rax
movl -0x54(%rbp), %ecx
movsd 0x199933(%rip), %xmm0   # 0x5fb018
divsd 0x68(%rax,%rcx,8), %xmm0
movsd %xmm0, -0xb0(%rbp)
movq -0x88(%rbp), %rax
movsd -0xb0(%rbp), %xmm0
movl -0x54(%rbp), %ecx
movsd %xmm0, 0x78(%rax,%rcx,8)
movl -0x54(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x54(%rbp)
jmp 0x4615f3
jmp 0x46171b
cmpl $0x3, -0x54(%rbp)
je 0x4617b6
movq -0x10(%rbp), %rdi
movl -0x54(%rbp), %eax
movl %eax, %esi
callq 0x41da30
movsd (%rax), %xmm0
xorps %xmm1, %xmm1
ucomisd %xmm1, %xmm0
jne 0x461744
jp 0x461744
jmp 0x4617a6
leaq -0x79(%rbp), %rdi
movq %rdi, -0xb8(%rbp)
callq 0x4771f0
movq -0xb8(%rbp), %rdx
leaq 0x1a1803(%rip), %rsi    # 0x602f65
leaq -0x78(%rbp), %rdi
callq 0x407bd0
jmp 0x46176d
leaq -0x78(%rbp), %rdi
callq 0x46d330
jmp 0x461778
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
jmp 0x46179b
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
leaq -0x78(%rbp), %rdi
callq 0x4f1e40
leaq -0x79(%rbp), %rdi
callq 0x477210
jmp 0x4617f2
jmp 0x4617a8
movl -0x54(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x54(%rbp)
jmp 0x46171b
movq $0x698ac0, %rdi         # imm = 0x698AC0
leaq 0x1a17c2(%rip), %rsi    # 0x602f86
callq 0x4e1b60
movq -0x88(%rbp), %rsi
movq %rax, %rdi
addq $0x50, %rsi
callq 0x42b500
movq %rax, %rdi
movl $0xa, %esi
callq 0x4e1a90
addq $0xc0, %rsp
popq %rbp
retq
movq -0x40(%rbp), %rdi
callq 0x5283c0
nopl (%rax,%rax)