## complicated analysis
#' getting simplex endpoints
#'
#' @param V
#'
#' @return
#' @export
#'
#' @examples
getDenseEndpoints <- function(P, V=NULL, ...) {
# dimensionality checks
stopifnot(ncol(P) > nrow(P))
n <- nrow(P)
lower <- apply(P, 1, function(x) min(x))
upper <- apply(P, 1, function(x) max(x))
lower <- rep(lower, n + 1) - 1e-10
upper <- rep(upper, n + 1) + 1e-10
scaling <- apply(P, 1, function(x) max(x) - min(x))
scaling <- 10 / scaling
scaling <- prod(scaling)
getDensity <- function(V) {
if (checkVolume(V)) {
k <- sum(countInside(V, P))
return(k / ((scaling * hyperVolume(V) + 10^n / n) ^ (1 / n)))
# return(k / (scaling * hyperVolume(V) + 10^n))
} else {
return(0)
}
}
score <- function(par) {
V <- matrix(par, nrow=n)
return(-getDensity(V))
}
if (is.null(V)) {
opt <- GenSA(NULL, score, lower, upper, control=list(
smooth=FALSE, verbose=T, ...
))
} else {
par <- as.numeric(V)
opt <- GenSA(par, score, lower, upper, control=list(
smooth=FALSE, verbose=T, ...
))
}
return(opt)
}
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.