// File: /workspace/github_cpp_makefile_star2_O1/kobanium[P]Ray/src/learn/LearningLog.cpp
// Function: OutputLearningLogFile(int, int, double, double, bool)
void
OutputLearningLogFile( const int update_steps, const int all_moves, const double consume_time, const double accuracy, const bool is_train )
{
  std::ofstream ofs(learning_log_file_path, std::ios::app);
  std::string phase = is_train ? "Training" : "Testing ";

  if (!ofs) {
    std::cerr << phase << " step " << update_steps << ", accuracy : " << accuracy << std::endl;
    std::cerr << ", all_moves : " << all_moves << ", run_time : " << consume_time << " seconds" << std::endl;
  } else {
    ofs << phase << " step " << update_steps << ", accuracy : " << accuracy;
    ofs << ", all_moves : " << all_moves << ", run_time : ";
    ofs << std::fixed << std::setprecision(3) << consume_time << " seconds\n";
  }
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %rbx
subq $0x238, %rsp            # imm = 0x238
movl %edx, %r14d
movsd %xmm1, 0x10(%rsp)
movsd %xmm0, 0x8(%rsp)
movl %esi, %ebx
movl %edi, %ebp
leaq 0x3437c(%rip), %rsi     # 0x79690
leaq 0x38(%rsp), %rdi
movl $0x1, %edx
callq 0x6820
leaq 0x1ab1e(%rip), %rax     # 0x5fe48
leaq 0x1ab20(%rip), %rsi     # 0x5fe51
testl %r14d, %r14d
cmovneq %rax, %rsi
leaq 0x28(%rsp), %r15
movq %r15, -0x10(%r15)
leaq 0x1ab08(%rip), %rax     # 0x5fe50
leaq 0x1ab0a(%rip), %rdx     # 0x5fe59
cmovneq %rax, %rdx
leaq 0x18(%rsp), %rdi
callq 0x2030e
movq 0x38(%rsp), %rax
movq -0x18(%rax), %rax
testb $0x5, 0x58(%rsp,%rax)
movq 0x18(%rsp), %rsi
movq 0x20(%rsp), %rdx
je 0x45485
movq 0x2fc66(%rip), %rdi     # 0x74fe8
callq 0x64a0
movq %rax, %r14
leaq 0x1aac9(%rip), %rsi     # 0x5fe5a
movl $0x6, %edx
movq %rax, %rdi
callq 0x64a0
movq %r14, %rdi
movl %ebp, %esi
callq 0x6740
movq %rax, %r14
leaq 0x1aaaf(%rip), %rsi     # 0x5fe61
movl $0xd, %edx
movq %rax, %rdi
callq 0x64a0
movq %r14, %rdi
movsd 0x10(%rsp), %xmm0
callq 0x66a0
movq %rax, %r14
movq (%rax), %rax
movq -0x18(%rax), %rdi
addq %r14, %rdi
movl $0xa, %esi
callq 0x63d0
movsbl %al, %esi
movq %r14, %rdi
callq 0x6040
movq %rax, %rdi
callq 0x62a0
movq 0x2fbea(%rip), %rdi     # 0x74fe8
leaq 0x1aa1c(%rip), %rsi     # 0x5fe21
movl $0xe, %edx
callq 0x64a0
movq 0x2fbd2(%rip), %rdi     # 0x74fe8
movl %ebx, %esi
callq 0x6740
movq %rax, %rbx
leaq 0x1aa09(%rip), %rsi     # 0x5fe30
movl $0xd, %edx
movq %rax, %rdi
callq 0x64a0
movq %rbx, %rdi
movsd 0x8(%rsp), %xmm0
callq 0x66a0
movq %rax, %rbx
leaq 0x17d4d(%rip), %rsi     # 0x5d199
movl $0x8, %edx
movq %rax, %rdi
callq 0x64a0
movq (%rbx), %rax
movq -0x18(%rax), %rdi
addq %rbx, %rdi
movl $0xa, %esi
callq 0x63d0
movsbl %al, %esi
movq %rbx, %rdi
callq 0x6040
movq %rax, %rdi
callq 0x62a0
jmp 0x45553
leaq 0x38(%rsp), %rdi
callq 0x64a0
movq %rax, %r14
leaq 0x1a9c1(%rip), %rsi     # 0x5fe5a
movl $0x6, %edx
movq %rax, %rdi
callq 0x64a0
movq %r14, %rdi
movl %ebp, %esi
callq 0x6740
movq %rax, %r14
leaq 0x1a9a7(%rip), %rsi     # 0x5fe61
movl $0xd, %edx
movq %rax, %rdi
callq 0x64a0
movq %r14, %rdi
movsd 0x10(%rsp), %xmm0
callq 0x66a0
leaq 0x1a945(%rip), %rsi     # 0x5fe21
leaq 0x38(%rsp), %rdi
movl $0xe, %edx
callq 0x64a0
leaq 0x38(%rsp), %rdi
movl %ebx, %esi
callq 0x6740
leaq 0x1a932(%rip), %rsi     # 0x5fe30
movl $0xd, %edx
movq %rax, %rdi
callq 0x64a0
leaq 0x38(%rsp), %rdi
movq (%rdi), %rax
movq -0x18(%rax), %rcx
movl $0xfffffefb, %edx       # imm = 0xFFFFFEFB
andl 0x50(%rsp,%rcx), %edx
orl $0x4, %edx
movl %edx, 0x50(%rsp,%rcx)
movq -0x18(%rax), %rax
movq $0x3, 0x40(%rsp,%rax)
movsd 0x8(%rsp), %xmm0
callq 0x66a0
leaq 0x1a8f8(%rip), %rsi     # 0x5fe3e
movl $0x9, %edx
movq %rax, %rdi
callq 0x64a0
movq 0x18(%rsp), %rdi
cmpq %r15, %rdi
je 0x4556a
movq 0x28(%rsp), %rsi
incq %rsi
callq 0x6420
movq 0x2f9f7(%rip), %rax     # 0x74f68
movq (%rax), %rcx
movq 0x18(%rax), %rax
leaq 0x40(%rsp), %rdi
movq %rcx, -0x8(%rdi)
movq -0x18(%rcx), %rcx
movq %rax, 0x38(%rsp,%rcx)
callq 0x6340
leaq 0x130(%rsp), %rdi
callq 0x60f0
addq $0x238, %rsp            # imm = 0x238
popq %rbx
popq %r14
popq %r15
popq %rbp
retq
movq %rax, %rbx
jmp 0x455c9
movq %rax, %rbx
movq 0x18(%rsp), %rdi
cmpq %r15, %rdi
je 0x455c9
movq 0x28(%rsp), %rsi
incq %rsi
callq 0x6420
leaq 0x38(%rsp), %rdi
callq 0x6610
movq %rbx, %rdi
callq 0x6770
nop