// File: /workspace/github_cpp_makefile_star2_O2/schuyler[P]quickfix/include/quickfix/particle_filter.h
// Function: ParticleFilter<float, 2>::Reset()
void ParticleFilter<F,D>::Reset() {
    Array<F, 1, D> range = bound.row(1) - bound.row(0);
    // FIXME: clean all this up
    Array<F, Dynamic, D> particles(N, D);
    particles << (Particles::Random(N, D).array() * 0.5 + 0.5);
    particles.col(0) = particles.col(0) * range(0) + bound(0, 0);
    particles.col(1) = particles.col(1) * range(1) + bound(0, 1);
    P.resize(N, D);
    P << particles.matrix();
    W.resize(N, 1);
    W << Weights::Zero(N, 1);
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x128, %rsp            # imm = 0x128
movq %rdi, %rbx
leaq 0x40(%rdi), %rbp
leaq 0x44(%rdi), %rax
leaq 0x20(%rsp), %r15
movq %rax, (%r15)
movq %rbp, 0x10(%r15)
pushq $0x1
popq %r13
movq %r13, 0x18(%r15)
andq $0x0, 0x20(%r15)
movq %r13, 0x28(%r15)
movq %rbp, 0x30(%r15)
movq %rbp, 0x40(%r15)
xorps %xmm0, %xmm0
movups %xmm0, 0x48(%r15)
movq %r13, 0x58(%r15)
leaq 0x18(%rsp), %rdi
movq %r15, %rsi
callq 0x4c1b0
leaq 0x30(%rbx), %r14
movl $0x2, (%r15)
leaq 0x8(%rsp), %r15
leaq 0x20(%rsp), %r12
movq %r15, %rdi
movq %r14, %rsi
movq %r12, %rdx
callq 0x4c1c0
movslq 0x30(%rbx), %rax
movq %rax, 0x10(%r12)
movq %rax, 0x20(%r12)
movl $0x3f000000, %ecx       # imm = 0x3F000000
movl %ecx, 0x2c(%r12)
movq %rax, 0x38(%r12)
movl %ecx, 0x44(%r12)
leaq 0x108(%rsp), %rdi
leaq 0x20(%rsp), %rdx
movq %r15, %rsi
callq 0x4f8f0
movq 0x8(%rsp), %rax
movq 0x10(%rsp), %rcx
movss 0x18(%rsp), %xmm0
movss (%rbp), %xmm1
leaq 0x20(%rsp), %rsi
movq %rax, 0x8(%rsi)
movq %rcx, 0x10(%rsi)
movq %r15, 0x20(%rsi)
xorps %xmm2, %xmm2
movups %xmm2, 0x28(%rsi)
movq %rcx, 0x38(%rsi)
movq %rcx, 0x40(%rsi)
movss %xmm0, 0x4c(%rsi)
movq %rcx, 0x58(%rsi)
movss %xmm1, 0x64(%rsi)
leaq 0x90(%rsp), %rdi
movq %rax, (%rdi)
movq %rcx, 0x8(%rdi)
movq %r15, 0x18(%rdi)
movups %xmm2, 0x20(%rdi)
movq %rcx, 0x30(%rdi)
callq 0x4d000
movq 0x10(%rsp), %rax
leaq (,%rax,4), %rcx
addq 0x8(%rsp), %rcx
movss 0x48(%rbx), %xmm0
leaq 0x20(%rsp), %rsi
movq %rcx, 0x8(%rsi)
movq %rax, 0x10(%rsi)
movq %r15, 0x20(%rsi)
andq $0x0, 0x28(%rsi)
movss 0x1c(%rsp), %xmm1
movq %r13, 0x30(%rsi)
movq %rax, 0x38(%rsi)
movq %rax, 0x40(%rsi)
movss %xmm1, 0x4c(%rsi)
leaq 0x90(%rsp), %rdi
movq %rcx, (%rdi)
movq %rax, 0x8(%rdi)
movq %r15, 0x18(%rdi)
andq $0x0, 0x20(%rdi)
movq %rax, 0x58(%rsi)
movss %xmm0, 0x64(%rsi)
movq %r13, 0x28(%rdi)
movq %rax, 0x30(%rdi)
callq 0x4d000
leaq 0x8(%rbx), %r12
movslq 0x30(%rbx), %rsi
pushq $0x2
popq %rdx
movq %r12, %rdi
callq 0x4c420
leaq 0x20(%rsp), %rdx
movq %r15, (%rdx)
leaq 0xe8(%rsp), %rdi
movq %r12, %rsi
callq 0x4f380
movslq 0x30(%rbx), %rsi
addq $0x18, %rbx
pushq $0x1
popq %rdx
movq %rbx, %rdi
callq 0x4fd90
movslq (%r14), %rax
leaq 0x20(%rsp), %rdx
movq %rax, (%rdx)
andl $0x0, 0xc(%rdx)
leaq 0xc8(%rsp), %rdi
movq %rbx, %rsi
callq 0x4e260
movq 0x8(%rsp), %rdi
callq 0x4e5b0
addq $0x128, %rsp            # imm = 0x128
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
jmp 0x5d838
jmp 0x5d838
jmp 0x5d838
jmp 0x5d838
jmp 0x5d838
movq %rax, %rbx
movq 0x8(%rsp), %rdi
callq 0x4e5b0
movq %rbx, %rdi
callq 0x4f920
nop