// File: /workspace/github_cpp_makefile_star2_O2/ef-gy[P]libefgy/src/test-case/cf.cpp
// Function: testContinuedFractionArithmetic(std::ostream&)
bool testContinuedFractionArithmetic(std::ostream &log) {
  numeric::fractional<long long> af(6, 11), bf(4, 5), rf;
  numeric::continuedFractional<long long> a(af), b(bf), r;

  rf = af + bf;
  log << af << " + " << bf << " = " << rf << "\n";

  r = a + b;
  rf = r;
  log << a << " + " << b << " = " << r << " = " << rf << "\n";

  if (rf != r) {
    return false;
  }

  rf = af - bf;
  log << af << " - " << bf << " = " << rf << "\n";

  r = a - b;
  rf = r;
  log << a << " - " << b << " = " << r << " = " << rf << "\n";

  if (rf != r) {
    return false;
  }

  rf = af * bf;
  log << af << " * " << bf << " = " << rf << "\n";

  r = a * b;
  rf = r;
  log << a << " * " << b << " = " << r << " = " << rf << "\n";

  if (rf != r) {
    return false;
  }

  rf = af / bf;
  log << af << " / " << bf << " = " << rf << "\n";

  r = a / b;
  rf = r;
  log << a << " / " << b << " = " << r << " = " << rf << "\n";

  if (rf != r) {
    return false;
  }

  return true;
}

