// File: /workspace/github_cpp_makefile_star2_O2/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 %r14
pushq %rbx
subq $0x240, %rsp            # imm = 0x240
movl %edx, %r14d
movsd %xmm1, 0x18(%rsp)
movsd %xmm0, 0x10(%rsp)
movl %esi, %ebx
movl %edi, %ebp
leaq 0x36a41(%rip), %rsi     # 0x65690
leaq 0x40(%rsp), %rdi
pushq $0x1
popq %rdx
callq 0x6800
leaq 0x18235(%rip), %rax     # 0x46e98
leaq 0x18237(%rip), %rsi     # 0x46ea1
testl %r14d, %r14d
cmovneq %rax, %rsi
leaq 0x20(%rsp), %rdi
leaq 0xf(%rsp), %rdx
callq 0x114b2
movq 0x40(%rsp), %rax
movq -0x18(%rax), %rax
testb $0x5, 0x60(%rsp,%rax)
je 0x2ed39
movq 0x32355(%rip), %rdi     # 0x60ff0
leaq 0x20(%rsp), %rsi
callq 0x6350
leaq 0x181fe(%rip), %rsi     # 0x46eaa
movq %rax, %rdi
callq 0x63c0
movq %rax, %rdi
movl %ebp, %esi
callq 0x6700
leaq 0x181ec(%rip), %rsi     # 0x46eb1
movq %rax, %rdi
callq 0x63c0
movq %rax, %rdi
movsd 0x18(%rsp), %xmm0
callq 0x6670
movq %rax, %rdi
callq 0x6190
movq 0x32306(%rip), %rdi     # 0x60ff0
leaq 0x18180(%rip), %rsi     # 0x46e71
callq 0x63c0
movq %rax, %rdi
movl %ebx, %esi
callq 0x6700
leaq 0x18179(%rip), %rsi     # 0x46e80
movq %rax, %rdi
callq 0x63c0
movq %rax, %rdi
movsd 0x10(%rsp), %xmm0
callq 0x6670
leaq 0x15475(%rip), %rsi     # 0x44199
movq %rax, %rdi
callq 0x63c0
movq %rax, %rdi
callq 0x6190
jmp 0x2edeb
leaq 0x40(%rsp), %rdi
leaq 0x20(%rsp), %rsi
callq 0x6350
leaq 0x1815b(%rip), %rsi     # 0x46eaa
movq %rax, %rdi
callq 0x63c0
movq %rax, %rdi
movl %ebp, %esi
callq 0x6700
leaq 0x18149(%rip), %rsi     # 0x46eb1
movq %rax, %rdi
callq 0x63c0
movq %rax, %rdi
movsd 0x18(%rsp), %xmm0
callq 0x6670
leaq 0x180ec(%rip), %rsi     # 0x46e71
leaq 0x40(%rsp), %rdi
callq 0x63c0
movq %rax, %rdi
movl %ebx, %esi
callq 0x6700
leaq 0x180e0(%rip), %rsi     # 0x46e80
movq %rax, %rdi
callq 0x63c0
leaq 0x40(%rsp), %rdi
movq (%rdi), %rax
movq -0x18(%rax), %rcx
movl $0xfffffefb, %edx       # imm = 0xFFFFFEFB
andl 0x58(%rsp,%rcx), %edx
orl $0x4, %edx
movl %edx, 0x58(%rsp,%rcx)
movq -0x18(%rax), %rax
movq $0x3, 0x48(%rsp,%rax)
movsd 0x10(%rsp), %xmm0
callq 0x6670
leaq 0x180ab(%rip), %rsi     # 0x46e8e
movq %rax, %rdi
callq 0x63c0
leaq 0x20(%rsp), %rdi
callq 0x6838
leaq 0x40(%rsp), %rdi
callq 0x65e0
addq $0x240, %rsp            # imm = 0x240
popq %rbx
popq %r14
popq %rbp
retq
movq %rax, %rbx
jmp 0x2ee1d
movq %rax, %rbx
leaq 0x20(%rsp), %rdi
callq 0x6838
leaq 0x40(%rsp), %rdi
callq 0x65e0
movq %rbx, %rdi
callq 0x6740
nop