// File: /workspace/github_cpp_makefile_star2_O1/iZhangHui[P]CppPrimer/CH17_SpecializedLibraryFacilities/examples/sci_dec.cc
// Function: main
int main() 
{
	cout << "default format: " << 100 * sqrt(2.0) << '\n'
		 << "scientific: " << scientific << 100 * sqrt(2.0) << '\n'
	     << "fixed decimal: " << fixed << 100 * sqrt(2.0) << '\n'
#ifdef HEX_MANIPS     // no workaround for this missing manipulator
		 << "hexadecimal: " << hexfloat << 100 * sqrt(2.0) << '\n'
#endif
		 << "use defaults: " << defaultfloat << 100 * sqrt(2.0) 
		 << "\n\n";
	
	cout << uppercase
	     << "scientific: " << scientific << sqrt(2.0) << '\n'
	     << "fixed decimal: " << fixed << sqrt(2.0) << '\n'
#ifdef HEX_MANIPS     // no workaround for this missing manipulator
		 << "hexadecimal: " << hexfloat << sqrt(2.0) << "\n\n"
#endif
		 << nouppercase;
	
	return 0;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
pushq %rax
movq 0x2e17(%rip), %rbx      # 0x3fd8
leaq 0xe50(%rip), %rsi       # 0x2018
movl $0x10, %edx
movq %rbx, %rdi
callq 0x1040
movsd 0xe2b(%rip), %xmm0      # 0x2008
movq %rbx, %rdi
callq 0x1060
movb $0xa, %r13b
leaq -0x29(%rbp), %rsi
movb %r13b, (%rsi)
movl $0x1, %edx
movq %rax, %rdi
callq 0x1040
movq %rax, %r15
leaq 0xe23(%rip), %rsi       # 0x2029
movl $0xc, %edx
movq %rax, %rdi
callq 0x1040
movq (%r15), %rax
movq -0x18(%rax), %rax
movl $0xfffffefb, %r14d      # imm = 0xFFFFFEFB
movl 0x18(%r15,%rax), %ecx
andl %r14d, %ecx
movl $0x100, %edx            # imm = 0x100
orl %edx, %ecx
movl %ecx, 0x18(%r15,%rax)
movq %r15, %rdi
movsd 0xdc9(%rip), %xmm0      # 0x2008
callq 0x1060
leaq -0x2a(%rbp), %rsi
movb %r13b, (%rsi)
movl $0x1, %edx
movq %rax, %rdi
callq 0x1040
movq %rax, %r12
leaq 0xdd4(%rip), %r15       # 0x2036
movl $0xf, %edx
movq %rax, %rdi
movq %r15, %rsi
callq 0x1040
movq (%r12), %rax
movq -0x18(%rax), %rax
movl 0x18(%r12,%rax), %ecx
andl %r14d, %ecx
orl $0x4, %ecx
movl %ecx, 0x18(%r12,%rax)
movq %r12, %rdi
movsd 0xd73(%rip), %xmm0      # 0x2008
callq 0x1060
leaq -0x2b(%rbp), %rsi
movb %r13b, (%rsi)
movl $0x1, %edx
movq %rax, %rdi
callq 0x1040
movq %rax, %r12
leaq 0xd8e(%rip), %rsi       # 0x2046
movl $0xe, %edx
movq %rax, %rdi
callq 0x1040
movq (%r12), %rax
movq -0x18(%rax), %rax
andl %r14d, 0x18(%r12,%rax)
movq %r12, %rdi
movsd 0xd2b(%rip), %xmm0      # 0x2008
callq 0x1060
leaq 0xd6c(%rip), %rsi       # 0x2055
movl $0x2, %edx
movq %rax, %rdi
callq 0x1040
movq (%rbx), %rax
movq -0x18(%rax), %rax
orl $0x4000, 0x18(%rbx,%rax) # imm = 0x4000
movl $0xc, %edx
movq %rbx, %rdi
leaq 0xd15(%rip), %rsi       # 0x2029
callq 0x1040
movq (%rbx), %rax
movq -0x18(%rax), %rax
movl 0x18(%rbx,%rax), %ecx
andl %r14d, %ecx
movl $0x100, %edx            # imm = 0x100
orl %edx, %ecx
movl %ecx, 0x18(%rbx,%rax)
movsd 0xcd6(%rip), %xmm0      # 0x2010
movq %rbx, %rdi
callq 0x1060
leaq -0x2c(%rbp), %rsi
movb %r13b, (%rsi)
movl $0x1, %edx
movq %rax, %rdi
callq 0x1040
movq %rax, %rbx
movl $0xf, %edx
movq %rax, %rdi
movq %r15, %rsi
callq 0x1040
movq (%rbx), %rax
movq -0x18(%rax), %rax
andl 0x18(%rbx,%rax), %r14d
orl $0x4, %r14d
movl %r14d, 0x18(%rbx,%rax)
movq %rbx, %rdi
movsd 0xc87(%rip), %xmm0      # 0x2010
callq 0x1060
leaq -0x2d(%rbp), %rsi
movb %r13b, (%rsi)
movl $0x1, %edx
movq %rax, %rdi
callq 0x1040
movq (%rax), %rcx
movq -0x18(%rcx), %rcx
andl $0xffffbfff, 0x18(%rax,%rcx) # imm = 0xFFFFBFFF
xorl %eax, %eax
addq $0x8, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq