// File: /workspace/github_cpp_makefile_star2_O3/j-faria[P]kima/src/RVConditionalPrior.cpp
// Function: RVConditionalPrior::RVConditionalPrior()
RVConditionalPrior::RVConditionalPrior()
{
    if (hyperpriors){
        if (!log_muP_prior)
            /** 
             * By default, Cauchy prior centered on log(365 days), scale=1
             * for log(muP), with muP in days
             * truncated to (~-15.1, ~26.9)
            */
            log_muP_prior = make_shared<TruncatedCauchy>(log(365), 1., log(365)-21, log(365)+21);
        // TruncatedCauchy *log_muP_prior = new TruncatedCauchy(log(365), 1., log(365)-21, log(365)+21);

        /**
         * By default, uniform prior for wP
        */
        if (!wP_prior)
            wP_prior = make_shared<Uniform>(0.1, 3);
        // Uniform *wP_prior = new Uniform(0.1, 3.);
    

        /**
         * By default, Cauchy prior centered on log(1), scale=1
         * for log(muK), with muK in m/s
         * truncated to (-21, 21)
         * NOTE: we actually sample on muK itself, just the prior is for log(muK)
        */
        if (!log_muK_prior)
            log_muK_prior = make_shared<TruncatedCauchy>(0., 1., 0.-21, 0.+21);
        // TruncatedCauchy *log_muK_prior = new TruncatedCauchy(0., 1., 0.-21, 0.+21);

        Pprior = make_shared<Laplace>();
        Kprior = make_shared<Exponential>();
    }
    else {
        if (!Pprior)
            Pprior = make_shared<LogUniform>(1., 1e5);
        if (!Kprior)
            Kprior = make_shared<ModifiedLogUniform>(1., 1e3);
    }


    if (!eprior)
        eprior = make_shared<Uniform>(0, 1);
    if (!phiprior)
        phiprior = make_shared<Uniform>(0, 2*M_PI);
    if (!wprior)
        wprior = make_shared<Uniform>(0, 2*M_PI);
}

