## ----include = FALSE----------------------------------------------------------
knitr::opts_chunk$set(collapse = TRUE, comment = "#>")

## ----setup--------------------------------------------------------------------
library(regstat)

## -----------------------------------------------------------------------------
set.seed(1)
p <- 3
XA <- matrix(rnorm(60 * p), 60, p)
XB <- matrix(rnorm(50 * p), 50, p) %*% diag(c(1, 1.6, 0.7))
cov_M(XA, XB)

## -----------------------------------------------------------------------------
cov_M(XA, XA)
A <- matrix(c(2, 0.3, -1, 0.1, 1.4, 0.2, 0, 0.5, 1), 3, 3)
c(original = cov_M(XA, XB), transformed = cov_M(XA %*% A, XB %*% A))

## -----------------------------------------------------------------------------
set.seed(3)
null <- cov_null(p = 3, nA = 40, nB = 40, B = 20000, seed = 5L)
q <- unname(quantile(null, c(0.5, 0.9)))
rbind(simulated_tail = c(0.5, 0.1),
      exact_tail = vapply(q, function(m) cov_pexact(m, 39, 39, 3), 0))

## -----------------------------------------------------------------------------
cov_test(XA, XB, method = "exact")$p.value

## -----------------------------------------------------------------------------
set.seed(11)
cov_test(matrix(rnorm(180), 60, 3), matrix(rnorm(180), 60, 3), method = "exact")$p.value

## -----------------------------------------------------------------------------
D <- cov_logdiff(XA, XB)
round(D, 4)
c(antisymmetry = max(abs(D + cov_logdiff(XB, XA))), symmetry = max(abs(D - t(D))))

## -----------------------------------------------------------------------------
clx_stat(XA, XB)

