// File: /workspace/github_cpp_makefile_star2_O1/ChnMasterOG[P]KmerGO2/stats_ml/logistic_classifier.cpp
// Function: Logistic::logisticRegression()
void Logistic::logisticRegression() {
	double lamda = 0.1;		//step size
	double delta = 0.001;	//threshold of breaking iteration
	double objLw = Lw(param);
	Logistic_Param tpa(param.w, param.d);
	gradient(lamda);
	double newObjLw = Lw(param);
	int iter = 0;
	while (fabs(newObjLw - objLw) > delta || !samewb(tpa, param, delta)) {
		objLw = newObjLw;
		tpa = Logistic_Param(param.w, param.d);
		gradient(lamda);
		newObjLw = Lw(param);
		++iter;
	}
}

// Assembly:
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0xf0, %rsp
movq %rdi, %rbx
leaq 0x18(%rdi), %r14
leaq 0xd0(%rsp), %r15
movq %r15, %rdi
movq %r14, %rsi
callq 0x41b22a
movsd 0x30(%rbx), %xmm0
movsd %xmm0, 0x18(%r15)
movq %rbx, %rdi
movq %r15, %rsi
callq 0x41adcc
movsd %xmm0, 0x58(%rsp)
movq (%r15), %rdi
testq %rdi, %rdi
je 0x41aad4
movq 0xe0(%rsp), %rsi
subq %rdi, %rsi
callq 0x41b3a0
leaq 0x88(%rsp), %r12
leaq 0x78(%rsp), %r15
movq %r15, %rdi
movq %r14, %rsi
callq 0x41b22a
movsd 0x30(%rbx), %xmm0
movsd %xmm0, 0x8(%rsp)
leaq 0x10(%rsp), %rdi
movq %r15, %rsi
callq 0x41b22a
movsd 0x8(%rsp), %xmm0
movsd %xmm0, 0x28(%rsp)
movq 0x78(%rsp), %rdi
testq %rdi, %rdi
je 0x41ab2a
movq 0x88(%rsp), %rsi
subq %rdi, %rsi
callq 0x41b3a0
movsd 0x18a3ae(%rip), %xmm0   # 0x5a4ee0
movq %rbx, %rdi
callq 0x41ae74
leaq 0xb0(%rsp), %rdi
movq %r14, %rsi
callq 0x41b22a
movsd 0x30(%rbx), %xmm0
leaq 0xb0(%rsp), %r15
movsd %xmm0, 0x18(%r15)
movq %rbx, %rdi
movq %r15, %rsi
callq 0x41adcc
movq (%r15), %rdi
testq %rdi, %rdi
je 0x41ab8a
movq 0xc0(%rsp), %rsi
subq %rdi, %rsi
movsd %xmm0, (%rsp)
callq 0x41b3a0
movsd (%rsp), %xmm0
leaq 0x60(%rsp), %r15
leaq 0x30(%rsp), %r12
leaq 0x90(%rsp), %r13
movsd 0x58(%rsp), %xmm1
movsd %xmm0, 0x8(%rsp)
subsd %xmm1, %xmm0
andpd 0x18a33c(%rip), %xmm0   # 0x5a4ef0
ucomisd 0x18a32c(%rip), %xmm0   # 0x5a4ee8
ja 0x41ac43
movq 0x10(%rsp), %rdi
movq 0x18(%rsp), %rax
subq %rdi, %rax
je 0x41ac22
movq (%r14), %rcx
movsd (%rdi), %xmm0
subsd (%rcx), %xmm0
andpd 0x18a30c(%rip), %xmm0   # 0x5a4ef0
ucomisd 0x18a2fc(%rip), %xmm0   # 0x5a4ee8
ja 0x41ac43
sarq $0x3, %rax
movl $0x1, %esi
movl %esi, %edx
cmpq %rdx, %rax
jbe 0x41ac22
movsd (%rdi,%rdx,8), %xmm0
subsd (%rcx,%rdx,8), %xmm0
andpd 0x18a2e0(%rip), %xmm0   # 0x5a4ef0
leal 0x1(%rdx), %esi
ucomisd 0x18a2cd(%rip), %xmm0   # 0x5a4ee8
jbe 0x41abf7
cmpq %rdx, %rax
ja 0x41ac43
movsd 0x28(%rsp), %xmm0
subsd 0x30(%rbx), %xmm0
andpd 0x18a2bb(%rip), %xmm0   # 0x5a4ef0
ucomisd 0x18a2ab(%rip), %xmm0   # 0x5a4ee8
jbe 0x41ad54
movq %r15, %rdi
movq %r14, %rsi
callq 0x41b22a
movsd 0x30(%rbx), %xmm0
movsd %xmm0, (%rsp)
movq %r12, %rdi
movq %r15, %rsi
callq 0x41b22a
movsd (%rsp), %xmm0
movsd %xmm0, 0x48(%rsp)
movq 0x10(%rsp), %rdi
movq 0x20(%rsp), %rsi
movq 0x30(%rsp), %rax
movq %rax, 0x10(%rsp)
movups 0x38(%rsp), %xmm0
movups %xmm0, 0x18(%rsp)
xorps %xmm0, %xmm0
movaps %xmm0, 0x30(%rsp)
movq $0x0, 0x40(%rsp)
testq %rdi, %rdi
je 0x41acaa
subq %rdi, %rsi
callq 0x41b3a0
movsd 0x48(%rsp), %xmm0
movsd %xmm0, 0x28(%rsp)
movq 0x30(%rsp), %rdi
testq %rdi, %rdi
je 0x41accd
movq 0x40(%rsp), %rsi
subq %rdi, %rsi
callq 0x41b3a0
movq 0x60(%rsp), %rdi
testq %rdi, %rdi
je 0x41ace4
movq 0x70(%rsp), %rsi
subq %rdi, %rsi
callq 0x41b3a0
movq %rbx, %rdi
movsd 0x18a1f1(%rip), %xmm0   # 0x5a4ee0
callq 0x41ae74
movq %r13, %rdi
movq %r14, %rsi
callq 0x41b22a
movsd 0x30(%rbx), %xmm0
movsd %xmm0, 0xa8(%rsp)
movq %rbx, %rdi
movq %r13, %rsi
callq 0x41adcc
movq 0x90(%rsp), %rdi
movsd 0x8(%rsp), %xmm1
testq %rdi, %rdi
je 0x41aba2
movq 0xa0(%rsp), %rsi
subq %rdi, %rsi
movsd %xmm0, (%rsp)
callq 0x41b3a0
movsd (%rsp), %xmm0
movsd 0x8(%rsp), %xmm1
jmp 0x41aba2
testq %rdi, %rdi
je 0x41ad66
movq 0x20(%rsp), %rsi
subq %rdi, %rsi
callq 0x41b3a0
addq $0xf0, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
retq
jmp 0x41ada6
movq %rax, %rbx
movq 0x78(%rsp), %rdi
testq %rdi, %rdi
jne 0x41adb8
jmp 0x41adc4
jmp 0x41ada6
movq %rax, %rbx
movq 0x60(%rsp), %rdi
testq %rdi, %rdi
je 0x41ada9
movq 0x70(%rsp), %rsi
subq %rdi, %rsi
callq 0x41b3a0
jmp 0x41ada9
movq %rax, %rbx
movq 0x10(%rsp), %rdi
testq %rdi, %rdi
je 0x41adc4
leaq 0x20(%rsp), %r12
movq (%r12), %rsi
subq %rdi, %rsi
callq 0x41b3a0
movq %rbx, %rdi
callq 0x4c0230