|
125 | 125 | model_heights = model_heights[active_height_t] |
126 | 126 | mdl = StratAgeModel(model_heights, agedist) |
127 | 127 |
|
128 | | - return mdl, agedist, lldist, hiatusdist |
| 128 | + return mdl, agedist, hiatusdist, lldist |
129 | 129 | end |
130 | 130 |
|
131 | 131 | ## --- Stratigraphic MCMC model without hiatus, with distribution LL # # # # # # |
|
264 | 264 | model_heights = model_heights[active_height_t] |
265 | 265 | mdl = StratAgeModel(model_heights, agedist) |
266 | 266 |
|
267 | | - return mdl, agedist, lldist, hiatusdist |
| 267 | + return mdl, agedist, hiatusdist, lldist |
268 | 268 | end |
269 | 269 |
|
270 | 270 | ## --- Stratigraphic MCMC model without hiatus, for radiocarbon ages # # # # # # |
|
405 | 405 | model_heights = model_heights[active_height_t] |
406 | 406 | mdl = StratAgeModel(model_heights, agedist) |
407 | 407 |
|
408 | | - return mdl, agedist, lldist, hiatusdist |
| 408 | + return mdl, agedist, hiatusdist, lldist |
409 | 409 | end |
410 | 410 |
|
411 | 411 | ## --- # Internals of the Markov chain |
|
716 | 716 | if model_agesₚ[h-1] == model_agesₚ[h] |
717 | 717 | n = findclosestunequal(model_agesₚ, h) |
718 | 718 | if n < h |
719 | | - model_agesₚ[n:h-1] .= model_agesₚ[n] |
| 719 | + @inbounds for i = n:h-1 |
| 720 | + model_agesₚ[i] = model_agesₚ[n] |
| 721 | + end |
720 | 722 | elseif n > h |
721 | | - model_agesₚ[h:n] .= model_agesₚ[n] |
| 723 | + @inbounds for i = h:n |
| 724 | + model_agesₚ[i] = model_agesₚ[n] |
| 725 | + end |
722 | 726 | end |
723 | 727 | end |
724 | 728 | end |
|
740 | 744 |
|
741 | 745 | # Add log likelihood for hiatus duration |
742 | 746 | @. durationₚ = model_agesₚ[closest_hiatus_unique - 1] - model_agesₚ[closest_hiatus_unique] |
743 | | - llₚ += normcdf_ll!(Hiatus_duration, Hiatus_duration_sigma, durationₚ) |
| 747 | + llₚ += normcdf_ll(Hiatus_duration, Hiatus_duration_sigma, durationₚ) |
744 | 748 |
|
745 | 749 | # Accept or reject proposal based on likelihood |
746 | 750 | if log(rand(Float64)) < (llₚ - ll) |
|
809 | 813 | if model_agesₚ[h-1] == model_agesₚ[h] |
810 | 814 | n = findclosestunequal(model_agesₚ, h) |
811 | 815 | if n < h |
812 | | - model_agesₚ[n:h-1] .= model_agesₚ[n] |
| 816 | + @inbounds for i = n:h-1 |
| 817 | + model_agesₚ[i] = model_agesₚ[n] |
| 818 | + end |
813 | 819 | elseif n > h |
814 | | - model_agesₚ[h:n] .= model_agesₚ[n] |
| 820 | + @inbounds for i = h:n |
| 821 | + model_agesₚ[i] = model_agesₚ[n] |
| 822 | + end |
815 | 823 | end |
816 | 824 | end |
817 | 825 | end |
|
832 | 840 |
|
833 | 841 | # Add log likelihood for hiatus duration |
834 | 842 | @. durationₚ = model_agesₚ[closest_hiatus_unique - 1] - model_agesₚ[closest_hiatus_unique] |
835 | | - llₚ += normcdf_ll!(Hiatus_duration, Hiatus_duration_sigma, durationₚ) |
| 843 | + llₚ += normcdf_ll(Hiatus_duration, Hiatus_duration_sigma, durationₚ) |
836 | 844 |
|
837 | 845 | # Accept or reject proposal based on likelihood |
838 | 846 | if log(rand(Float64)) < (llₚ - ll) |
|
0 commit comments