// File: /workspace/github_c_makefile_star2_O0/olcaytaner[P]Isell/svm.c
// Function: svm_train_one
Svm_weights svm_train_one(Svm_problem prob, Svm_parameter param, double Cp, double Cn)
{
	/*Last Changed 29.04.2005*/
	Svm_weights result;
	double *alpha;
	Solutioninfo si;
	int nSV = 0, nBSV = 0, i;
 alpha = safemalloc(sizeof(double) * prob.l, "svm_train_one", 5);
	switch (param.svm_type)
	 {
	 	case C_SVC      :solve_c_svc(prob, param, alpha, &si, Cp, Cn);
			                 break;
		 case NU_SVC     :solve_nu_svc(prob, param, alpha, &si);
			                 break;
		 case ONE_CLASS  :solve_one_class(prob, param, alpha, &si);
			                 break;
		 case EPSILON_SVR:solve_epsilon_svr(prob, param, alpha, &si);
			                 break;
		 case NU_SVR     :solve_nu_svr(prob, param, alpha, &si);
			                 break;
   default         :printf(m1234, param.svm_type);
                    break;
	 }
	for (i = 0; i < prob.l; i++)
	 {
	 	if (fabs(alpha[i]) > 0)
			 {
		  	++nSV;
			  if (prob.y[i] > 0)
					 {
				   if (fabs(alpha[i]) >= si.upper_bound_p)
					    ++nBSV;
					 }
			  else
					 {
			   	if (fabs(alpha[i]) >= si.upper_bound_n)
					    ++nBSV;
					 }
			 }
	 }
	result.alpha = alpha;
	result.rho = si.rho;
	result.nSV = nSV;
	result.nBSV = nBSV;
	return result;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x120, %rsp            # imm = 0x120
movq %rdi, -0x78(%rbp)
movq %rdi, -0x70(%rbp)
leaq 0x30(%rbp), %rax
movq %rax, -0x60(%rbp)
leaq 0x10(%rbp), %rax
movq %rax, -0x68(%rbp)
movsd %xmm0, -0x8(%rbp)
movsd %xmm1, -0x10(%rbp)
movl $0x0, -0x44(%rbp)
movl $0x0, -0x48(%rbp)
movslq (%rax), %rdi
shlq $0x3, %rdi
leaq 0x2739b(%rip), %rsi     # 0xee054
movl $0x5, %edx
callq 0x52d70
movq %rax, %rcx
movq -0x60(%rbp), %rax
movq %rcx, -0x18(%rbp)
movl (%rax), %eax
movq %rax, -0x58(%rbp)
subq $0x4, %rax
ja 0xc6ed8
movq -0x58(%rbp), %rax
leaq 0x2730f(%rip), %rcx     # 0xedff8
movslq (%rcx,%rax,4), %rax
addq %rcx, %rax
jmpq *%rax
movq -0x68(%rbp), %rcx
movq -0x60(%rbp), %rdx
movq -0x18(%rbp), %rdi
movsd -0x8(%rbp), %xmm0
movsd -0x10(%rbp), %xmm1
movq 0x50(%rdx), %rsi
movq %rsp, %rax
movq %rax, -0x80(%rbp)
movq %rsi, 0x70(%rax)
movups 0x40(%rdx), %xmm2
movups %xmm2, 0x60(%rax)
movups (%rdx), %xmm2
movups 0x10(%rdx), %xmm3
movups 0x20(%rdx), %xmm4
movups 0x30(%rdx), %xmm5
movups %xmm5, 0x50(%rax)
movups %xmm4, 0x40(%rax)
movups %xmm3, 0x30(%rax)
movups %xmm2, 0x20(%rax)
movups (%rcx), %xmm2
movups 0x10(%rcx), %xmm3
movups %xmm3, 0x10(%rax)
movups %xmm2, (%rax)
leaq -0x40(%rbp), %rsi
callq 0xc5f60
jmp 0xc6eec
movq -0x68(%rbp), %rcx
movq -0x60(%rbp), %rdx
movq -0x18(%rbp), %rdi
movq 0x50(%rdx), %rsi
movq %rsp, %rax
movq %rax, -0x88(%rbp)
movq %rsi, 0x70(%rax)
movups 0x40(%rdx), %xmm0
movups %xmm0, 0x60(%rax)
movups (%rdx), %xmm0
movups 0x10(%rdx), %xmm1
movups 0x20(%rdx), %xmm2
movups 0x30(%rdx), %xmm3
movups %xmm3, 0x50(%rax)
movups %xmm2, 0x40(%rax)
movups %xmm1, 0x30(%rax)
movups %xmm0, 0x20(%rax)
movups (%rcx), %xmm0
movups 0x10(%rcx), %xmm1
movups %xmm1, 0x10(%rax)
movups %xmm0, (%rax)
leaq -0x40(%rbp), %rsi
callq 0xc6190
jmp 0xc6eec
movq -0x68(%rbp), %rcx
movq -0x60(%rbp), %rdx
movq -0x18(%rbp), %rdi
movq 0x50(%rdx), %rsi
movq %rsp, %rax
movq %rax, -0x90(%rbp)
movq %rsi, 0x70(%rax)
movups 0x40(%rdx), %xmm0
movups %xmm0, 0x60(%rax)
movups (%rdx), %xmm0
movups 0x10(%rdx), %xmm1
movups 0x20(%rdx), %xmm2
movups 0x30(%rdx), %xmm3
movups %xmm3, 0x50(%rax)
movups %xmm2, 0x40(%rax)
movups %xmm1, 0x30(%rax)
movups %xmm0, 0x20(%rax)
movups (%rcx), %xmm0
movups 0x10(%rcx), %xmm1
movups %xmm1, 0x10(%rax)
movups %xmm0, (%rax)
leaq -0x40(%rbp), %rsi
callq 0xc64d0
jmp 0xc6eec
movq -0x68(%rbp), %rcx
movq -0x60(%rbp), %rdx
movq -0x18(%rbp), %rdi
movq 0x50(%rdx), %rsi
movq %rsp, %rax
movq %rax, -0x98(%rbp)
movq %rsi, 0x70(%rax)
movups 0x40(%rdx), %xmm0
movups %xmm0, 0x60(%rax)
movups (%rdx), %xmm0
movups 0x10(%rdx), %xmm1
movups 0x20(%rdx), %xmm2
movups 0x30(%rdx), %xmm3
movups %xmm3, 0x50(%rax)
movups %xmm2, 0x40(%rax)
movups %xmm1, 0x30(%rax)
movups %xmm0, 0x20(%rax)
movups (%rcx), %xmm0
movups 0x10(%rcx), %xmm1
movups %xmm1, 0x10(%rax)
movups %xmm0, (%rax)
leaq -0x40(%rbp), %rsi
callq 0xc66f0
jmp 0xc6eec
movq -0x68(%rbp), %rcx
movq -0x60(%rbp), %rdx
movq -0x18(%rbp), %rdi
movq 0x50(%rdx), %rsi
movq %rsp, %rax
movq %rax, -0xa0(%rbp)
movq %rsi, 0x70(%rax)
movups 0x40(%rdx), %xmm0
movups %xmm0, 0x60(%rax)
movups (%rdx), %xmm0
movups 0x10(%rdx), %xmm1
movups 0x20(%rdx), %xmm2
movups 0x30(%rdx), %xmm3
movups %xmm3, 0x50(%rax)
movups %xmm2, 0x40(%rax)
movups %xmm1, 0x30(%rax)
movups %xmm0, 0x20(%rax)
movups (%rcx), %xmm0
movups 0x10(%rcx), %xmm1
movups %xmm1, 0x10(%rax)
movups %xmm0, (%rax)
leaq -0x40(%rbp), %rsi
callq 0xc6980
jmp 0xc6eec
movq -0x60(%rbp), %rax
movl (%rax), %esi
leaq 0x2717d(%rip), %rdi     # 0xee062
movb $0x0, %al
callq 0x4030
movl $0x0, -0x4c(%rbp)
movq -0x68(%rbp), %rcx
movl -0x4c(%rbp), %eax
cmpl (%rcx), %eax
jge 0xc6fac
movq -0x18(%rbp), %rax
movslq -0x4c(%rbp), %rcx
movsd (%rax,%rcx,8), %xmm0
movaps 0x1bf4a(%rip), %xmm1    # 0xe2e60
pand %xmm1, %xmm0
xorps %xmm1, %xmm1
ucomisd %xmm1, %xmm0
jbe 0xc6f9c
movq -0x68(%rbp), %rax
movl -0x44(%rbp), %ecx
addl $0x1, %ecx
movl %ecx, -0x44(%rbp)
movq 0x8(%rax), %rax
movslq -0x4c(%rbp), %rcx
movsd (%rax,%rcx,8), %xmm0
xorps %xmm1, %xmm1
ucomisd %xmm1, %xmm0
jbe 0xc6f70
movq -0x18(%rbp), %rax
movslq -0x4c(%rbp), %rcx
movsd (%rax,%rcx,8), %xmm0
movaps 0x1bf06(%rip), %xmm1    # 0xe2e60
pand %xmm1, %xmm0
ucomisd -0x30(%rbp), %xmm0
jb 0xc6f6e
movl -0x48(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x48(%rbp)
jmp 0xc6f9a
movq -0x18(%rbp), %rax
movslq -0x4c(%rbp), %rcx
movsd (%rax,%rcx,8), %xmm0
movaps 0x1bedc(%rip), %xmm1    # 0xe2e60
pand %xmm1, %xmm0
ucomisd -0x28(%rbp), %xmm0
jb 0xc6f98
movl -0x48(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x48(%rbp)
jmp 0xc6f9a
jmp 0xc6f9c
jmp 0xc6f9e
movl -0x4c(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x4c(%rbp)
jmp 0xc6ef3
movq -0x70(%rbp), %rax
movq -0x78(%rbp), %rcx
movq -0x18(%rbp), %rdx
movq %rdx, (%rcx)
movsd -0x38(%rbp), %xmm0
movsd %xmm0, 0x8(%rcx)
movl -0x44(%rbp), %edx
movl %edx, 0x10(%rcx)
movl -0x48(%rbp), %edx
movl %edx, 0x14(%rcx)
addq $0x120, %rsp            # imm = 0x120
popq %rbp
retq
nopw (%rax,%rax)