context("test-sylvester-speedups")
test_that("Pibble Sylvester Results Agree", {
sim <- pibble_sim(D = 20, N=5)
ThetaX <- sim$Theta %*% sim$X
eta <- random_pibble_init(sim$Y)
ll <- loglikPibbleCollapsed(sim$Y, sim$upsilon, ThetaX, sim$KInv, sim$AInv, eta,
sylv=FALSE)
llsylv <- loglikPibbleCollapsed(sim$Y, sim$upsilon, ThetaX, sim$KInv, sim$AInv, eta,
sylv=TRUE)
g <- gradPibbleCollapsed(sim$Y, sim$upsilon, ThetaX, sim$KInv, sim$AInv, eta,
sylv=FALSE)
gsylv <- gradPibbleCollapsed(sim$Y, sim$upsilon, ThetaX, sim$KInv, sim$AInv, eta,
sylv=TRUE)
hess <- hessPibbleCollapsed(sim$Y, sim$upsilon, ThetaX, sim$KInv, sim$AInv, eta,
sylv=FALSE)
hesssylv <- hessPibbleCollapsed(sim$Y, sim$upsilon, ThetaX, sim$KInv, sim$AInv, eta,
sylv=TRUE)
# microbenchmark::microbenchmark(gradPibbleCollapsed(sim$Y, sim$upsilon, ThetaX, sim$KInv, sim$AInv, eta,
# sylv=FALSE),
# gradPibbleCollapsed(sim$Y, sim$upsilon, ThetaX, sim$KInv, sim$AInv, eta,
# sylv=TRUE))
expect_equal(ll, llsylv)
expect_equal(g, gsylv)
expect_equal(hess, hesssylv)
})
test_that("Maltipoo Sylvester Results Agree", {
# lazy, just use pibble sim data
sim <- pibble_sim(D = 20, N=5)
eta <- random_pibble_init(sim$Y)
ell <- c(1)
ll <- loglikMaltipooCollapsed(sim$Y, sim$upsilon, sim$Theta, sim$X, sim$KInv, sim$Gamma, eta, ell,
sylv=FALSE)
llsylv <- loglikMaltipooCollapsed(sim$Y, sim$upsilon, sim$Theta, sim$X, sim$KInv, sim$Gamma, eta, ell,
sylv=FALSE)
g <- gradMaltipooCollapsed(sim$Y, sim$upsilon, sim$Theta, sim$X, sim$KInv, sim$Gamma, eta, ell,
sylv=FALSE)
gsylv <- gradMaltipooCollapsed(sim$Y, sim$upsilon, sim$Theta, sim$X, sim$KInv, sim$Gamma, eta, ell,
sylv=FALSE)
hess <- hessMaltipooCollapsed(sim$Y, sim$upsilon, sim$Theta, sim$X, sim$KInv, sim$Gamma, eta, ell,
sylv=FALSE)
hesssylv <- hessMaltipooCollapsed(sim$Y, sim$upsilon, sim$Theta, sim$X, sim$KInv, sim$Gamma, eta, ell,
sylv=FALSE)
expect_equal(ll, llsylv)
expect_equal(g, gsylv)
expect_equal(hess, hesssylv)
})
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.