// Assembly:
pushq %r15
pushq %r14
pushq %rbx
subq $0xb0, %rsp
movq %rdi, %rbx
leaq 0x40(%rsp), %r14
movq $0x6, (%r14)
movq $0xb, 0x8(%r14)
movq %r14, %rdi
callq 0x11e80
leaq 0x30(%rsp), %r15
movq $0x4, (%r15)
movq $0x5, 0x8(%r15)
movq %r15, %rdi
callq 0x11e80
andq $0x0, (%rsp)
movq $0x1, 0x8(%rsp)
leaq 0x90(%rsp), %rdi
movq %r14, %rsi
callq 0x5178
leaq 0x70(%rsp), %rdi
movq %r15, %rsi
callq 0x5178
xorps %xmm0, %xmm0
movups %xmm0, 0x19(%rsp)
movaps %xmm0, 0x10(%rsp)
leaq 0x40(%rsp), %rdi
leaq 0x30(%rsp), %rsi
callq 0x529c
movq %rax, (%rsp)
movq %rdx, 0x8(%rsp)
leaq 0x40(%rsp), %rsi
movq %rbx, %rdi
callq 0x52dd
leaq 0xe7b3(%rip), %rsi      # 0x1311a
movq %rax, %rdi
callq 0x4270
leaq 0x30(%rsp), %rsi
movq %rax, %rdi
callq 0x52dd
leaq 0xe79b(%rip), %rsi      # 0x1311e
movq %rax, %rdi
callq 0x4270
movq %rsp, %rsi
movq %rax, %rdi
callq 0x52dd
leaq 0xe800(%rip), %rsi      # 0x1319d
movq %rax, %rdi
callq 0x4270
leaq 0x50(%rsp), %rdi
leaq 0x90(%rsp), %rsi
leaq 0x70(%rsp), %rdx
callq 0x5306
leaq 0x10(%rsp), %rdi
leaq 0x50(%rsp), %rsi
callq 0x534e
leaq 0x50(%rsp), %rdi
callq 0xf4b8
leaq 0x10(%rsp), %rdi
callq 0x5370
movq %rax, (%rsp)
movq %rdx, 0x8(%rsp)
leaq 0x90(%rsp), %rsi
movq %rbx, %rdi
callq 0x5435
leaq 0xe71b(%rip), %rsi      # 0x1311a
movq %rax, %rdi
callq 0x4270
leaq 0x70(%rsp), %rsi
movq %rax, %rdi
callq 0x5435
leaq 0xe703(%rip), %rsi      # 0x1311e
movq %rax, %rdi
callq 0x4270
leaq 0x10(%rsp), %rsi
movq %rax, %rdi
callq 0x5435
leaq 0xe6e7(%rip), %rsi      # 0x1311e
movq %rax, %rdi
callq 0x4270
movq %rsp, %rsi
movq %rax, %rdi
callq 0x52dd
leaq 0xe74c(%rip), %rsi      # 0x1319d
movq %rax, %rdi
callq 0x4270
movq %rsp, %rdi
leaq 0x10(%rsp), %rsi
callq 0x5513
testb %al, %al
jne 0x4cd0
leaq 0x40(%rsp), %rdi
leaq 0x30(%rsp), %rsi
callq 0x552e
movq %rax, (%rsp)
movq %rdx, 0x8(%rsp)
leaq 0x40(%rsp), %rsi
movq %rbx, %rdi
callq 0x52dd
leaq 0xe688(%rip), %rsi      # 0x13122
movq %rax, %rdi
callq 0x4270
leaq 0x30(%rsp), %rsi
movq %rax, %rdi
callq 0x52dd
leaq 0xe668(%rip), %rsi      # 0x1311e
movq %rax, %rdi
callq 0x4270
movq %rsp, %rsi
movq %rax, %rdi
callq 0x52dd
leaq 0xe6cd(%rip), %rsi      # 0x1319d
movq %rax, %rdi
callq 0x4270
leaq 0x50(%rsp), %rdi
leaq 0x90(%rsp), %rsi
leaq 0x70(%rsp), %rdx
callq 0x5570
leaq 0x10(%rsp), %rdi
leaq 0x50(%rsp), %rsi
callq 0x534e
leaq 0x50(%rsp), %rdi
callq 0xf4b8
leaq 0x10(%rsp), %rdi
callq 0x5370
movq %rax, (%rsp)
movq %rdx, 0x8(%rsp)
leaq 0x90(%rsp), %rsi
movq %rbx, %rdi
callq 0x5435
leaq 0xe5f0(%rip), %rsi      # 0x13122
movq %rax, %rdi
callq 0x4270
leaq 0x70(%rsp), %rsi
movq %rax, %rdi
callq 0x5435
leaq 0xe5d0(%rip), %rsi      # 0x1311e
movq %rax, %rdi
callq 0x4270
leaq 0x10(%rsp), %rsi
movq %rax, %rdi
callq 0x5435
leaq 0xe5b4(%rip), %rsi      # 0x1311e
movq %rax, %rdi
callq 0x4270
movq %rsp, %rsi
movq %rax, %rdi
callq 0x52dd
leaq 0xe619(%rip), %rsi      # 0x1319d
movq %rax, %rdi
callq 0x4270
movq %rsp, %rdi
leaq 0x10(%rsp), %rsi
callq 0x5513
testb %al, %al
jne 0x4cd0
leaq 0x40(%rsp), %rdi
leaq 0x30(%rsp), %rsi
callq 0x55b8
movq %rax, (%rsp)
movq %rdx, 0x8(%rsp)
leaq 0x40(%rsp), %rsi
movq %rbx, %rdi
callq 0x52dd
leaq 0xe559(%rip), %rsi      # 0x13126
movq %rax, %rdi
callq 0x4270
leaq 0x30(%rsp), %rsi
movq %rax, %rdi
callq 0x52dd
leaq 0xe535(%rip), %rsi      # 0x1311e
movq %rax, %rdi
callq 0x4270
movq %rsp, %rsi
movq %rax, %rdi
callq 0x52dd
leaq 0xe59a(%rip), %rsi      # 0x1319d
movq %rax, %rdi
callq 0x4270
leaq 0x50(%rsp), %rdi
leaq 0x90(%rsp), %rsi
leaq 0x70(%rsp), %rdx
callq 0x55ec
leaq 0x10(%rsp), %rdi
leaq 0x50(%rsp), %rsi
callq 0x534e
leaq 0x50(%rsp), %rdi
callq 0xf4b8
leaq 0x10(%rsp), %rdi
callq 0x5370
movq %rax, (%rsp)
movq %rdx, 0x8(%rsp)
leaq 0x90(%rsp), %rsi
movq %rbx, %rdi
callq 0x5435
leaq 0xe4c1(%rip), %rsi      # 0x13126
movq %rax, %rdi
callq 0x4270
leaq 0x70(%rsp), %rsi
movq %rax, %rdi
callq 0x5435
leaq 0xe49d(%rip), %rsi      # 0x1311e
movq %rax, %rdi
callq 0x4270
leaq 0x10(%rsp), %rsi
movq %rax, %rdi
callq 0x5435
leaq 0xe481(%rip), %rsi      # 0x1311e
movq %rax, %rdi
callq 0x4270
movq %rsp, %rsi
movq %rax, %rdi
callq 0x52dd
leaq 0xe4e6(%rip), %rsi      # 0x1319d
movq %rax, %rdi
callq 0x4270
movq %rsp, %rdi
leaq 0x10(%rsp), %rsi
callq 0x5513
testb %al, %al
je 0x4d02
xorl %ebx, %ebx
leaq 0x10(%rsp), %rdi
callq 0xf4b8
leaq 0x70(%rsp), %rdi
callq 0xf4b8
leaq 0x90(%rsp), %rdi
callq 0xf4b8
movl %ebx, %eax
addq $0xb0, %rsp
popq %rbx
popq %r14
popq %r15
retq
leaq 0x40(%rsp), %rdi
leaq 0x30(%rsp), %rsi
callq 0x562a
movq %rax, (%rsp)
movq %rdx, 0x8(%rsp)
leaq 0x40(%rsp), %rsi
movq %rbx, %rdi
callq 0x52dd
leaq 0xe3fc(%rip), %rsi      # 0x1312a
movq %rax, %rdi
callq 0x4270
leaq 0x30(%rsp), %rsi
movq %rax, %rdi
callq 0x52dd
leaq 0xe3d4(%rip), %rsi      # 0x1311e
movq %rax, %rdi
callq 0x4270
movq %rsp, %rsi
movq %rax, %rdi
callq 0x52dd
leaq 0xe439(%rip), %rsi      # 0x1319d
movq %rax, %rdi
callq 0x4270
leaq 0x50(%rsp), %rdi
leaq 0x90(%rsp), %rsi
leaq 0x70(%rsp), %rdx
callq 0x565e
leaq 0x10(%rsp), %rdi
leaq 0x50(%rsp), %rsi
callq 0x534e
leaq 0x50(%rsp), %rdi
callq 0xf4b8
leaq 0x10(%rsp), %rdi
callq 0x5370
movq %rax, (%rsp)
movq %rdx, 0x8(%rsp)
leaq 0x90(%rsp), %rsi
movq %rbx, %rdi
callq 0x5435
leaq 0xe364(%rip), %rsi      # 0x1312a
movq %rax, %rdi
callq 0x4270
leaq 0x70(%rsp), %rsi
movq %rax, %rdi
callq 0x5435
leaq 0xe33c(%rip), %rsi      # 0x1311e
movq %rax, %rdi
callq 0x4270
leaq 0x10(%rsp), %rsi
movq %rax, %rdi
callq 0x5435
leaq 0xe320(%rip), %rsi      # 0x1311e
movq %rax, %rdi
callq 0x4270
movq %rsp, %rsi
movq %rax, %rdi
callq 0x52dd
leaq 0xe385(%rip), %rsi      # 0x1319d
movq %rax, %rdi
callq 0x4270
movq %rsp, %rdi
leaq 0x10(%rsp), %rsi
callq 0x5513
movl %eax, %ebx
xorb $0x1, %bl
jmp 0x4cd2
jmp 0x4e69
jmp 0x4e51
jmp 0x4e69
jmp 0x4e69
jmp 0x4e69
jmp 0x4e51
jmp 0x4e69
jmp 0x4e69
jmp 0x4e69
jmp 0x4e51
jmp 0x4e69
jmp 0x4e69
jmp 0x4e69
movq %rax, %rbx
leaq 0x50(%rsp), %rdi
callq 0xf4b8
jmp 0x4e6c
jmp 0x4e69
jmp 0x4e69
movq %rax, %rbx
jmp 0x4e80
movq %rax, %rbx
leaq 0x10(%rsp), %rdi
callq 0xf4b8
leaq 0x70(%rsp), %rdi
callq 0xf4b8
leaq 0x90(%rsp), %rdi
callq 0xf4b8
movq %rbx, %rdi
callq 0x4410
nop