1 | eabesex(sV, tV, xV, yV, m, B1, B2, minI)
|
sV |
|
tV |
|
xV |
|
yV |
|
m |
|
B1 |
|
B2 |
|
minI |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 | ##---- Should be DIRECTLY executable !! ----
##-- ==> Define data, use random,
##-- or do help(data=index) for the standard data sets.
## The function is currently defined as
function (sV, tV, xV, yV, m, B1, B2, minI)
{
if (minI == -1) {
xV <- -xV
yV <- -yV
m <- -m
B1 <- -B1
B2 <- -B2
}
u <- runif(1, 0, 1)
mt <- ceiling(max(sqrt(max(tV - sV) + (B1 - m)^2)/(2 * (B1 -
m)), sqrt(max(tV - sV) + (B2 - m)^2)/(2 * (B2 - m))))
em <- matrix(0, length(sV), 8)
em[, 1] <- sV
em[, 2] <- tV
em[, 3] <- xV
em[, 4] <- yV
B1evI <- B2evI <- 0
while (B1evI == 0) {
emM <- em
for (i in 1:dim(em)[1]) {
if (mt >= mpfrthr) {
em[i, 5:6] <- as.numeric(eadelC(mt, em[i, 1],
em[i, 2], em[i, 3], em[i, 4], m, B1))
}
else {
em[i, 5:6] <- as.numeric(eadel_pair_cpp(mt, em[i,
1], em[i, 2], em[i, 3], em[i, 4], m, B1))
}
}
if (u <= prod(em[, 5])) {
B1evI <- B2evI <- 1
con1I <- 1
con2I <- 1
ex1I <- 0
ex2I <- 0
}
else {
if (u > prod(em[, 6])) {
B1evI <- 1
con1I <- 0
ex1I <- 1
}
else {
B1evI <- 0
con1I <- 0
ex1I <- 0
mt <- mt + 2
}
}
}
while (B2evI == 0) {
for (i in 1:dim(em)[1]) {
if (mt >= mpfrthr) {
em[i, 7:8] <- as.numeric(eadelC(mt, em[i, 1],
em[i, 2], em[i, 3], em[i, 4], m, B2))
}
else {
em[i, 7:8] <- as.numeric(eadel_pair_cpp(mt, em[i,
1], em[i, 2], em[i, 3], em[i, 4], m, B2))
}
}
if (u <= prod(em[, 7])) {
B2evI <- 1
con2I <- 1
ex1I <- 0
}
else {
if (u > prod(em[, 8])) {
B2evI <- 1
con2I <- 0
ex2I <- 1
}
else {
B2evI <- 0
con2I <- 0
ex2I <- 0
mt <- mt + 2
}
}
}
if (minI == -1) {
em[, 3] <- -em[, 3]
em[, 4] <- -em[, 4]
}
accI <- 0
if (con1I == 1) {
accI <- 1
}
else {
if (con2I == 1) {
if (rbinom(1, 1, 0.5) == 1) {
accI <- 1
}
}
}
list(accI = accI, u = u, con1I = con1I, con2I = con2I, em = em)
}
|
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.