// File: istellartech[P]OpenTsiolkovsky/./boost/numeric/odeint/stepper/runge_kutta_dopri5.hpp
// Function: void boost::numeric::odeint::runge_kutta_dopri5<std::array<double, 14ul>, double, std::array<double, 14ul>, double, boost::numeric::odeint::array_algebra, boost::numeric::odeint::default_operations, boost::numeric::odeint::initially_resizer>::do_step_impl<RocketStage, std::array<double, 14ul>, std::array<double, 14ul>, std::array<double, 14ul>, std::array<double, 14ul>, std::array<double, 14ul>>(RocketStage, std::array<double, 14ul> const&, std::array<double, 14ul> const&, double, std::array<double, 14ul>&, std::array<double, 14ul>&, double, std::array<double, 14ul>&)
void do_step_impl( System system , const StateIn &in , const DerivIn &dxdt_in , time_type t ,
            StateOut &out , DerivOut &dxdt_out , time_type dt , Err &xerr )
    {
        const value_type c1 = static_cast<value_type> ( 35 ) / static_cast<value_type>( 384 );
        const value_type c3 = static_cast<value_type> ( 500 ) / static_cast<value_type>( 1113 );
        const value_type c4 = static_cast<value_type> ( 125 ) / static_cast<value_type>( 192 );
        const value_type c5 = static_cast<value_type> ( -2187 ) / static_cast<value_type>( 6784 );
        const value_type c6 = static_cast<value_type> ( 11 ) / static_cast<value_type>( 84 );

        const value_type dc1 = c1 - static_cast<value_type> ( 5179 ) / static_cast<value_type>( 57600 );
        const value_type dc3 = c3 - static_cast<value_type> ( 7571 ) / static_cast<value_type>( 16695 );
        const value_type dc4 = c4 - static_cast<value_type> ( 393 ) / static_cast<value_type>( 640 );
        const value_type dc5 = c5 - static_cast<value_type> ( -92097 ) / static_cast<value_type>( 339200 );
        const value_type dc6 = c6 - static_cast<value_type> ( 187 ) / static_cast<value_type>( 2100 );
        const value_type dc7 = static_cast<value_type>( -1 ) / static_cast<value_type> ( 40 );

        /* ToDo: copy only if &dxdt_in == &dxdt_out ? */
        if( same_instance( dxdt_in , dxdt_out ) )
        {
            m_dxdt_tmp_resizer.adjust_size( in , detail::bind( &stepper_type::template resize_dxdt_tmp_impl<StateIn> , detail::ref( *this ) , detail::_1 ) );
            boost::numeric::odeint::copy( dxdt_in , m_dxdt_tmp.m_v );
            do_step_impl( system , in , dxdt_in , t , out , dxdt_out , dt );
            //error estimate
            stepper_base_type::m_algebra.for_each7( xerr , m_dxdt_tmp.m_v , m_k3.m_v , m_k4.m_v , m_k5.m_v , m_k6.m_v , dxdt_out ,
                                                    typename operations_type::template scale_sum6< time_type , time_type , time_type , time_type , time_type , time_type >( dt*dc1 , dt*dc3 , dt*dc4 , dt*dc5 , dt*dc6 , dt*dc7 ) );

        }
        else
        {
            do_step_impl( system , in , dxdt_in , t , out , dxdt_out , dt );
            //error estimate
            stepper_base_type::m_algebra.for_each7( xerr , dxdt_in , m_k3.m_v , m_k4.m_v , m_k5.m_v , m_k6.m_v , dxdt_out ,
                                                    typename operations_type::template scale_sum6< time_type , time_type , time_type , time_type , time_type , time_type >( dt*dc1 , dt*dc3 , dt*dc4 , dt*dc5 , dt*dc6 , dt*dc7 ) );
        
        }

    }

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x1fa0, %rsp           # imm = 0x1FA0
movq %rsi, -0x1ed0(%rbp)
movq 0x10(%rbp), %rax
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movq %rdx, -0x18(%rbp)
movq %rcx, -0x20(%rbp)
movsd %xmm0, -0x28(%rbp)
movq %r8, -0x30(%rbp)
movq %r9, -0x38(%rbp)
movsd %xmm1, -0x40(%rbp)
movq -0x8(%rbp), %rax
movq %rax, -0x1ec8(%rbp)
movsd 0x23b15(%rip), %xmm0    # 0x52ec0
movsd %xmm0, -0x48(%rbp)
movsd 0x23b00(%rip), %xmm0    # 0x52eb8
movsd %xmm0, -0x50(%rbp)
movsd 0x23aeb(%rip), %xmm0    # 0x52eb0
movsd %xmm0, -0x58(%rbp)
movsd 0x23ad6(%rip), %xmm0    # 0x52ea8
movsd %xmm0, -0x60(%rbp)
movsd 0x23ac1(%rip), %xmm0    # 0x52ea0
movsd %xmm0, -0x68(%rbp)
movsd 0x23bc4(%rip), %xmm0    # 0x52fb0
movsd %xmm0, -0x70(%rbp)
movsd 0x23baf(%rip), %xmm0    # 0x52fa8
movsd %xmm0, -0x78(%rbp)
movsd 0x23b9a(%rip), %xmm0    # 0x52fa0
movsd %xmm0, -0x80(%rbp)
movsd 0x23b85(%rip), %xmm0    # 0x52f98
movsd %xmm0, -0x88(%rbp)
movsd 0x23b6d(%rip), %xmm0    # 0x52f90
movsd %xmm0, -0x90(%rbp)
movsd 0x23b55(%rip), %xmm0    # 0x52f88
movsd %xmm0, -0x98(%rbp)
movq -0x20(%rbp), %rdi
movq -0x38(%rbp), %rsi
callq 0x2f840
testb $0x1, %al
jne 0x2f451
jmp 0x2f693
movq -0x1ec8(%rbp), %rdi
movq %rdi, %rax
addq $0x389, %rax            # imm = 0x389
movq %rax, -0x1ef0(%rbp)
movq -0x18(%rbp), %rax
movq %rax, -0x1ee8(%rbp)
leaq 0x486(%rip), %rax       # 0x2f900
movq %rax, -0xc0(%rbp)
movq $0x0, -0xb8(%rbp)
callq 0x2f930
movq %rax, -0xc8(%rbp)
movq 0x49af9(%rip), %rcx     # 0x78f98
leaq -0xb0(%rbp), %rdi
movq %rdi, -0x1ee0(%rbp)
leaq -0xc0(%rbp), %rsi
leaq -0xc8(%rbp), %rdx
callq 0x2f8c0
movq -0x1ef0(%rbp), %rdi
movq -0x1ee8(%rbp), %rsi
movq -0x1ee0(%rbp), %rdx
callq 0x2f870
movq -0x1ec8(%rbp), %rsi
movq -0x20(%rbp), %rdi
addq $0x318, %rsi            # imm = 0x318
callq 0x2d300
movq -0x1ed0(%rbp), %rsi
leaq -0xf90(%rbp), %rdi
movq %rdi, -0x1ed8(%rbp)
callq 0x1f580
movq -0x1ec8(%rbp), %rdi
movq -0x1ed8(%rbp), %rsi
movq -0x18(%rbp), %rdx
movq -0x20(%rbp), %rcx
movsd -0x28(%rbp), %xmm0
movq -0x30(%rbp), %r8
movq -0x38(%rbp), %r9
movsd -0x40(%rbp), %xmm1
callq 0x2f960
jmp 0x2f53a
leaq -0xf90(%rbp), %rdi
callq 0xb260
movq -0x1ec8(%rbp), %rax
movq 0x10(%rbp), %rcx
movq %rcx, -0x1f20(%rbp)
movq %rax, %rcx
addq $0x318, %rcx            # imm = 0x318
movq %rcx, -0x1f18(%rbp)
movq %rax, %rcx
addq $0x158, %rcx            # imm = 0x158
movq %rcx, -0x1f10(%rbp)
movq %rax, %rcx
addq $0x1c8, %rcx            # imm = 0x1C8
movq %rcx, -0x1f08(%rbp)
movq %rax, %rcx
addq $0x238, %rcx            # imm = 0x238
movq %rcx, -0x1f00(%rbp)
addq $0x2a8, %rax            # imm = 0x2A8
movq %rax, -0x1ef8(%rbp)
movq -0x38(%rbp), %rax
movq %rax, -0x1f28(%rbp)
movsd 0x239f4(%rip), %xmm0    # 0x52fb0
mulsd -0x40(%rbp), %xmm0
movsd 0x239df(%rip), %xmm1    # 0x52fa8
mulsd -0x40(%rbp), %xmm1
movsd 0x239ca(%rip), %xmm2    # 0x52fa0
mulsd -0x40(%rbp), %xmm2
movsd 0x239b5(%rip), %xmm3    # 0x52f98
mulsd -0x40(%rbp), %xmm3
movsd 0x239a0(%rip), %xmm4    # 0x52f90
mulsd -0x40(%rbp), %xmm4
movsd 0x2398b(%rip), %xmm5    # 0x52f88
mulsd -0x40(%rbp), %xmm5
leaq -0xfd0(%rbp), %rdi
callq 0x302f0
movq -0x1f28(%rbp), %r10
movq -0x1f20(%rbp), %rdi
movq -0x1f18(%rbp), %rsi
movq -0x1f10(%rbp), %rdx
movq -0x1f08(%rbp), %rcx
movq -0x1f00(%rbp), %r8
movq -0x1ef8(%rbp), %r9
movups -0xfd0(%rbp), %xmm0
movups -0xfc0(%rbp), %xmm1
movups -0xfb0(%rbp), %xmm2
movq %rsp, %rax
movups %xmm2, 0x28(%rax)
movups %xmm1, 0x18(%rax)
movups %xmm0, 0x8(%rax)
movq %r10, (%rax)
callq 0x301f0
jmp 0x2f829
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xf98(%rbp)
movl %eax, -0xf9c(%rbp)
leaq -0xf90(%rbp), %rdi
callq 0xb260
jmp 0x2f832
movq -0x1ed0(%rbp), %rsi
leaq -0x1e90(%rbp), %rdi
movq %rdi, -0x1f30(%rbp)
callq 0x1f580
movq -0x1ec8(%rbp), %rdi
movq -0x1f30(%rbp), %rsi
movq -0x18(%rbp), %rdx
movq -0x20(%rbp), %rcx
movsd -0x28(%rbp), %xmm0
movq -0x30(%rbp), %r8
movq -0x38(%rbp), %r9
movsd -0x40(%rbp), %xmm1
callq 0x2f960
jmp 0x2f6dc
leaq -0x1e90(%rbp), %rdi
callq 0xb260
movq -0x1ec8(%rbp), %rax
movq 0x10(%rbp), %rcx
movq %rcx, -0x1f60(%rbp)
movq -0x20(%rbp), %rcx
movq %rcx, -0x1f58(%rbp)
movq %rax, %rcx
addq $0x158, %rcx            # imm = 0x158
movq %rcx, -0x1f50(%rbp)
movq %rax, %rcx
addq $0x1c8, %rcx            # imm = 0x1C8
movq %rcx, -0x1f48(%rbp)
movq %rax, %rcx
addq $0x238, %rcx            # imm = 0x238
movq %rcx, -0x1f40(%rbp)
addq $0x2a8, %rax            # imm = 0x2A8
movq %rax, -0x1f38(%rbp)
movq -0x38(%rbp), %rax
movq %rax, -0x1f68(%rbp)
movsd 0x23858(%rip), %xmm0    # 0x52fb0
mulsd -0x40(%rbp), %xmm0
movsd 0x23843(%rip), %xmm1    # 0x52fa8
mulsd -0x40(%rbp), %xmm1
movsd 0x2382e(%rip), %xmm2    # 0x52fa0
mulsd -0x40(%rbp), %xmm2
movsd 0x23819(%rip), %xmm3    # 0x52f98
mulsd -0x40(%rbp), %xmm3
movsd 0x23804(%rip), %xmm4    # 0x52f90
mulsd -0x40(%rbp), %xmm4
movsd 0x237ef(%rip), %xmm5    # 0x52f88
mulsd -0x40(%rbp), %xmm5
leaq -0x1ec0(%rbp), %rdi
callq 0x302f0
movq -0x1f68(%rbp), %r10
movq -0x1f60(%rbp), %rdi
movq -0x1f58(%rbp), %rsi
movq -0x1f50(%rbp), %rdx
movq -0x1f48(%rbp), %rcx
movq -0x1f40(%rbp), %r8
movq -0x1f38(%rbp), %r9
movups -0x1ec0(%rbp), %xmm0
movups -0x1eb0(%rbp), %xmm1
movups -0x1ea0(%rbp), %xmm2
movq %rsp, %rax
movups %xmm2, 0x28(%rax)
movups %xmm1, 0x18(%rax)
movups %xmm0, 0x8(%rax)
movq %r10, (%rax)
callq 0x301f0
jmp 0x2f829
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xf98(%rbp)
movl %eax, -0xf9c(%rbp)
leaq -0x1e90(%rbp), %rdi
callq 0xb260
jmp 0x2f832
addq $0x1fa0, %rsp           # imm = 0x1FA0
popq %rbp
retq
movq -0xf98(%rbp), %rdi
callq 0x67a0
nop