// Assembly:
pushq %r15
pushq %r14
pushq %rbx
subq $0x50, %rsp
movq %rdi, %rbx
callq 0x3c0a0
leaq 0x47530(%rip), %rax     # 0x4f4f0
movq %rax, (%rbx)
xorps %xmm0, %xmm0
movups %xmm0, 0x20(%rbx)
movups %xmm0, 0x30(%rbx)
movups %xmm0, 0x40(%rbx)
movups %xmm0, 0x50(%rbx)
movups %xmm0, 0x60(%rbx)
movups %xmm0, 0x70(%rbx)
movups %xmm0, 0x80(%rbx)
movups %xmm0, 0x90(%rbx)
leaq 0x3a8eb(%rip), %rax     # 0x428de
cmpb $0x1, (%rax)
movabsq $0x3ff0000000000000, %r14 # imm = 0x3FF0000000000000
jne 0x8119
movabsq $0x4017997eb11d9333, %rax # imm = 0x4017997EB11D9333
leaq 0x30(%rsp), %rcx
movq %rax, (%rcx)
leaq 0x40(%rsp), %r8
movq %r14, (%r8)
movabsq $-0x3fd1ccbf588ec99a, %rax # imm = 0xC02E3340A7713666
leaq 0x38(%rsp), %r9
movq %rax, (%r9)
movabsq $0x403ae65fac4764cd, %rax # imm = 0x403AE65FAC4764CD
leaq 0x48(%rsp), %r15
movq %rax, (%r15)
leaq 0x18(%rsp), %rdi
movq $0x0, -0x8(%rdi)
movq %r15, (%rsp)
leaq 0x10(%rsp), %rsi
leaq 0x2f(%rsp), %rdx
callq 0x8a9a
movaps 0x10(%rsp), %xmm0
xorps %xmm1, %xmm1
movaps %xmm1, 0x10(%rsp)
movq 0x78(%rbx), %rdi
movups %xmm0, 0x70(%rbx)
testq %rdi, %rdi
je 0x8092
callq 0x8a2a
movq 0x18(%rsp), %rdi
testq %rdi, %rdi
je 0x8092
callq 0x8a2a
cmpq $0x0, 0x80(%rbx)
je 0x8356
cmpq $0x0, 0x90(%rbx)
je 0x83d1
leaq 0x18(%rsp), %rdi
movq $0x0, -0x8(%rdi)
leaq 0x10(%rsp), %rsi
leaq 0x30(%rsp), %rdx
callq 0x8c66
movaps 0x10(%rsp), %xmm0
xorps %xmm1, %xmm1
movaps %xmm1, 0x10(%rsp)
movq 0x28(%rbx), %rdi
movups %xmm0, 0x20(%rbx)
testq %rdi, %rdi
je 0x80f8
callq 0x8a2a
movq 0x18(%rsp), %rdi
testq %rdi, %rdi
je 0x80f8
callq 0x8a2a
leaq 0x18(%rsp), %rdi
movq $0x0, -0x8(%rdi)
leaq 0x10(%rsp), %rsi
leaq 0x30(%rsp), %rdx
callq 0x8d36
jmp 0x81ba
leaq 0x30(%rsp), %rcx
movq %r14, (%rcx)
movabsq $0x40f86a0000000000, %rax # imm = 0x40F86A0000000000
leaq 0x40(%rsp), %r8
movq %rax, (%r8)
leaq 0x18(%rsp), %rdi
movq $0x0, -0x8(%rdi)
leaq 0x10(%rsp), %rsi
leaq 0x38(%rsp), %rdx
callq 0x8e02
movaps 0x10(%rsp), %xmm0
xorps %xmm1, %xmm1
movaps %xmm1, 0x10(%rsp)
movq 0x28(%rbx), %rdi
movups %xmm0, 0x20(%rbx)
testq %rdi, %rdi
je 0x817d
callq 0x8a2a
movq 0x18(%rsp), %rdi
testq %rdi, %rdi
je 0x817d
callq 0x8a2a
cmpq $0x0, 0x30(%rbx)
jne 0x81e8
leaq 0x30(%rsp), %rcx
movq %r14, (%rcx)
movabsq $0x408f400000000000, %rax # imm = 0x408F400000000000
leaq 0x40(%rsp), %r8
movq %rax, (%r8)
leaq 0x18(%rsp), %rdi
movq $0x0, -0x8(%rdi)
leaq 0x10(%rsp), %rsi
leaq 0x38(%rsp), %rdx
callq 0x8ede
movaps 0x10(%rsp), %xmm0
xorps %xmm1, %xmm1
movaps %xmm1, 0x10(%rsp)
movq 0x38(%rbx), %rdi
movups %xmm0, 0x30(%rbx)
testq %rdi, %rdi
je 0x81e8
callq 0x8a2a
movq 0x18(%rsp), %rdi
testq %rdi, %rdi
je 0x81e8
callq 0x8a2a
cmpq $0x0, 0x40(%rbx)
je 0x820b
cmpq $0x0, 0x50(%rbx)
je 0x826e
cmpq $0x0, 0x60(%rbx)
je 0x82e2
addq $0x50, %rsp
popq %rbx
popq %r14
popq %r15
retq
leaq 0x30(%rsp), %rcx
movl $0x0, (%rcx)
leaq 0x40(%rsp), %r8
movl $0x1, (%r8)
leaq 0x18(%rsp), %rdi
movq $0x0, -0x8(%rdi)
leaq 0x10(%rsp), %rsi
leaq 0x38(%rsp), %rdx
callq 0x8fba
movaps 0x10(%rsp), %xmm0
xorps %xmm1, %xmm1
movaps %xmm1, 0x10(%rsp)
movq 0x48(%rbx), %rdi
movups %xmm0, 0x40(%rbx)
testq %rdi, %rdi
je 0x81ef
callq 0x8a2a
movq 0x18(%rsp), %rdi
testq %rdi, %rdi
je 0x81ef
callq 0x8a2a
jmp 0x81ef
leaq 0x40(%rsp), %rcx
movl $0x0, (%rcx)
movabsq $0x401921fb54442d18, %rax # imm = 0x401921FB54442D18
leaq 0x30(%rsp), %r8
movq %rax, (%r8)
leaq 0x18(%rsp), %rdi
movq $0x0, -0x8(%rdi)
leaq 0x10(%rsp), %rsi
leaq 0x38(%rsp), %rdx
callq 0x903e
movaps 0x10(%rsp), %xmm0
xorps %xmm1, %xmm1
movaps %xmm1, 0x10(%rsp)
movq 0x58(%rbx), %rdi
movups %xmm0, 0x50(%rbx)
testq %rdi, %rdi
je 0x81f6
callq 0x8a2a
movq 0x18(%rsp), %rdi
testq %rdi, %rdi
je 0x81f6
callq 0x8a2a
jmp 0x81f6
leaq 0x40(%rsp), %rcx
movl $0x0, (%rcx)
movabsq $0x401921fb54442d18, %rax # imm = 0x401921FB54442D18
leaq 0x30(%rsp), %r8
movq %rax, (%r8)
leaq 0x18(%rsp), %rdi
movq $0x0, -0x8(%rdi)
leaq 0x10(%rsp), %rsi
leaq 0x38(%rsp), %rdx
callq 0x903e
movaps 0x10(%rsp), %xmm0
xorps %xmm1, %xmm1
movaps %xmm1, 0x10(%rsp)
movq 0x68(%rbx), %rdi
movups %xmm0, 0x60(%rbx)
testq %rdi, %rdi
je 0x8201
callq 0x8a2a
movq 0x18(%rsp), %rdi
testq %rdi, %rdi
je 0x8201
callq 0x8a2a
jmp 0x8201
movabsq $0x3fb999999999999a, %rax # imm = 0x3FB999999999999A
leaq 0x30(%rsp), %rcx
movq %rax, (%rcx)
leaq 0x40(%rsp), %r8
movl $0x3, (%r8)
leaq 0x18(%rsp), %rdi
movq $0x0, -0x8(%rdi)
leaq 0x10(%rsp), %rsi
leaq 0x38(%rsp), %rdx
callq 0x8b8a
movaps 0x10(%rsp), %xmm0
xorps %xmm1, %xmm1
movaps %xmm1, 0x10(%rsp)
movq 0x88(%rbx), %rdi
movups %xmm0, 0x80(%rbx)
testq %rdi, %rdi
je 0x80a0
callq 0x8a2a
movq 0x18(%rsp), %rdi
testq %rdi, %rdi
je 0x80a0
callq 0x8a2a
jmp 0x80a0
xorl %eax, %eax
leaq 0x30(%rsp), %rcx
movq %rax, (%rcx)
leaq 0x40(%rsp), %r8
movq %r14, (%r8)
movabsq $-0x3fcb000000000000, %rdx # imm = 0xC035000000000000
leaq 0x38(%rsp), %r9
movq %rdx, (%r9)
movabsq $0x4035000000000000, %rdx # imm = 0x4035000000000000
movq %rdx, 0x48(%rsp)
leaq 0x18(%rsp), %rdi
movq %rax, -0x8(%rdi)
movq %r15, (%rsp)
leaq 0x10(%rsp), %rsi
leaq 0x2f(%rsp), %rdx
callq 0x8a9a
movaps 0x10(%rsp), %xmm0
xorps %xmm1, %xmm1
movaps %xmm1, 0x10(%rsp)
movq 0x98(%rbx), %rdi
movups %xmm0, 0x90(%rbx)
testq %rdi, %rdi
je 0x80ae
callq 0x8a2a
movq 0x18(%rsp), %rdi
testq %rdi, %rdi
je 0x80ae
callq 0x8a2a
jmp 0x80ae
jmp 0x8473
jmp 0x8473
jmp 0x8473
jmp 0x8473
jmp 0x8473
jmp 0x8473
jmp 0x8473
jmp 0x8473
jmp 0x8473
movq %rax, %r14
movq 0x98(%rbx), %rdi
testq %rdi, %rdi
je 0x8487
callq 0x8a2a
movq 0x88(%rbx), %rdi
testq %rdi, %rdi
je 0x8498
callq 0x8a2a
movq 0x78(%rbx), %rdi
testq %rdi, %rdi
je 0x84a6
callq 0x8a2a
movq 0x68(%rbx), %rdi
testq %rdi, %rdi
je 0x84b4
callq 0x8a2a
movq 0x58(%rbx), %rdi
testq %rdi, %rdi
je 0x84c2
callq 0x8a2a
movq 0x48(%rbx), %rdi
testq %rdi, %rdi
je 0x84d0
callq 0x8a2a
movq 0x38(%rbx), %rdi
testq %rdi, %rdi
je 0x84de
callq 0x8a2a
movq 0x28(%rbx), %rdi
testq %rdi, %rdi
je 0x84ec
callq 0x8a2a
movq %rbx, %rdi
callq 0x3c0ac
movq %r14, %rdi
callq 0x6710