// File: /workspace/github_cpp_makefile_star2_O1/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 $0xc8, %rsp
movq %rdi, %rbx
movss 0x44(%rdi), %xmm1
movss 0x4c(%rdi), %xmm0
subss 0x40(%rdi), %xmm1
movaps %xmm1, 0x20(%rsp)
subss 0x48(%rdi), %xmm0
movaps %xmm0, 0x30(%rsp)
xorps %xmm0, %xmm0
leaq 0x10(%rsp), %rdi
movaps %xmm0, (%rdi)
movslq 0x30(%rbx), %rsi
movl $0x2, %edx
callq 0xd7e0
movslq 0x30(%rbx), %r14
movq 0x10(%rsp), %r15
movq 0x18(%rsp), %r12
shlq $0x2, %r12
xorl %r13d, %r13d
testl %r14d, %r14d
jle 0x19491
xorl %ebp, %ebp
callq 0xd100
movss 0xbba0(%rip), %xmm1     # 0x25018
xorps %xmm0, %xmm0
cvtsi2ss %eax, %xmm0
mulss %xmm1, %xmm0
movss %xmm0, (%r15,%rbp,4)
incq %rbp
cmpq %rbp, %r14
jne 0x1946b
leaq 0x1(%r13), %rax
addq %r12, %r15
testq %r13, %r13
movq %rax, %r13
je 0x19464
movq 0x10(%rsp), %rax
movq 0x18(%rsp), %rcx
movq %rcx, %rsi
testb $0x3, %al
jne 0x194c2
movl %eax, %esi
shrl $0x2, %esi
negl %esi
andl $0x3, %esi
cmpq %rcx, %rsi
cmovgeq %rcx, %rsi
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 0x30(%rsp), %xmm4
movaps 0x20(%rsp), %xmm5
jle 0x1950a
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 0x194ee
addq %rsi, %rdx
cmpq $0x4, %rdi
jl 0x19538
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 0x19521
cmpq %rcx, %rdx
jge 0x19557
movss (%rax,%rdx,4), %xmm1
mulss %xmm5, %xmm1
addss %xmm0, %xmm1
movss %xmm1, (%rax,%rdx,4)
incq %rdx
cmpq %rdx, %rcx
jne 0x1953d
movq 0x18(%rsp), %rax
leaq (,%rax,4), %rcx
addq 0x10(%rsp), %rcx
movq %rax, %rsi
testb $0x3, %cl
jne 0x19582
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 0x195c0
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 0x195a4
addq %rsi, %rdx
cmpq $0x4, %rdi
jl 0x195ee
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 0x195d7
cmpq %rax, %rdx
jge 0x1960d
movss (%rcx,%rdx,4), %xmm1
mulss %xmm4, %xmm1
addss %xmm0, %xmm1
movss %xmm1, (%rcx,%rdx,4)
incq %rdx
cmpq %rdx, %rax
jne 0x195f3
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 0x58(%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 0x48(%rsp), %r12
movq %rax, (%r12)
movq %rcx, 0x8(%r12)
leaq 0x90(%rsp), %r13
movq %rdx, (%r13)
movq %rsi, 0x10(%r13)
leaq 0xa8(%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 0xdc00
movslq 0x30(%rbx), %rax
movq 0x18(%rbx), %rcx
movq 0x20(%rbx), %rdx
movq %rcx, 0x58(%rsp)
movq %rax, 0x60(%rsp)
movq $0x1, 0x68(%rsp)
movq %r14, 0x70(%rsp)
xorps %xmm0, %xmm0
movups %xmm0, 0x78(%rsp)
movq %rdx, 0x88(%rsp)
movl $0x0, 0x48(%rsp)
movq %rcx, 0x90(%rsp)
movq %rdx, 0xa0(%rsp)
leaq 0xa8(%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 $0xc8, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
jmp 0x19736
jmp 0x19736
jmp 0x19736
movq %rax, %rbx
movq 0x10(%rsp), %rdi
callq 0xd740
movq %rbx, %rdi
callq 0xdb50
nop