Under a different representation of the multivariate normal (MVN) probability, we can use the Vecchia approximation to sample the integrand at a linear complexity with respect to n. Additionally, both the SOV algorithm from Genz (92) and the exponential-tilting method from Botev (2017) can be adapted to linear complexity. The reference for the method implemented in this package is Jian Cao and Matthias Katzfuss (2024) "Linear-Cost Vecchia Approximation of Multivariate Normal Probabilities" <doi:10.48550/arXiv.2311.09426>. Two major references for the development of our method are Alan Genz (1992) "Numerical Computation of Multivariate Normal Probabilities" <doi:10.1080/10618600.1992.10477010> and Z. I. Botev (2017) "The Normal Law Under Linear Restrictions: Simulation and Estimation via Minimax Tilting" <doi:10.48550/arXiv.1603.04166>.

Provides functions for estimation (parametric, semi-parametric and non-parametric)
             of copula-based dependence coefficients between a finite collection of random vectors,
             including phi-dependence measures and Bures-Wasserstein dependence measures. 
             An algorithm for agglomerative hierarchical variable clustering is also implemented.
             Following the articles De Keyser & Gijbels (2024) <doi:10.1016/j.jmva.2024.105336>,
             De Keyser & Gijbels (2024) <doi:10.1016/j.ijar.2023.109090>, and De Keyser & Gijbels (2024)
             <doi:10.48550/arXiv.2404.07141>.

Implements the Vector Matching algorithm to match multiple
    treatment groups based on previously estimated generalized propensity
    scores. The package includes tools for visualizing initial confounder
    imbalances, estimating treatment assignment probabilities using various
    methods, defining the common support region, performing matching across
    multiple groups, and evaluating matching quality. For more details, see 
    Lopez and Gutman (2017) <doi:10.1214/17-STS612>.

The 'base'  tools  union() intersect(), etc.,  follow the algebraic definition
 that each element of a set must be unique. 
 Since it's often helpful to compare all elements of two vectors,
 this toolset treats every element as unique for counting purposes.
 For ease of use, all functions in vecsets have an argument
 'multiple' which, when set to FALSE,
 reverts them to the base::sets (alias for all the items) tools functionality.