// File: /workspace/github_c_makefile_star2_O2/zpole[P]IICV/vl/gmm.c
// Function: vl_gmm_init_with_rand_data
void
vl_gmm_init_with_rand_data
(VlGMM * self,
 void const * data,
 vl_size numData)
{
  vl_gmm_reset (self) ;
  switch (self->dataType) {
    case VL_TYPE_FLOAT : _vl_gmm_init_with_rand_data_f (self, (float const *)data, numData) ; break ;
    case VL_TYPE_DOUBLE : _vl_gmm_init_with_rand_data_d (self, (double const *)data, numData) ; break ;
    default:
      abort() ;
  }
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x18, %rsp
movq %rdx, %r14
movq %rsi, 0x10(%rsp)
movq %rdi, %rbx
callq 0x9650
movl (%rbx), %eax
cmpl $0x2, %eax
movq %r14, 0x8(%rsp)
je 0x11018
cmpl $0x1, %eax
jne 0x113c5
movq %rbx, %rdi
movq 0x8(%rsp), %rsi
callq 0x126b1
movq 0x10(%rbx), %rax
movq %rax, %xmm0
punpckldq 0x1c185(%rip), %xmm0 # xmm0 = xmm0[0],mem[0],xmm0[1],mem[1]
subpd 0x1c18d(%rip), %xmm0    # 0x2d170
movapd %xmm0, %xmm1
unpckhpd %xmm0, %xmm1            # xmm1 = xmm1[1],xmm0[1]
addsd %xmm0, %xmm1
movsd 0x1c241(%rip), %xmm0    # 0x2d238
divsd %xmm1, %xmm0
cvtsd2ss %xmm0, %xmm0
xorl %ecx, %ecx
cmpq %rcx, %rax
je 0x11118
movq 0x48(%rbx), %rdx
movss %xmm0, (%rdx,%rcx,4)
incq %rcx
jmp 0x11001
movq %rbx, %rdi
movq %r14, %rsi
callq 0x126b1
movq 0x10(%rbx), %rax
movq %rax, %xmm0
punpckldq 0x1c12c(%rip), %xmm0 # xmm0 = xmm0[0],mem[0],xmm0[1],mem[1]
subpd 0x1c134(%rip), %xmm0    # 0x2d170
movapd %xmm0, %xmm1
unpckhpd %xmm0, %xmm1            # xmm1 = xmm1[1],xmm0[1]
addsd %xmm0, %xmm1
movsd 0x1c1e8(%rip), %xmm0    # 0x2d238
divsd %xmm1, %xmm0
xorl %ecx, %ecx
cmpq %rcx, %rax
je 0x11069
movq 0x48(%rbx), %rdx
movsd %xmm0, (%rdx,%rcx,8)
incq %rcx
jmp 0x11056
movq 0x8(%rbx), %r15
movq 0x40(%rbx), %r12
leaq (,%r15,8), %rbp
movq %r12, %rdi
xorl %esi, %esi
movq %rbp, %rdx
callq 0x9420
cmpq $0x2, 0x8(%rsp)
jb 0x111fa
movq %rbp, %rdi
callq 0x95e0
movq %rax, %r13
xorl %r14d, %r14d
movq %rax, %rdi
xorl %esi, %esi
movq %rbp, %rdx
callq 0x9420
movq 0x8(%rsp), %r8
movq %r8, %xmm1
punpckldq 0x1c0a1(%rip), %xmm1 # xmm1 = xmm1[0],mem[0],xmm1[1],mem[1]
subpd 0x1c0a9(%rip), %xmm1    # 0x2d170
movapd %xmm1, %xmm0
unpckhpd %xmm1, %xmm0            # xmm0 = xmm0[1],xmm1[1]
addsd %xmm1, %xmm0
movq 0x10(%rsp), %rax
cmpq %r15, %r14
je 0x11174
movsd (%r13,%r14,8), %xmm1
movq %r8, %rcx
movq %rax, %rdx
subq $0x1, %rcx
jb 0x11104
addsd (%rdx), %xmm1
movsd %xmm1, (%r13,%r14,8)
addq %rbp, %rdx
jmp 0x110ee
divsd %xmm0, %xmm1
movsd %xmm1, (%r13,%r14,8)
incq %r14
addq $0x8, %rax
jmp 0x110d8
movq 0x8(%rbx), %r15
movq 0x40(%rbx), %r12
leaq (,%r15,4), %rbp
movq %r12, %rdi
xorl %esi, %esi
movq %rbp, %rdx
callq 0x9420
cmpq $0x2, 0x8(%rsp)
jb 0x11324
movq %rbp, %rdi
callq 0x95e0
movq %rax, %r13
xorl %r14d, %r14d
movq %rax, %rdi
xorl %esi, %esi
movq %rbp, %rdx
callq 0x9420
movq 0x8(%rsp), %r8
testq %r8, %r8
js 0x11246
cvtsi2ss %r8, %xmm0
jmp 0x1125e
leaq -0x1(%r8), %rax
movq %rax, %xmm1
punpckldq 0x1bfdb(%rip), %xmm1 # xmm1 = xmm1[0],mem[0],xmm1[1],mem[1]
subpd 0x1bfe3(%rip), %xmm1    # 0x2d170
movapd %xmm1, %xmm0
unpckhpd %xmm1, %xmm0            # xmm0 = xmm0[1],xmm1[1]
addsd %xmm1, %xmm0
xorl %eax, %eax
movq 0x10(%rsp), %rcx
cmpq %r15, %rax
je 0x111f2
movq 0x8(%rbx), %rdx
shlq $0x3, %rdx
movq %r8, %rsi
movq %rcx, %rdi
subq $0x1, %rsi
jb 0x111d9
movsd (%rdi), %xmm1
subsd (%r13,%rax,8), %xmm1
mulsd %xmm1, %xmm1
addsd (%r12,%rax,8), %xmm1
movsd %xmm1, (%r12,%rax,8)
addq %rdx, %rdi
jmp 0x111b3
movsd (%r12,%rax,8), %xmm1
divsd %xmm0, %xmm1
movsd %xmm1, (%r12,%rax,8)
incq %rax
addq $0x8, %rcx
jmp 0x111a0
movq %r13, %rdi
callq 0x95b0
movq 0x10(%rbx), %rax
pushq $0x1
popq %rcx
pushq $0x8
popq %rdx
pushq $0x3
popq %r12
cmpq %rax, %rcx
jae 0x1136c
movq 0x8(%rbx), %rsi
movq %rsi, %rdi
imulq %rdx, %rdi
xorl %r8d, %r8d
cmpq %r8, %rsi
je 0x1123d
movq 0x40(%rbx), %r9
leaq (%r9,%r8,8), %r10
movsd (%r9,%r8,8), %xmm0
movsd %xmm0, (%rdi,%r10)
incq %r8
jmp 0x1121f
incq %rcx
addq $0x8, %rdx
jmp 0x11208
movq %r8, %rax
shrq %rax
movl %r8d, %ecx
andl $0x1, %ecx
orq %rax, %rcx
cvtsi2ss %rcx, %xmm0
addss %xmm0, %xmm0
movq 0x10(%rsp), %rax
cmpq %r15, %r14
je 0x1129f
movss (%r13,%r14,4), %xmm1
movq %r8, %rcx
movq %rax, %rdx
subq $0x1, %rcx
jb 0x1128b
addss (%rdx), %xmm1
movss %xmm1, (%r13,%r14,4)
addq %rbp, %rdx
jmp 0x11275
divss %xmm0, %xmm1
movss %xmm1, (%r13,%r14,4)
incq %r14
addq $0x4, %rax
jmp 0x11263
movq %r8, %rax
decq %rax
js 0x112ae
cvtsi2ss %rax, %xmm0
jmp 0x112c3
movq %rax, %rcx
shrq %rcx
andl $0x1, %eax
orq %rcx, %rax
cvtsi2ss %rax, %xmm0
addss %xmm0, %xmm0
xorl %eax, %eax
movq 0x10(%rsp), %rcx
cmpq %r15, %rax
je 0x1131c
movq 0x8(%rbx), %rdx
shlq $0x2, %rdx
movq %r8, %rsi
movq %rcx, %rdi
subq $0x1, %rsi
jb 0x11303
movss (%rdi), %xmm1
subss (%r13,%rax,4), %xmm1
mulss %xmm1, %xmm1
addss (%r12,%rax,4), %xmm1
movss %xmm1, (%r12,%rax,4)
addq %rdx, %rdi
jmp 0x112dd
movss (%r12,%rax,4), %xmm1
divss %xmm0, %xmm1
movss %xmm1, (%r12,%rax,4)
incq %rax
addq $0x4, %rcx
jmp 0x112ca
movq %r13, %rdi
callq 0x95b0
movq 0x10(%rbx), %rax
pushq $0x1
popq %rcx
pushq $0x4
popq %rdx
pushq $0x2
popq %r12
cmpq %rax, %rcx
jae 0x1136c
movq 0x8(%rbx), %rsi
movq %rsi, %rdi
imulq %rdx, %rdi
xorl %r8d, %r8d
cmpq %r8, %rsi
je 0x11363
movq 0x40(%rbx), %r9
leaq (%r9,%r8,4), %r10
movss (%r9,%r8,4), %xmm0
movss %xmm0, (%rdi,%r10)
incq %r8
jmp 0x11345
incq %rcx
addq $0x4, %rdx
jmp 0x11332
movl (%rbx), %edi
pushq $0x1
popq %rsi
callq 0x91b0
movq %rax, %r13
movq 0x8(%rbx), %rdx
movq 0x10(%rbx), %r8
movq %rax, %rdi
movq 0x10(%rsp), %rsi
movq 0x8(%rsp), %rcx
callq 0x9100
movq 0x8(%rbx), %rdx
movl %r12d, %ecx
shlq %cl, %rdx
movq 0x38(%rbx), %rdi
movq 0x58(%r13), %rsi
imulq 0x10(%rbx), %rdx
callq 0x95d0
movq %r13, %rdi
addq $0x18, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
jmp 0x9260
callq 0x90b0