Nothing
context("test-g01-monotonicity")
CONSTANT <- "CONSTANT"
AFFINE <- "AFFINE"
CONVEX <- "CONVEX"
CONCAVE <- "CONCAVE"
UNKNOWN <- "UNKNOWN"
test_that("Test application of DCP composition rules to determine curvature", {
skip_on_cran()
expr <- 1 + exp(Variable())
expect_equal(curvature(expr), CONVEX)
expr <- Parameter() * Variable(nonneg = TRUE)
expect_equal(curvature(expr), AFFINE)
f <- function(x) { x^2 + x^0.5 }
expr <- f(Constant(2))
expect_equal(curvature(expr), CONSTANT)
expr <- exp(Variable())^2
expect_equal(curvature(expr), CONVEX)
expr <- 1 - sqrt(Variable())
expect_equal(curvature(expr), CONVEX)
expr <- log(sqrt(Variable()))
expect_equal(curvature(expr), CONCAVE)
expr <- -(exp(Variable()))^2
expect_equal(curvature(expr), CONCAVE)
expr <- log(exp(Variable()))
expect_false(is_dcp(expr))
expr <- entr(Variable(nonneg = TRUE))
expect_equal(curvature(expr), CONCAVE)
expr <- ((Variable()^2)^0.5)^0
expect_equal(curvature(expr), CONSTANT)
})
test_that("Test DCP composition rules with signed monotonicity", {
skip_on_cran()
# Convex argument
expr <- abs(1 + exp(Variable()))
expect_equal(curvature(expr), CONVEX)
expr <- abs(-entr(Variable()))
expect_equal(curvature(expr), UNKNOWN)
expr <- abs(-log(Variable()))
expect_equal(curvature(expr), UNKNOWN)
# Concave argument
expr <- abs(log(Variable()))
expect_equal(curvature(expr), UNKNOWN)
expr <- abs(Variable()^2)
expect_equal(curvature(expr), CONVEX)
expr <- abs(entr(Variable()))
expect_equal(curvature(expr), UNKNOWN)
# Affine argument
expr <- abs(Variable(nonneg = TRUE))
expect_equal(curvature(expr), CONVEX)
expr <- abs(-Variable(nonneg = TRUE))
expect_equal(curvature(expr), CONVEX)
expr <- abs(Variable())
expect_equal(curvature(expr), CONVEX)
})
Any scripts or data that you put into this service are public.
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.