// File: /workspace/github_cpp_makefile_star2_O3/epfml[P]Bi-Sent2Vec/src/fasttext.cc
// Function: fasttext::FastText::printInfo(float, float)
void FastText::printInfo(real progress, real loss) {
  real t = real(clock() - start) / CLOCKS_PER_SEC;
  real wst = real(tokenCount) / t;
  real lr = args_->lr * (1.0 - progress);
  int eta = int(t / progress * (1 - progress) / args_->thread);
  int etah = eta / 3600;
  int etam = (eta - etah * 3600) / 60;
  std::cerr << std::fixed;
  std::cerr << "\rProgress: " << std::setprecision(1) << 100 * progress << "%";
  std::cerr << "  words/sec/thread: " << std::setprecision(0) << wst;
  std::cerr << "  lr: " << std::setprecision(6) << lr;
  std::cerr << "  loss: " << std::setprecision(6) << loss;
  std::cerr << "  eta: " << etah << "h" << etam << "m ";
  std::cerr << std::flush;
}

// Assembly:
pushq %r15
pushq %r14
pushq %r12
pushq %rbx
subq $0x18, %rsp
movss %xmm1, 0x14(%rsp)
movss %xmm0, 0x8(%rsp)
movq %rdi, %rbx
callq 0x41e0
subq 0x78(%rbx), %rax
xorps %xmm0, %xmm0
cvtsi2ss %rax, %xmm0
divss 0xbbd9(%rip), %xmm0     # 0x1f718
movq 0x70(%rbx), %rax
xorps %xmm1, %xmm1
cvtsi2ss %rax, %xmm1
divss %xmm0, %xmm1
movss %xmm1, 0xc(%rsp)
movq (%rbx), %rax
movss 0x8(%rsp), %xmm3
xorps %xmm1, %xmm1
cvtss2sd %xmm3, %xmm1
movsd 0xad8b(%rip), %xmm2     # 0x1e8f8
subsd %xmm1, %xmm2
mulsd 0x80(%rax), %xmm2
xorps %xmm1, %xmm1
cvtsd2ss %xmm2, %xmm1
movss %xmm1, 0x10(%rsp)
divss %xmm3, %xmm0
movss 0xb5f6(%rip), %xmm1     # 0x1f188
subss %xmm3, %xmm1
mulss %xmm0, %xmm1
xorps %xmm0, %xmm0
cvtsi2ssl 0xd4(%rax), %xmm0
divss %xmm0, %xmm1
cvttss2si %xmm1, %eax
cltq
imulq $-0x6e5d4c3b, %rax, %rbx # imm = 0x91A2B3C5
shrq $0x20, %rbx
addl %eax, %ebx
movl %ebx, %ecx
shrl $0x1f, %ecx
sarl $0xb, %ebx
addl %ecx, %ebx
imull $0xfffff1f0, %ebx, %ecx # imm = 0xFFFFF1F0
addl %eax, %ecx
movslq %ecx, %r14
imulq $-0x77777777, %r14, %rax # imm = 0x88888889
shrq $0x20, %rax
addl %eax, %r14d
movl %r14d, %eax
shrl $0x1f, %eax
sarl $0x5, %r14d
addl %eax, %r14d
movq 0x163fd(%rip), %r15     # 0x29ff0
movq (%r15), %rax
movq -0x18(%rax), %rax
movl $0xfffffefb, %ecx       # imm = 0xFFFFFEFB
andl 0x18(%r15,%rax), %ecx
orl $0x4, %ecx
movl %ecx, 0x18(%r15,%rax)
leaq 0xbbe5(%rip), %rsi      # 0x1f7f8
movl $0xb, %edx
movq %r15, %rdi
callq 0x4350
movq (%r15), %rax
movq -0x18(%rax), %rax
movq $0x1, 0x8(%r15,%rax)
movss 0x8(%rsp), %xmm0
mulss 0xbade(%rip), %xmm0     # 0x1f71c
cvtss2sd %xmm0, %xmm0
movq %r15, %rdi
callq 0x44e0
leaq 0xbbb3(%rip), %rsi      # 0x1f804
movl $0x1, %edx
movq %rax, %rdi
callq 0x4350
leaq 0xbba1(%rip), %rsi      # 0x1f806
movl $0x14, %edx
movq %r15, %rdi
callq 0x4350
movq (%r15), %rax
movq -0x18(%rax), %rax
movq $0x0, 0x8(%r15,%rax)
xorps %xmm0, %xmm0
cvtss2sd 0xc(%rsp), %xmm0
movq %r15, %rdi
callq 0x44e0
leaq 0xbb81(%rip), %rsi      # 0x1f81b
movl $0x6, %r12d
movl $0x6, %edx
movq %r15, %rdi
callq 0x4350
movq (%r15), %rax
movq -0x18(%rax), %rax
movq %r12, 0x8(%r15,%rax)
xorps %xmm0, %xmm0
cvtss2sd 0x10(%rsp), %xmm0
movq %r15, %rdi
callq 0x44e0
leaq 0xbb51(%rip), %rsi      # 0x1f822
movl $0x8, %edx
movq %r15, %rdi
callq 0x4350
movq (%r15), %rax
movq -0x18(%rax), %rax
movq %r12, 0x8(%r15,%rax)
xorps %xmm0, %xmm0
cvtss2sd 0x14(%rsp), %xmm0
movq %r15, %rdi
callq 0x44e0
leaq 0xbb29(%rip), %rsi      # 0x1f82b
movl $0x7, %edx
movq %r15, %rdi
callq 0x4350
movq %r15, %rdi
movl %ebx, %esi
callq 0x4580
movq %rax, %rbx
leaq 0xa3cc(%rip), %rsi      # 0x1e0ef
movl $0x1, %edx
movq %rax, %rdi
callq 0x4350
movq %rbx, %rdi
movl %r14d, %esi
callq 0x4580
leaq 0xbaf1(%rip), %rsi      # 0x1f833
movl $0x2, %edx
movq %rax, %rdi
callq 0x4350
movq %r15, %rdi
addq $0x18, %rsp
popq %rbx
popq %r12
popq %r14
popq %r15
jmp 0x4200