// File: big-data-lab-team[P]OrpailleCC/./src/mondrian_coarse.hpp
// Function: CoarseMondrianForest<double, funct, KappaMetrics<2, false>, 4, 2, 6000>::scory(double const*, int)
void scory(feature_type const* features, int const label){
	double scores[label_count];
	double sum_scores[label_count];

	update_posterior_count();
	for(int i = 0; i < tree_count; ++i){
		for(int j = 0; j < label_count; ++j)
			scores[j] = 0;
		predict_tree(features, i, scores);
		int const prediction = Utils::index_max(scores, label_count);
		cout << "Loutre:" << total_count << "," << i << "," << label << "," << prediction;
		for(int j = 0; j < label_count; ++j)
			cout << "," << scores[j];
		cout << endl;
		for(int j = 0; j < label_count; ++j)
			sum_scores[j] = scores[j];
	}
	int const prediction = Utils::index_max(sum_scores, label_count);
	cout << "Loutre:" << total_count << "," << -1 << "," << label << "," << prediction;
	for(int j = 0; j < label_count; ++j)
		cout << "," << sum_scores[j];
	cout << endl;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x70, %rsp
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movl %edx, -0x14(%rbp)
movq -0x8(%rbp), %rdi
movq %rdi, -0x68(%rbp)
callq 0x2260
movl $0x0, -0x44(%rbp)
movq -0x68(%rbp), %rcx
movl -0x44(%rbp), %eax
cmpl 0x17dc(%rcx), %eax
jge 0x1dd9
movl $0x0, -0x48(%rbp)
cmpl $0x2, -0x48(%rbp)
jge 0x1caf
movslq -0x48(%rbp), %rax
xorps %xmm0, %xmm0
movsd %xmm0, -0x30(%rbp,%rax,8)
movl -0x48(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x48(%rbp)
jmp 0x1c91
movq -0x68(%rbp), %rdi
movq -0x10(%rbp), %rsi
movl -0x44(%rbp), %edx
leaq -0x30(%rbp), %rcx
movl $0xffffffff, %r8d       # imm = 0xFFFFFFFF
callq 0x22e0
leaq -0x30(%rbp), %rdi
movl $0x2, %esi
callq 0x2870
movl %eax, -0x4c(%rbp)
movq 0xb2f7(%rip), %rdi      # 0xcfd8
leaq 0x9350(%rip), %rsi      # 0xb038
callq 0x1050
movq %rax, %rdi
movq -0x68(%rbp), %rax
movl 0x17b4(%rax), %esi
callq 0x1070
movq %rax, %rdi
leaq 0x9337(%rip), %rsi      # 0xb040
callq 0x1050
movq %rax, %rdi
movl -0x44(%rbp), %esi
callq 0x1090
movq %rax, %rdi
leaq 0x931d(%rip), %rsi      # 0xb040
callq 0x1050
movq %rax, %rdi
movl -0x14(%rbp), %esi
callq 0x1090
movq %rax, %rdi
leaq 0x9303(%rip), %rsi      # 0xb040
callq 0x1050
movq %rax, %rdi
movl -0x4c(%rbp), %esi
callq 0x1090
movl $0x0, -0x50(%rbp)
cmpl $0x2, -0x50(%rbp)
jge 0x1d8a
movq 0xb277(%rip), %rdi      # 0xcfd8
leaq 0x92d8(%rip), %rsi      # 0xb040
callq 0x1050
movq %rax, %rdi
movslq -0x50(%rbp), %rax
movsd -0x30(%rbp,%rax,8), %xmm0
callq 0x10a0
movl -0x50(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x50(%rbp)
jmp 0x1d54
movq 0xb247(%rip), %rdi      # 0xcfd8
movq 0xb230(%rip), %rsi      # 0xcfc8
callq 0x1060
movl $0x0, -0x54(%rbp)
cmpl $0x2, -0x54(%rbp)
jge 0x1dc9
movslq -0x54(%rbp), %rax
movsd -0x30(%rbp,%rax,8), %xmm0
movslq -0x54(%rbp), %rax
movsd %xmm0, -0x40(%rbp,%rax,8)
movl -0x54(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x54(%rbp)
jmp 0x1da4
jmp 0x1dcb
movl -0x44(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x44(%rbp)
jmp 0x1c77
leaq -0x40(%rbp), %rdi
movl $0x2, %esi
callq 0x2870
movl %eax, -0x58(%rbp)
movq 0xb1e7(%rip), %rdi      # 0xcfd8
leaq 0x9240(%rip), %rsi      # 0xb038
callq 0x1050
movq %rax, %rdi
movq -0x68(%rbp), %rax
movl 0x17b4(%rax), %esi
callq 0x1070
movq %rax, %rdi
leaq 0x9227(%rip), %rsi      # 0xb040
callq 0x1050
movq %rax, %rdi
movl $0xffffffff, %esi       # imm = 0xFFFFFFFF
callq 0x1090
movq %rax, %rdi
leaq 0x920b(%rip), %rsi      # 0xb040
callq 0x1050
movq %rax, %rdi
movl -0x14(%rbp), %esi
callq 0x1090
movq %rax, %rdi
leaq 0x91f1(%rip), %rsi      # 0xb040
callq 0x1050
movq %rax, %rdi
movl -0x58(%rbp), %esi
callq 0x1090
movl $0x0, -0x5c(%rbp)
cmpl $0x2, -0x5c(%rbp)
jge 0x1e9c
movq 0xb165(%rip), %rdi      # 0xcfd8
leaq 0x91c6(%rip), %rsi      # 0xb040
callq 0x1050
movq %rax, %rdi
movslq -0x5c(%rbp), %rax
movsd -0x40(%rbp,%rax,8), %xmm0
callq 0x10a0
movl -0x5c(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x5c(%rbp)
jmp 0x1e66
movq 0xb135(%rip), %rdi      # 0xcfd8
movq 0xb11e(%rip), %rsi      # 0xcfc8
callq 0x1060
addq $0x70, %rsp
popq %rbp
retq
nopw %cs:(%rax,%rax)
nop