// File: /workspace/github_cpp_makefile_star2_O1/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 %r14
pushq %rbx
subq $0x48, %rsp
movq %rdi, %rbx
callq 0x3e66c
leaq 0x4a4fa(%rip), %rax     # 0x524b8
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 0x3d391(%rip), %rax     # 0x45382
cmpb $0x1, (%rax)
jne 0x821c
cmpq $0x0, 0x70(%rbx)
jne 0x809b
movabsq $0x4017997eb11d9333, %rax # imm = 0x4017997EB11D9333
leaq 0x28(%rsp), %rcx
movq %rax, (%rcx)
movabsq $0x3ff0000000000000, %rax # imm = 0x3FF0000000000000
leaq 0x38(%rsp), %r8
movq %rax, (%r8)
movabsq $-0x3fd1ccbf588ec99a, %rax # imm = 0xC02E3340A7713666
leaq 0x30(%rsp), %r9
movq %rax, (%r9)
movabsq $0x403ae65fac4764cd, %rax # imm = 0x403AE65FAC4764CD
leaq 0x40(%rsp), %rdx
movq %rax, (%rdx)
leaq 0x18(%rsp), %rdi
movq $0x0, -0x8(%rdi)
movq %rdx, (%rsp)
leaq 0x10(%rsp), %rsi
leaq 0x27(%rsp), %rdx
callq 0x8a8a
movaps 0x10(%rsp), %xmm0
xorps %xmm1, %xmm1
movaps %xmm1, 0x10(%rsp)
movq 0x78(%rbx), %rdi
movups %xmm0, 0x70(%rbx)
testq %rdi, %rdi
je 0x808c
callq 0x8a1a
movq 0x18(%rsp), %rdi
testq %rdi, %rdi
je 0x809b
callq 0x8a1a
cmpq $0x0, 0x80(%rbx)
jne 0x8113
movabsq $0x3fb999999999999a, %rax # imm = 0x3FB999999999999A
leaq 0x28(%rsp), %rcx
movq %rax, (%rcx)
leaq 0x38(%rsp), %r8
movl $0x3, (%r8)
leaq 0x18(%rsp), %rdi
movq $0x0, -0x8(%rdi)
leaq 0x10(%rsp), %rsi
leaq 0x30(%rsp), %rdx
callq 0x8b88
movaps 0x10(%rsp), %xmm0
xorps %xmm1, %xmm1
movaps %xmm1, 0x10(%rsp)
movq 0x88(%rbx), %rdi
movups %xmm0, 0x80(%rbx)
testq %rdi, %rdi
je 0x8104
callq 0x8a1a
movq 0x18(%rsp), %rdi
testq %rdi, %rdi
je 0x8113
callq 0x8a1a
cmpq $0x0, 0x90(%rbx)
jne 0x81b1
xorl %eax, %eax
leaq 0x28(%rsp), %rcx
movq %rax, (%rcx)
movabsq $0x3ff0000000000000, %rdx # imm = 0x3FF0000000000000
leaq 0x38(%rsp), %r8
movq %rdx, (%r8)
movabsq $-0x3fcb000000000000, %rdx # imm = 0xC035000000000000
leaq 0x30(%rsp), %r9
movq %rdx, (%r9)
movabsq $0x4035000000000000, %rdx # imm = 0x4035000000000000
leaq 0x40(%rsp), %rsi
movq %rdx, (%rsi)
leaq 0x18(%rsp), %rdi
movq %rax, -0x8(%rdi)
movq %rsi, (%rsp)
leaq 0x10(%rsp), %rsi
leaq 0x27(%rsp), %rdx
callq 0x8a8a
movaps 0x10(%rsp), %xmm0
xorps %xmm1, %xmm1
movaps %xmm1, 0x10(%rsp)
movq 0x98(%rbx), %rdi
movups %xmm0, 0x90(%rbx)
testq %rdi, %rdi
je 0x81a2
callq 0x8a1a
movq 0x18(%rsp), %rdi
testq %rdi, %rdi
je 0x81b1
callq 0x8a1a
leaq 0x18(%rsp), %rdi
movq $0x0, -0x8(%rdi)
leaq 0x10(%rsp), %rsi
leaq 0x28(%rsp), %rdx
callq 0x8c6a
movaps 0x10(%rsp), %xmm0
xorps %xmm1, %xmm1
movaps %xmm1, 0x10(%rsp)
movq 0x28(%rbx), %rdi
movups %xmm0, 0x20(%rbx)
testq %rdi, %rdi
je 0x81ec
callq 0x8a1a
movq 0x18(%rsp), %rdi
testq %rdi, %rdi
je 0x81fb
callq 0x8a1a
leaq 0x18(%rsp), %rdi
movq $0x0, -0x8(%rdi)
leaq 0x10(%rsp), %rsi
leaq 0x28(%rsp), %rdx
callq 0x8d40
jmp 0x82db
leaq 0x20(%rbx), %rax
cmpq $0x0, (%rax)
jne 0x8294
movabsq $0x3ff0000000000000, %rax # imm = 0x3FF0000000000000
leaq 0x28(%rsp), %rcx
movq %rax, (%rcx)
movabsq $0x40f86a0000000000, %rax # imm = 0x40F86A0000000000
leaq 0x38(%rsp), %r8
movq %rax, (%r8)
leaq 0x18(%rsp), %rdi
movq $0x0, -0x8(%rdi)
leaq 0x10(%rsp), %rsi
leaq 0x30(%rsp), %rdx
callq 0x8e12
movaps 0x10(%rsp), %xmm0
xorps %xmm1, %xmm1
movaps %xmm1, 0x10(%rsp)
movq 0x28(%rbx), %rdi
movups %xmm0, 0x20(%rbx)
testq %rdi, %rdi
je 0x8285
callq 0x8a1a
movq 0x18(%rsp), %rdi
testq %rdi, %rdi
je 0x8294
callq 0x8a1a
cmpq $0x0, 0x30(%rbx)
jne 0x8309
movabsq $0x3ff0000000000000, %rax # imm = 0x3FF0000000000000
leaq 0x28(%rsp), %rcx
movq %rax, (%rcx)
movabsq $0x408f400000000000, %rax # imm = 0x408F400000000000
leaq 0x38(%rsp), %r8
movq %rax, (%r8)
leaq 0x18(%rsp), %rdi
movq $0x0, -0x8(%rdi)
leaq 0x10(%rsp), %rsi
leaq 0x30(%rsp), %rdx
callq 0x8ef4
movaps 0x10(%rsp), %xmm0
xorps %xmm1, %xmm1
movaps %xmm1, 0x10(%rsp)
movq 0x38(%rbx), %rdi
movups %xmm0, 0x30(%rbx)
testq %rdi, %rdi
je 0x82fa
callq 0x8a1a
movq 0x18(%rsp), %rdi
testq %rdi, %rdi
je 0x8309
callq 0x8a1a
cmpq $0x0, 0x40(%rbx)
jne 0x8371
leaq 0x28(%rsp), %rcx
movl $0x0, (%rcx)
leaq 0x38(%rsp), %r8
movl $0x1, (%r8)
leaq 0x18(%rsp), %rdi
movq $0x0, -0x8(%rdi)
leaq 0x10(%rsp), %rsi
leaq 0x30(%rsp), %rdx
callq 0x8fd6
movaps 0x10(%rsp), %xmm0
xorps %xmm1, %xmm1
movaps %xmm1, 0x10(%rsp)
movq 0x48(%rbx), %rdi
movups %xmm0, 0x40(%rbx)
testq %rdi, %rdi
je 0x8362
callq 0x8a1a
movq 0x18(%rsp), %rdi
testq %rdi, %rdi
je 0x8371
callq 0x8a1a
cmpq $0x0, 0x50(%rbx)
jne 0x83df
leaq 0x38(%rsp), %rcx
movl $0x0, (%rcx)
movabsq $0x401921fb54442d18, %rax # imm = 0x401921FB54442D18
leaq 0x28(%rsp), %r8
movq %rax, (%r8)
leaq 0x18(%rsp), %rdi
movq $0x0, -0x8(%rdi)
leaq 0x10(%rsp), %rsi
leaq 0x30(%rsp), %rdx
callq 0x905a
movaps 0x10(%rsp), %xmm0
xorps %xmm1, %xmm1
movaps %xmm1, 0x10(%rsp)
movq 0x58(%rbx), %rdi
movups %xmm0, 0x50(%rbx)
testq %rdi, %rdi
je 0x83d0
callq 0x8a1a
movq 0x18(%rsp), %rdi
testq %rdi, %rdi
je 0x83df
callq 0x8a1a
cmpq $0x0, 0x60(%rbx)
jne 0x844d
leaq 0x38(%rsp), %rcx
movl $0x0, (%rcx)
movabsq $0x401921fb54442d18, %rax # imm = 0x401921FB54442D18
leaq 0x28(%rsp), %r8
movq %rax, (%r8)
leaq 0x18(%rsp), %rdi
movq $0x0, -0x8(%rdi)
leaq 0x10(%rsp), %rsi
leaq 0x30(%rsp), %rdx
callq 0x905a
movaps 0x10(%rsp), %xmm0
xorps %xmm1, %xmm1
movaps %xmm1, 0x10(%rsp)
movq 0x68(%rbx), %rdi
movups %xmm0, 0x60(%rbx)
testq %rdi, %rdi
je 0x843e
callq 0x8a1a
movq 0x18(%rsp), %rdi
testq %rdi, %rdi
je 0x844d
callq 0x8a1a
addq $0x48, %rsp
popq %rbx
popq %r14
retq
jmp 0x8467
jmp 0x8467
jmp 0x8467
jmp 0x8467
jmp 0x8467
jmp 0x8467
jmp 0x8467
jmp 0x8467
jmp 0x8467
movq %rax, %r14
movq 0x98(%rbx), %rdi
testq %rdi, %rdi
je 0x847b
callq 0x8a1a
movq 0x88(%rbx), %rdi
testq %rdi, %rdi
je 0x848c
callq 0x8a1a
movq 0x78(%rbx), %rdi
testq %rdi, %rdi
je 0x849a
callq 0x8a1a
movq 0x68(%rbx), %rdi
testq %rdi, %rdi
je 0x84a8
callq 0x8a1a
movq 0x58(%rbx), %rdi
testq %rdi, %rdi
je 0x84b6
callq 0x8a1a
movq 0x48(%rbx), %rdi
testq %rdi, %rdi
je 0x84c4
callq 0x8a1a
movq 0x38(%rbx), %rdi
testq %rdi, %rdi
je 0x84d2
callq 0x8a1a
movq 0x28(%rbx), %rdi
testq %rdi, %rdi
je 0x84e0
callq 0x8a1a
movq %rbx, %rdi
callq 0x3e678
movq %r14, %rdi
callq 0x6710