// File: /workspace/github_cpp_makefile_star2_O3/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 $0xd8, %rsp
movq %rdi, %rbx
movss 0x44(%rdi), %xmm1
movss 0x4c(%rdi), %xmm0
subss 0x40(%rdi), %xmm1
movaps %xmm1, 0x30(%rsp)
subss 0x48(%rdi), %xmm0
movaps %xmm0, 0x40(%rsp)
xorps %xmm0, %xmm0
leaq 0x10(%rsp), %rdi
movaps %xmm0, (%rdi)
movslq 0x30(%rbx), %rsi
movl $0x2, %edx
callq 0xd7e0
movq %rbx, 0x28(%rsp)
movslq 0x30(%rbx), %r14
movq 0x10(%rsp), %r15
movq 0x18(%rsp), %r12
movb $0x1, %bpl
xorl %eax, %eax
testl %r14d, %r14d
jle 0x195a7
imulq %r12, %rax
leaq (%r15,%rax,4), %r13
xorl %ebx, %ebx
callq 0xd110
movss 0xba8b(%rip), %xmm1     # 0x25018
xorps %xmm0, %xmm0
cvtsi2ss %eax, %xmm0
mulss %xmm1, %xmm0
movss %xmm0, (%r13,%rbx,4)
incq %rbx
cmpq %rbx, %r14
jne 0x19580
movl $0x1, %eax
testb $0x1, %bpl
movl $0x0, %ebp
jne 0x19571
movq 0x10(%rsp), %rax
movq 0x18(%rsp), %rcx
movq %rcx, %rsi
testb $0x3, %al
jne 0x195d9
movl %eax, %esi
shrl $0x2, %esi
negl %esi
andl $0x3, %esi
cmpq %rcx, %rsi
cmovgeq %rcx, %rsi
movq 0x28(%rsp), %rbx
movss 0x40(%rbx), %xmm0
movq %rcx, %rdi
subq %rsi, %rdi
leaq 0x3(%rdi), %rdx
testq %rdi, %rdi
cmovnsq %rdi, %rdx
andq $-0x4, %rdx
testq %rsi, %rsi
movaps 0x40(%rsp), %xmm4
movaps 0x30(%rsp), %xmm5
jle 0x19626
xorl %r8d, %r8d
movss (%rax,%r8,4), %xmm1
mulss %xmm5, %xmm1
addss %xmm0, %xmm1
movss %xmm1, (%rax,%r8,4)
incq %r8
cmpq %r8, %rsi
jne 0x1960a
addq %rsi, %rdx
cmpq $0x4, %rdi
jl 0x19654
movaps %xmm5, %xmm1
shufps $0x0, %xmm5, %xmm1      # xmm1 = xmm1[0,0],xmm5[0,0]
movaps %xmm0, %xmm2
shufps $0x0, %xmm0, %xmm2      # xmm2 = xmm2[0,0],xmm0[0,0]
movups (%rax,%rsi,4), %xmm3
mulps %xmm1, %xmm3
addps %xmm2, %xmm3
movaps %xmm3, (%rax,%rsi,4)
addq $0x4, %rsi
cmpq %rdx, %rsi
jl 0x1963d
cmpq %rcx, %rdx
jge 0x19673
movss (%rax,%rdx,4), %xmm1
mulss %xmm5, %xmm1
addss %xmm0, %xmm1
movss %xmm1, (%rax,%rdx,4)
incq %rdx
cmpq %rdx, %rcx
jne 0x19659
movq 0x18(%rsp), %rax
leaq (,%rax,4), %rcx
addq 0x10(%rsp), %rcx
movq %rax, %rsi
testb $0x3, %cl
jne 0x1969e
movl %ecx, %esi
shrl $0x2, %esi
negl %esi
andl $0x3, %esi
cmpq %rax, %rsi
cmovgeq %rax, %rsi
movss 0x48(%rbx), %xmm0
movq %rax, %rdi
subq %rsi, %rdi
leaq 0x3(%rdi), %rdx
testq %rdi, %rdi
cmovnsq %rdi, %rdx
andq $-0x4, %rdx
testq %rsi, %rsi
jle 0x196dc
xorl %r8d, %r8d
movss (%rcx,%r8,4), %xmm1
mulss %xmm4, %xmm1
addss %xmm0, %xmm1
movss %xmm1, (%rcx,%r8,4)
incq %r8
cmpq %r8, %rsi
jne 0x196c0
addq %rsi, %rdx
cmpq $0x4, %rdi
jl 0x1970a
movaps %xmm4, %xmm1
shufps $0x0, %xmm4, %xmm1      # xmm1 = xmm1[0,0],xmm4[0,0]
movaps %xmm0, %xmm2
shufps $0x0, %xmm0, %xmm2      # xmm2 = xmm2[0,0],xmm0[0,0]
movups (%rcx,%rsi,4), %xmm3
mulps %xmm1, %xmm3
addps %xmm2, %xmm3
movaps %xmm3, (%rcx,%rsi,4)
addq $0x4, %rsi
cmpq %rdx, %rsi
jl 0x196f3
cmpq %rax, %rdx
jge 0x19729
movss (%rcx,%rdx,4), %xmm1
mulss %xmm4, %xmm1
addss %xmm0, %xmm1
movss %xmm1, (%rcx,%rdx,4)
incq %rdx
cmpq %rdx, %rax
jne 0x1970f
leaq 0x8(%rbx), %r14
movslq 0x30(%rbx), %rsi
movl $0x2, %edx
movq %r14, %rdi
callq 0xd0b0
movq 0x10(%rsp), %rax
movq 0x18(%rsp), %rcx
movq 0x8(%rbx), %rdx
movq 0x10(%rbx), %rsi
leaq 0x68(%rsp), %r15
movq %rdx, (%r15)
movq %rcx, 0x8(%r15)
movq $0x2, 0x10(%r15)
movq %r14, 0x18(%r15)
xorps %xmm0, %xmm0
movups %xmm0, 0x20(%r15)
movq %rsi, 0x30(%r15)
leaq 0x58(%rsp), %r12
movq %rax, (%r12)
movq %rcx, 0x8(%r12)
leaq 0xa0(%rsp), %r13
movq %rdx, (%r13)
movq %rsi, 0x10(%r13)
leaq 0xb8(%rsp), %rdi
movq %r13, (%rdi)
movq %r12, 0x8(%rdi)
leaq 0xf(%rsp), %rbp
movq %rbp, 0x10(%rdi)
movq %r15, 0x18(%rdi)
callq 0xd2d0
leaq 0x18(%rbx), %r14
movslq 0x30(%rbx), %rsi
movl $0x1, %edx
movq %r14, %rdi
callq 0xdbd0
movslq 0x30(%rbx), %rax
movq 0x18(%rbx), %rcx
movq 0x20(%rbx), %rdx
movq %rcx, 0x68(%rsp)
movq %rax, 0x70(%rsp)
movq $0x1, 0x78(%rsp)
movq %r14, 0x80(%rsp)
xorps %xmm0, %xmm0
movups %xmm0, 0x88(%rsp)
movq %rdx, 0x98(%rsp)
movl $0x0, 0x58(%rsp)
movq %rcx, 0xa0(%rsp)
movq %rdx, 0xb0(%rsp)
leaq 0xb8(%rsp), %rdi
movq %r13, (%rdi)
movq %r12, 0x8(%rdi)
movq %rbp, 0x10(%rdi)
movq %r15, 0x18(%rdi)
callq 0xd700
movq 0x10(%rsp), %rdi
callq 0xd740
addq $0xd8, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
jmp 0x19858
jmp 0x19858
jmp 0x19858
movq %rax, %rbx
movq 0x10(%rsp), %rdi
callq 0xd740
movq %rbx, %rdi
callq 0xdb20
nop