// File: /workspace/github_cpp_makefile_star2_O3/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 0x41ad06
movsd 0x30(%rbx), %xmm0
movsd %xmm0, 0x18(%r15)
movq %rbx, %rdi
movq %r15, %rsi
callq 0x41a826
movsd %xmm0, 0x58(%rsp)
movq (%r15), %rdi
testq %rdi, %rdi
je 0x41a548
movq 0xe0(%rsp), %rsi
subq %rdi, %rsi
callq 0x41ae90
leaq 0x88(%rsp), %r12
leaq 0x78(%rsp), %r15
movq %r15, %rdi
movq %r14, %rsi
callq 0x41ad06
movsd 0x30(%rbx), %xmm0
movsd %xmm0, 0x8(%rsp)
leaq 0x10(%rsp), %rdi
movq %r15, %rsi
callq 0x41ad06
movsd 0x8(%rsp), %xmm0
movsd %xmm0, 0x28(%rsp)
movq 0x78(%rsp), %rdi
testq %rdi, %rdi
je 0x41a59e
movq 0x88(%rsp), %rsi
subq %rdi, %rsi
callq 0x41ae90
movsd 0x18996a(%rip), %xmm0   # 0x5a3f10
movq %rbx, %rdi
callq 0x41a8ce
leaq 0xb0(%rsp), %rdi
movq %r14, %rsi
callq 0x41ad06
movsd 0x30(%rbx), %xmm0
leaq 0xb0(%rsp), %r15
movsd %xmm0, 0x18(%r15)
movq %rbx, %rdi
movq %r15, %rsi
callq 0x41a826
movq (%r15), %rdi
testq %rdi, %rdi
je 0x41a5fe
movq 0xc0(%rsp), %rsi
subq %rdi, %rsi
movsd %xmm0, (%rsp)
callq 0x41ae90
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 0x1898d8(%rip), %xmm0   # 0x5a3f00
ucomisd 0x1898e8(%rip), %xmm0   # 0x5a3f18
ja 0x41a695
movq 0x10(%rsp), %rdi
movq 0x18(%rsp), %rax
subq %rdi, %rax
je 0x41a674
sarq $0x3, %rax
movq (%r14), %rcx
movl $0x1, %edx
xorl %esi, %esi
movsd (%rdi,%rsi,8), %xmm0
subsd (%rcx,%rsi,8), %xmm0
andpd 0x18989f(%rip), %xmm0   # 0x5a3f00
ucomisd 0x1898af(%rip), %xmm0   # 0x5a3f18
ja 0x41a695
movl %edx, %esi
incl %edx
cmpq %rsi, %rax
ja 0x41a64f
movsd 0x28(%rsp), %xmm0
subsd 0x30(%rbx), %xmm0
andpd 0x189879(%rip), %xmm0   # 0x5a3f00
ucomisd 0x189889(%rip), %xmm0   # 0x5a3f18
jbe 0x41a7ae
movq %r15, %rdi
movq %r14, %rsi
callq 0x41ad06
movsd 0x30(%rbx), %xmm0
movsd %xmm0, (%rsp)
movq %r12, %rdi
movq %r15, %rsi
callq 0x41ad06
movsd (%rsp), %xmm1
movsd %xmm1, 0x48(%rsp)
movq 0x10(%rsp), %rdi
movq 0x20(%rsp), %rsi
movaps 0x30(%rsp), %xmm0
movaps %xmm0, 0x10(%rsp)
movq 0x40(%rsp), %rax
movq %rax, 0x20(%rsp)
xorps %xmm0, %xmm0
movaps %xmm0, 0x30(%rsp)
movq $0x0, 0x40(%rsp)
testq %rdi, %rdi
je 0x41a721
subq %rdi, %rsi
callq 0x41ae90
movq 0x30(%rsp), %rdi
movsd 0x48(%rsp), %xmm0
movsd %xmm0, 0x28(%rsp)
testq %rdi, %rdi
je 0x41a727
movq 0x40(%rsp), %rsi
subq %rdi, %rsi
callq 0x41ae90
jmp 0x41a727
movsd %xmm1, 0x28(%rsp)
movq 0x60(%rsp), %rdi
testq %rdi, %rdi
je 0x41a73e
movq 0x70(%rsp), %rsi
subq %rdi, %rsi
callq 0x41ae90
movq %rbx, %rdi
movsd 0x1897c7(%rip), %xmm0   # 0x5a3f10
callq 0x41a8ce
movq %r13, %rdi
movq %r14, %rsi
callq 0x41ad06
movsd 0x30(%rbx), %xmm0
movsd %xmm0, 0xa8(%rsp)
movq %rbx, %rdi
movq %r13, %rsi
callq 0x41a826
movq 0x90(%rsp), %rdi
movsd 0x8(%rsp), %xmm1
testq %rdi, %rdi
je 0x41a616
movq 0xa0(%rsp), %rsi
subq %rdi, %rsi
movsd %xmm0, (%rsp)
callq 0x41ae90
movsd (%rsp), %xmm0
movsd 0x8(%rsp), %xmm1
jmp 0x41a616
testq %rdi, %rdi
je 0x41a7c0
movq 0x20(%rsp), %rsi
subq %rdi, %rsi
callq 0x41ae90
addq $0xf0, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
retq
jmp 0x41a800
movq %rax, %rbx
movq 0x78(%rsp), %rdi
testq %rdi, %rdi
jne 0x41a812
jmp 0x41a81e
jmp 0x41a800
movq %rax, %rbx
movq 0x60(%rsp), %rdi
testq %rdi, %rdi
je 0x41a803
movq 0x70(%rsp), %rsi
subq %rdi, %rsi
callq 0x41ae90
jmp 0x41a803
movq %rax, %rbx
movq 0x10(%rsp), %rdi
testq %rdi, %rdi
je 0x41a81e
leaq 0x20(%rsp), %r12
movq (%r12), %rsi
subq %rdi, %rsi
callq 0x41ae90
movq %rbx, %rdi
callq 0x4bfce0