// File: /workspace/github_cpp_makefile_star2_O2/j-faria[P]kima/src/RVmodel.cpp
// Function: RVmodel::print(std::ostream&) const
void RVmodel::print(std::ostream& out) const
{
    // output precision
    out.setf(ios::fixed,ios::floatfield);
    out.precision(8);

    if (multi_instrument)
    {
        for(int j=0; j<jitters.size(); j++)
            out<<jitters[j]<<'\t';
    }
    else
        out<<extra_sigma<<'\t';

    if(trend)
    {
        out.precision(15);
        if (degree >= 1) out << slope << '\t';
        if (degree >= 2) out << quadr << '\t';
        if (degree == 3) out << cubic << '\t';
        out.precision(8);
    }
        
    if (multi_instrument){
        for(int j=0; j<offsets.size(); j++){
            out<<offsets[j]<<'\t';
        }
    }

    auto data = Data::get_instance();
    if(data.indicator_correlations){
        for(int j=0; j<data.number_indicators; j++){
            out<<betas[j]<<'\t';
        }
    }

    if(GP)
    {
        if (kernel == standard)
            out << eta1 << '\t' << eta2 << '\t' << eta3 << '\t' << eta4 << '\t';
        else
            out << eta1 << '\t' << eta2 << '\t' << eta3 << '\t';
    }
    
    if(MA)
        out << sigmaMA << '\t' << tauMA << '\t';

    if(known_object){ // KO mode!
        for (auto P: KO_P) out << P << "\t";
        for (auto K: KO_K) out << K << "\t";
        for (auto phi: KO_phi) out << phi << "\t";
        for (auto e: KO_e) out << e << "\t";
        for (auto w: KO_w) out << w << "\t";
    }

    planets.print(out);

    out << ' ' << staleness << ' ';

    if (studentt)
        out << '\t' << nu << '\t';

    out << background;
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x108, %rsp            # imm = 0x108
movq %rsi, %rbx
movq (%rsi), %rax
movq -0x18(%rax), %rcx
movl $0xfffffefb, %edx       # imm = 0xFFFFFEFB
andl 0x18(%rsi,%rcx), %edx
movq %rdi, %r14
orl $0x4, %edx
movl %edx, 0x18(%rsi,%rcx)
movq -0x18(%rax), %rax
movq $0x8, 0x8(%rsi,%rax)
leaq 0x36c48(%rip), %rax     # 0x47014
movb (%rax), %r15b
cmpb $0x1, %r15b
jne 0x10412
xorl %r12d, %r12d
pushq $0x9
popq %rbp
movq 0x140(%r14), %rax
movq 0x148(%r14), %rcx
subq %rax, %rcx
sarq $0x3, %rcx
cmpq %r12, %rcx
jbe 0x1042e
movsd (%rax,%r12,8), %xmm0
movq %rbx, %rdi
callq 0x6610
movq %rax, %rdi
movl %ebp, %esi
callq 0x6480
incq %r12
jmp 0x103db
movsd 0x198(%r14), %xmm0
movq %rbx, %rdi
callq 0x6610
pushq $0x9
popq %rsi
movq %rax, %rdi
callq 0x6480
leaq 0x36bda(%rip), %rax     # 0x4700f
cmpb $0x1, (%rax)
jne 0x104c9
movq (%rbx), %rax
movq -0x18(%rax), %rax
movq $0xf, 0x8(%rbx,%rax)
leaq 0x36bbb(%rip), %rax     # 0x47010
movl (%rax), %ebp
testl %ebp, %ebp
jle 0x104b9
movsd 0x170(%r14), %xmm0
movq %rbx, %rdi
callq 0x6610
pushq $0x9
popq %rsi
movq %rax, %rdi
callq 0x6480
cmpl $0x1, %ebp
je 0x104b9
movsd 0x178(%r14), %xmm0
movq %rbx, %rdi
callq 0x6610
pushq $0x9
popq %rsi
movq %rax, %rdi
callq 0x6480
cmpl $0x3, %ebp
jne 0x104b9
movsd 0x180(%r14), %xmm0
movq %rbx, %rdi
callq 0x6610
pushq $0x9
popq %rsi
movq %rax, %rdi
callq 0x6480
movq (%rbx), %rax
movq -0x18(%rax), %rax
movq $0x8, 0x8(%rbx,%rax)
testb %r15b, %r15b
je 0x1050b
xorl %r15d, %r15d
pushq $0x9
popq %rbp
movq 0x128(%r14), %rax
movq 0x130(%r14), %rcx
subq %rax, %rcx
sarq $0x3, %rcx
cmpq %r15, %rcx
jbe 0x1050b
movsd (%rax,%r15,8), %xmm0
movq %rbx, %rdi
callq 0x6610
movq %rax, %rdi
movl %ebp, %esi
callq 0x6480
incq %r15
jmp 0x104d4
leaq 0x5406e(%rip), %rsi     # 0x64580
movq %rsp, %r15
movq %r15, %rdi
callq 0x11aa2
cmpb $0x1, 0x78(%r15)
jne 0x10558
xorl %r15d, %r15d
pushq $0x9
popq %rbp
movslq 0x7c(%rsp), %rax
cmpq %rax, %r15
jge 0x10558
movq 0x158(%r14), %rax
movsd (%rax,%r15,8), %xmm0
movq %rbx, %rdi
callq 0x6610
movq %rax, %rdi
movl %ebp, %esi
callq 0x6480
incq %r15
jmp 0x1052a
leaq 0x36aad(%rip), %rax     # 0x4700c
cmpb $0x1, (%rax)
jne 0x1061a
cmpl $0x0, 0x1a8(%r14)
movsd 0x1b0(%r14), %xmm0
je 0x105b1
movq %rbx, %rdi
callq 0x6610
pushq $0x9
popq %rsi
movq %rax, %rdi
callq 0x6480
movsd 0x1b8(%r14), %xmm0
movq %rax, %rdi
callq 0x6610
pushq $0x9
popq %rsi
movq %rax, %rdi
callq 0x6480
movl $0x1c0, %ecx            # imm = 0x1C0
jmp 0x10601
movq %rbx, %rdi
callq 0x6610
pushq $0x9
popq %rsi
movq %rax, %rdi
callq 0x6480
movsd 0x1b8(%r14), %xmm0
movq %rax, %rdi
callq 0x6610
pushq $0x9
popq %rsi
movq %rax, %rdi
callq 0x6480
movsd 0x1c0(%r14), %xmm0
movq %rax, %rdi
callq 0x6610
pushq $0x9
popq %rsi
movq %rax, %rdi
callq 0x6480
movl $0x1c8, %ecx            # imm = 0x1C8
movsd (%r14,%rcx), %xmm0
movq %rax, %rdi
callq 0x6610
pushq $0x9
popq %rsi
movq %rax, %rdi
callq 0x6480
leaq 0x369ec(%rip), %rax     # 0x4700d
cmpb $0x1, (%rax)
jne 0x1065e
movsd 0x188(%r14), %xmm0
movq %rbx, %rdi
callq 0x6610
pushq $0x9
popq %rsi
movq %rax, %rdi
callq 0x6480
movsd 0x190(%r14), %xmm0
movq %rax, %rdi
callq 0x6610
pushq $0x9
popq %rsi
movq %rax, %rdi
callq 0x6480
leaq 0x369b0(%rip), %rax     # 0x47015
cmpb $0x1, (%rax)
jne 0x1078b
movq 0x308(%r14), %r12
movq 0x310(%r14), %r13
leaq 0x2c409(%rip), %r15     # 0x3ca8c
cmpq %r13, %r12
je 0x106a7
movsd (%r12), %xmm0
movq %rbx, %rdi
callq 0x6610
movq %rax, %rdi
movq %r15, %rsi
callq 0x6430
addq $0x8, %r12
jmp 0x10683
movq 0x320(%r14), %r12
movq 0x328(%r14), %r13
leaq 0x2c3d0(%rip), %r15     # 0x3ca8c
cmpq %r13, %r12
je 0x106e0
movsd (%r12), %xmm0
movq %rbx, %rdi
callq 0x6610
movq %rax, %rdi
movq %r15, %rsi
callq 0x6430
addq $0x8, %r12
jmp 0x106bc
movq 0x350(%r14), %r12
movq 0x358(%r14), %r13
leaq 0x2c397(%rip), %r15     # 0x3ca8c
cmpq %r13, %r12
je 0x10719
movsd (%r12), %xmm0
movq %rbx, %rdi
callq 0x6610
movq %rax, %rdi
movq %r15, %rsi
callq 0x6430
addq $0x8, %r12
jmp 0x106f5
movq 0x338(%r14), %r12
movq 0x340(%r14), %r13
leaq 0x2c35e(%rip), %r15     # 0x3ca8c
cmpq %r13, %r12
je 0x10752
movsd (%r12), %xmm0
movq %rbx, %rdi
callq 0x6610
movq %rax, %rdi
movq %r15, %rsi
callq 0x6430
addq $0x8, %r12
jmp 0x1072e
movq 0x368(%r14), %r12
movq 0x370(%r14), %r13
leaq 0x2c325(%rip), %r15     # 0x3ca8c
cmpq %r13, %r12
je 0x1078b
movsd (%r12), %xmm0
movq %rbx, %rdi
callq 0x6610
movq %rax, %rdi
movq %r15, %rsi
callq 0x6430
addq $0x8, %r12
jmp 0x10767
leaq 0x8(%r14), %rdi
movq %rbx, %rsi
callq 0x13ec0
pushq $0x20
popq %rsi
movq %rbx, %rdi
callq 0x6480
movl 0x3b0(%r14), %esi
movq %rax, %rdi
callq 0x62f0
pushq $0x20
popq %rsi
movq %rax, %rdi
callq 0x6480
leaq 0x36859(%rip), %rax     # 0x4701c
cmpb $0x1, (%rax)
jne 0x107ef
pushq $0x9
popq %rsi
movq %rbx, %rdi
callq 0x6480
movsd 0x1a0(%r14), %xmm0
movq %rax, %rdi
callq 0x6610
pushq $0x9
popq %rsi
movq %rax, %rdi
callq 0x6480
movsd 0x120(%r14), %xmm0
movq %rbx, %rdi
callq 0x6610
movq %rsp, %rdi
callq 0xb0be
addq $0x108, %rsp            # imm = 0x108
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
jmp 0x10826
jmp 0x10826
jmp 0x10826
jmp 0x10826
jmp 0x10826
jmp 0x10826
movq %rax, %rbx
movq %rsp, %rdi
callq 0xb0be
movq %rbx, %rdi
callq 0x66e0
nop