// File: /workspace/github_cpp_makefile_star2_O3/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 $0x118, %rsp            # imm = 0x118
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 0x309c0(%rip), %rax     # 0x428e4
movb (%rax), %bpl
cmpb $0x1, %bpl
jne 0x11f87
movq 0x140(%r14), %rax
cmpq %rax, 0x148(%r14)
je 0x11fad
xorl %r12d, %r12d
leaq 0x10(%rsp), %r15
movsd (%rax,%r12,8), %xmm0
movq %rbx, %rdi
callq 0x6630
movb $0x9, 0x10(%rsp)
movl $0x1, %edx
movq %rax, %rdi
movq %r15, %rsi
callq 0x64a0
incq %r12
movq 0x140(%r14), %rax
movq 0x148(%r14), %rcx
subq %rax, %rcx
sarq $0x3, %rcx
cmpq %r12, %rcx
ja 0x11f45
jmp 0x11fad
movsd 0x198(%r14), %xmm0
movq %rbx, %rdi
callq 0x6630
leaq 0x10(%rsp), %rsi
movb $0x9, (%rsi)
movl $0x1, %edx
movq %rax, %rdi
callq 0x64a0
leaq 0x3092b(%rip), %rax     # 0x428df
cmpb $0x1, (%rax)
jne 0x1206a
movq (%rbx), %rax
movq -0x18(%rax), %rax
movq $0xf, 0x8(%rbx,%rax)
leaq 0x3090c(%rip), %rax     # 0x428e0
movl (%rax), %r15d
testl %r15d, %r15d
jle 0x1205a
movsd 0x170(%r14), %xmm0
movq %rbx, %rdi
callq 0x6630
leaq 0x10(%rsp), %rsi
movb $0x9, (%rsi)
movl $0x1, %edx
movq %rax, %rdi
callq 0x64a0
cmpl $0x1, %r15d
je 0x1205a
movsd 0x178(%r14), %xmm0
movq %rbx, %rdi
callq 0x6630
leaq 0x10(%rsp), %rsi
movb $0x9, (%rsi)
movl $0x1, %edx
movq %rax, %rdi
callq 0x64a0
cmpl $0x3, %r15d
jne 0x1205a
movsd 0x180(%r14), %xmm0
movq %rbx, %rdi
callq 0x6630
leaq 0x10(%rsp), %rsi
movb $0x9, (%rsi)
movl $0x1, %edx
movq %rax, %rdi
callq 0x64a0
movq (%rbx), %rax
movq -0x18(%rax), %rax
movq $0x8, 0x8(%rbx,%rax)
testb %bpl, %bpl
je 0x120c7
movq 0x128(%r14), %rax
cmpq %rax, 0x130(%r14)
je 0x120c7
xorl %r12d, %r12d
leaq 0x10(%rsp), %r15
movsd (%rax,%r12,8), %xmm0
movq %rbx, %rdi
callq 0x6630
movb $0x9, 0x10(%rsp)
movl $0x1, %edx
movq %rax, %rdi
movq %r15, %rsi
callq 0x64a0
incq %r12
movq 0x128(%r14), %rax
movq 0x130(%r14), %rcx
subq %rax, %rcx
sarq $0x3, %rcx
cmpq %r12, %rcx
ja 0x12087
leaq 0x3e332(%rip), %rsi     # 0x50400
leaq 0x10(%rsp), %r15
movq %r15, %rdi
callq 0x15552
cmpb $0x1, 0x78(%r15)
jne 0x1212e
cmpl $0x0, 0x8c(%rsp)
jle 0x1212e
xorl %r12d, %r12d
leaq 0xf(%rsp), %r15
movq 0x158(%r14), %rax
movsd (%rax,%r12,8), %xmm0
movq %rbx, %rdi
callq 0x6630
movb $0x9, 0xf(%rsp)
movl $0x1, %edx
movq %rax, %rdi
movq %r15, %rsi
callq 0x64a0
incq %r12
movslq 0x8c(%rsp), %rax
cmpq %rax, %r12
jl 0x120f4
leaq 0x307a7(%rip), %rax     # 0x428dc
cmpb $0x1, (%rax)
jne 0x1224e
cmpl $0x0, 0x1a8(%r14)
movsd 0x1b0(%r14), %xmm0
je 0x121bf
movq %rbx, %rdi
callq 0x6630
leaq 0xf(%rsp), %rsi
movb $0x9, (%rsi)
movl $0x1, %edx
movq %rax, %rdi
callq 0x64a0
movsd 0x1b8(%r14), %xmm0
movq %rax, %rdi
callq 0x6630
leaq 0xf(%rsp), %rsi
movb $0x9, (%rsi)
movl $0x1, %edx
movq %rax, %rdi
callq 0x64a0
movsd 0x1c0(%r14), %xmm0
movq %rax, %rdi
callq 0x6630
leaq 0xf(%rsp), %rsi
movb $0x9, (%rsi)
movl $0x1, %edx
movq %rax, %rdi
callq 0x64a0
jmp 0x1224e
movq %rbx, %rdi
callq 0x6630
leaq 0xf(%rsp), %rsi
movb $0x9, (%rsi)
movl $0x1, %edx
movq %rax, %rdi
callq 0x64a0
movsd 0x1b8(%r14), %xmm0
movq %rax, %rdi
callq 0x6630
leaq 0xf(%rsp), %rsi
movb $0x9, (%rsi)
movl $0x1, %edx
movq %rax, %rdi
callq 0x64a0
movsd 0x1c0(%r14), %xmm0
movq %rax, %rdi
callq 0x6630
leaq 0xf(%rsp), %rsi
movb $0x9, (%rsi)
movl $0x1, %edx
movq %rax, %rdi
callq 0x64a0
movsd 0x1c8(%r14), %xmm0
movq %rax, %rdi
callq 0x6630
leaq 0xf(%rsp), %rsi
movb $0x9, (%rsi)
movl $0x1, %edx
movq %rax, %rdi
callq 0x64a0
leaq 0x30688(%rip), %rax     # 0x428dd
cmpb $0x1, (%rax)
jne 0x122a6
movsd 0x188(%r14), %xmm0
movq %rbx, %rdi
callq 0x6630
leaq 0xf(%rsp), %rsi
movb $0x9, (%rsi)
movl $0x1, %edx
movq %rax, %rdi
callq 0x64a0
movsd 0x190(%r14), %xmm0
movq %rax, %rdi
callq 0x6630
leaq 0xf(%rsp), %rsi
movb $0x9, (%rsi)
movl $0x1, %edx
movq %rax, %rdi
callq 0x64a0
leaq 0x30638(%rip), %rax     # 0x428e5
cmpb $0x1, (%rax)
jne 0x123fb
movq 0x308(%r14), %r12
movq 0x310(%r14), %r13
cmpq %r13, %r12
je 0x122f7
leaq 0x2b80c(%rip), %r15     # 0x3dadc
movsd (%r12), %xmm0
movq %rbx, %rdi
callq 0x6630
movl $0x1, %edx
movq %rax, %rdi
movq %r15, %rsi
callq 0x64a0
addq $0x8, %r12
cmpq %r13, %r12
jne 0x122d0
movq 0x320(%r14), %r12
movq 0x328(%r14), %r13
cmpq %r13, %r12
je 0x12338
leaq 0x2b7cb(%rip), %r15     # 0x3dadc
movsd (%r12), %xmm0
movq %rbx, %rdi
callq 0x6630
movl $0x1, %edx
movq %rax, %rdi
movq %r15, %rsi
callq 0x64a0
addq $0x8, %r12
cmpq %r13, %r12
jne 0x12311
movq 0x350(%r14), %r12
movq 0x358(%r14), %r13
cmpq %r13, %r12
je 0x12379
leaq 0x2b78a(%rip), %r15     # 0x3dadc
movsd (%r12), %xmm0
movq %rbx, %rdi
callq 0x6630
movl $0x1, %edx
movq %rax, %rdi
movq %r15, %rsi
callq 0x64a0
addq $0x8, %r12
cmpq %r13, %r12
jne 0x12352
movq 0x338(%r14), %r12
movq 0x340(%r14), %r13
cmpq %r13, %r12
je 0x123ba
leaq 0x2b749(%rip), %r15     # 0x3dadc
movsd (%r12), %xmm0
movq %rbx, %rdi
callq 0x6630
movl $0x1, %edx
movq %rax, %rdi
movq %r15, %rsi
callq 0x64a0
addq $0x8, %r12
cmpq %r13, %r12
jne 0x12393
movq 0x368(%r14), %r12
movq 0x370(%r14), %r13
cmpq %r13, %r12
je 0x123fb
leaq 0x2b708(%rip), %r15     # 0x3dadc
movsd (%r12), %xmm0
movq %rbx, %rdi
callq 0x6630
movl $0x1, %edx
movq %rax, %rdi
movq %r15, %rsi
callq 0x64a0
addq $0x8, %r12
cmpq %r13, %r12
jne 0x123d4
leaq 0x8(%r14), %rdi
movq %rbx, %rsi
callq 0x17c7c
leaq 0xf(%rsp), %rsi
movb $0x20, (%rsi)
movl $0x1, %edx
movq %rbx, %rdi
callq 0x64a0
movl 0x3b0(%r14), %esi
movq %rax, %rdi
callq 0x62f0
leaq 0xf(%rsp), %rsi
movb $0x20, (%rsi)
movl $0x1, %edx
movq %rax, %rdi
callq 0x64a0
leaq 0x304a5(%rip), %rax     # 0x428ec
cmpb $0x1, (%rax)
jne 0x12487
leaq 0xf(%rsp), %rsi
movb $0x9, (%rsi)
movl $0x1, %edx
movq %rbx, %rdi
callq 0x64a0
movsd 0x1a0(%r14), %xmm0
movq %rax, %rdi
callq 0x6630
leaq 0xf(%rsp), %rsi
movb $0x9, (%rsi)
movl $0x1, %edx
movq %rax, %rdi
callq 0x64a0
movsd 0x120(%r14), %xmm0
movq %rbx, %rdi
callq 0x6630
leaq 0x10(%rsp), %rdi
callq 0xb8d2
addq $0x118, %rsp            # imm = 0x118
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
jmp 0x124c0
jmp 0x124c0
jmp 0x124c0
jmp 0x124c0
jmp 0x124c0
jmp 0x124c0
movq %rax, %rbx
leaq 0x10(%rsp), %rdi
callq 0xb8d2
movq %rbx, %rdi
callq 0x6710
nop