// File: /workspace/github_cpp_makefile_star2_O1/oknenavin[P]cxon/test/../src/cxon/lang/common/cio/numeric.hxx
// Function: std::enable_if<std::is_floating_point<double>::value, bool>::type cxon::cio::num::imp::number_write_<cxon::cio::key::unquoted_traits<cxon::json::format_traits>, double, cxon::json::indenter<cxon::JSON<cxon::JSON<cxon::json::format_traits>>, std::ostreambuf_iterator<char, std::char_traits<char>>>, cxon::context<cxon::JSON<cxon::json::format_traits>, cxon::napa::imp::var<cxon::node::recursion_guard, unsigned int>>>(cxon::json::indenter<cxon::JSON<cxon::JSON<cxon::json::format_traits>>, std::ostreambuf_iterator<char, std::char_traits<char>>>&, double, cxon::context<cxon::JSON<cxon::json::format_traits>, cxon::napa::imp::var<cxon::node::recursion_guard, unsigned int>>&)
inline auto number_write_(O& o, T t, Cx& cx) -> enable_if_t<std::is_floating_point<T>::value, bool> {
                if (std::isfinite(t)) {
                    char s[max_size_<T>::value + 1]; // +1 because of the fall-back implementation (snprintf)
                        constexpr auto fpp = fp_precision::constant<napa_type<Cx>>(std::numeric_limits<T>::max_digits10);
                        auto const r = charconv::to_chars(std::begin(s), std::end(s), t, fpp); CXON_ASSERT(r.ec == std::errc(), "unexpected");
                    return poke<X>(o, s, r.ptr, cx);
                }
                else {
                    CXON_IF_CONSTEXPR (!X::allow_javascript_nans) {
                        CXON_IF_CONSTEXPR (!is_unquoted_key_context<X>::value) {
                            if (!poke<X>(o, X::string::del, cx))                                return false;
                        }
                        if (std::isinf(t)) {
                            if (!poke<X>(o, std::signbit(t) ? "-inf" : "inf", cx))              return false;
                        }
                        else {
                            if (!poke<X>(o, std::signbit(t) ? "-nan" : "nan", cx))              return false;
                        }
                        CXON_IF_CONSTEXPR (!is_unquoted_key_context<X>::value) {
                            if (!poke<X>(o, X::string::del, cx))                                return false;
                        }
                    }
                    CXON_IF_CONSTEXPR ( X::allow_javascript_nans) {
                        if (std::isinf(t)) {
                            if (!poke<X>(o, std::signbit(t) ? "-Infinity" : "Infinity", cx))    return false;
                        }
                        else {
                            if (!poke<X>(o, std::signbit(t) ? "-NaN" : "NaN", cx))              return false;
                        }
                    }
                    return true;
                }
            }

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %rbx
subq $0x38, %rsp
movq %rsi, %rbx
movq %rdi, %r14
movq %xmm0, %rcx
movq %rcx, %rdx
btrq $0x3f, %rdx
movabsq $0x7fefffffffffffff, %rax # imm = 0x7FEFFFFFFFFFFFFF
cmpq %rax, %rdx
jle 0x214b1
movq %rcx, %rax
shrq $0x3f, %rax
addq $0x3, %rax
movabsq $0x7ff0000000000000, %rsi # imm = 0x7FF0000000000000
cmpq %rsi, %rdx
jne 0x21509
testq %rcx, %rcx
leaq 0x266a8(%rip), %rcx     # 0x47b50
leaq 0x266a2(%rip), %rdx     # 0x47b51
jmp 0x2151a
leaq 0x26854(%rip), %rdx     # 0x47d0c
leaq 0x10(%rsp), %r15
movl $0x19, %esi
movq %r15, %rdi
movl $0x11, %ecx
movb $0x1, %al
callq 0x4370
cltq
addq %rsp, %rax
addq $0x10, %rax
leaq 0x8(%rsp), %rsi
movq %r15, (%rsi)
leaq 0x30(%rsp), %rdx
movq %rax, (%rdx)
movq %r14, %rdi
callq 0x20f2c
movl %eax, %ebp
testb %al, %al
jne 0x2154e
callq 0x20204
movl $0x1, (%rbx)
movq %rax, 0x8(%rbx)
jmp 0x2154e
testq %rcx, %rcx
leaq 0x267f4(%rip), %rcx     # 0x47d07
leaq 0x267ee(%rip), %rdx     # 0x47d08
cmovsq %rcx, %rdx
leaq 0x10(%rsp), %rsi
movq %rdx, (%rsi)
leaq 0x8(%rsp), %rdx
movq %rax, (%rdx)
movq %r14, %rdi
callq 0x211b2
movb $0x1, %bpl
testb %al, %al
jne 0x2154e
callq 0x20204
movl $0x1, (%rbx)
movq %rax, 0x8(%rbx)
xorl %ebp, %ebp
movl %ebp, %eax
addq $0x38, %rsp
popq %rbx
popq %r14
popq %r15
popq %rbp
retq
nop