// File: /workspace/github_cpp_makefile_star2_O1/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 0x3341e(%rip), %rax     # 0x45388
movb (%rax), %bpl
cmpb $0x1, %bpl
jne 0x11fcd
movq 0x140(%r14), %rax
cmpq %rax, 0x148(%r14)
je 0x11ff3
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 0x11f8b
jmp 0x11ff3
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 0x33389(%rip), %rax     # 0x45383
cmpb $0x1, (%rax)
jne 0x120b0
movq (%rbx), %rax
movq -0x18(%rax), %rax
movq $0xf, 0x8(%rbx,%rax)
leaq 0x3336a(%rip), %rax     # 0x45384
movl (%rax), %r15d
testl %r15d, %r15d
jle 0x12048
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 $0x2, %r15d
jl 0x12074
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 0x120a0
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 0x1210d
movq 0x128(%r14), %rax
cmpq %rax, 0x130(%r14)
je 0x1210d
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 0x120cd
leaq 0x412ec(%rip), %rsi     # 0x53400
leaq 0x10(%rsp), %r15
movq %r15, %rdi
callq 0x1560c
cmpb $0x1, 0x78(%r15)
jne 0x12174
cmpl $0x0, 0x8c(%rsp)
jle 0x12174
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 0x1213a
leaq 0x33205(%rip), %rax     # 0x45380
cmpb $0x1, (%rax)
jne 0x12294
cmpl $0x0, 0x1a8(%r14)
movsd 0x1b0(%r14), %xmm0
je 0x12205
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 0x12294
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 0x330e6(%rip), %rax     # 0x45381
cmpb $0x1, (%rax)
jne 0x122ec
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 0x33096(%rip), %rax     # 0x45389
cmpb $0x1, (%rax)
jne 0x12441
movq 0x308(%r14), %r12
movq 0x310(%r14), %r13
cmpq %r13, %r12
je 0x1233d
leaq 0x2d78a(%rip), %r15     # 0x3faa0
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 0x12316
movq 0x320(%r14), %r12
movq 0x328(%r14), %r13
cmpq %r13, %r12
je 0x1237e
leaq 0x2d749(%rip), %r15     # 0x3faa0
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 0x12357
movq 0x350(%r14), %r12
movq 0x358(%r14), %r13
cmpq %r13, %r12
je 0x123bf
leaq 0x2d708(%rip), %r15     # 0x3faa0
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 0x12398
movq 0x338(%r14), %r12
movq 0x340(%r14), %r13
cmpq %r13, %r12
je 0x12400
leaq 0x2d6c7(%rip), %r15     # 0x3faa0
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 0x123d9
movq 0x368(%r14), %r12
movq 0x370(%r14), %r13
cmpq %r13, %r12
je 0x12441
leaq 0x2d686(%rip), %r15     # 0x3faa0
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 0x1241a
leaq 0x8(%r14), %rdi
movq %rbx, %rsi
callq 0x18344
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 0x32f03(%rip), %rax     # 0x45390
cmpb $0x1, (%rax)
jne 0x124cd
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 0xb832
addq $0x118, %rsp            # imm = 0x118
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
jmp 0x12506
jmp 0x12506
jmp 0x12506
jmp 0x12506
jmp 0x12506
jmp 0x12506
movq %rax, %rbx
leaq 0x10(%rsp), %rdi
callq 0xb832
movq %rbx, %rdi
callq 0x6710
nop