lineq <- function(a){ r <- rep(NA,14) v <- a[1] O1 <- a[2] O2 <- a[3] O0 <- v*O1 + (1-v)*O2 r <- rep(-1,14) kount <- 0 while (any(r < 0)) { kount <- kount + 1 x <- runif(7) U0 <- x[1] U1 <- x[2] U2 <- x[3] q0 <- x[4] q1 <- x[5] q2 <- x[6] p <- x[7] r[1] <- U0 r[2] <- U1 r[3] <- U2 r[4] <- U0 - (U1 + (O1 - O0)*q1) r[5] <- U0 - (U2 + (O2 - O0)*q2) r[6] <- U1 - (U0 + (O0 - O1)*q0) r[7] <- U1 - (U2 + (O2 - O1)*q2) r[8] <- U2 - (U0 + (O0 - O2)*q0) r[9] <- U2 - (U1 + (O1 - O2)*q1) r[10] <- p r[11] <- 1-p r[12] <- q0 r[13] <- q1 r[14] <- q2 } list(x0=x, kount=kount, r=sign(r)) } a <- c(0.9,10,20) ans <- lineq(a) ans$x0 # interior point