Dear Community, I am trying to write (update) a code for the following problem. Lets assume we have a beta distribution. I know one quantile, lets say, 10% of the mass lies above .8, that is between .8 and 1. In addition, I know that the average of this "truncated tail" is a given number, lets say .86. I have found the beta.select function in the LearnBayes package, which is as follows: function (quantile1, quantile2) { betaprior1 = function(K, x, p) { m.lo = 0 m.hi = 1 flag = 0 while (flag == 0) { m0 = (m.lo + m.hi)/2 p0 = pbeta(x, K * m0, K * (1 - m0)) if (p0 < p) m.hi = m0 else m.lo = m0 if (abs(p0 - p) < 1e-04) flag = 1 } return(m0) } p1 = quantile1$p x1 = quantile1$x p2 = quantile2$p x2 = quantile2$x logK = seq(-3, 8, length = 100) K = exp(logK) m = sapply(K, betaprior1, x1, p1) prob2 = pbeta(x2, K * m, K * (1 - m)) ind = ((prob2 > 0) & (prob2 < 1)) app = approx(prob2[ind], logK[ind], p2) K0 = exp(app$y) m0 = betaprior1(K0, x1, p1) return(round(K0 * c(m0, (1 - m0)), 2)) } I assume one could change this code to get the results I need, but some parts of the function are not clear for me, any help would be greatly appreciated. Thanks a lot: Daniel