# InvWavTransf2D: Inverse AI wavelet transform for surface of HPD matrices In pdSpecEst: An Analysis Toolbox for Hermitian Positive Definite Matrices

## Description

`InvWavTransf2D` computes the inverse intrinsic average-interpolation (AI) wavelet transform mapping an array of coarsest-scale HPD midpoints combined with a 2D pyramid of Hermitian wavelet coefficients to a surface in the manifold of HPD matrices equipped with a metric specified by the user, as described in Chapter 5 of \insertCiteC18pdSpecEst. This is the inverse operation of the function `WavTransf2D`.

## Usage

 ```1 2``` ```InvWavTransf2D(D, M0, order = c(3, 3), jmax, metric = "Riemannian", ...) ```

## Arguments

 `D` a list of arrays containing the 2D pyramid of wavelet coefficients, where each array contains the (d,d)-dimensional wavelet coefficients from the coarsest wavelet scale `j = 0` up to the finest wavelet scale `j = jmax`. This is the same format as the `\$D` component given as output by `WavTransf2D`. `M0` a numeric array containing the midpoint(s) at the coarsest scale `j = 0` in the 2D midpoint pyramid. This is the same format as the `\$M0` component given as output by `WavTransf2D`. `order` a 2-dimensional numeric vector (1,1) ≤ `order` ≤ (9,9) corresponding to the marginal orders of the intrinsic 2D AI refinement scheme, defaults to `order = c(3, 3)`. `jmax` the maximum scale (resolution) up to which the 2D surface of HPD midpoints (i.e. scaling coefficients) are reconstructed. If `jmax` is not specified it is set equal to the resolution in the finest wavelet scale `jmax = length(D)`. `metric` the metric that the space of HPD matrices is equipped with. The default choice is `"Riemannian"`, but this can also be one of: `"logEuclidean"`, `"Cholesky"`, `"rootEuclidean"` or `"Euclidean"`. See also the Details section below. `...` additional arguments for internal use.

## Details

The input list of arrays `D` and array `M0` correspond to a 2D pyramid of wavelet coefficients and the coarsest-scale HPD midpoints respectively, both are structured in the same way as in the output of `WavTransf2D`. As in the forward AI wavelet transform, the marginal refinement orders should be smaller or equal to 9, and the function computes the wavelet transform using a fast wavelet refinement scheme based on weighted intrinsic averages with pre-determined weights as explained in Chapter 5 of \insertCiteC18pdSpecEst. By default `WavTransf2D` computes the inverse intrinsic 2D AI wavelet transform equipping the space of HPD matrices with (i) the affine-invariant Riemannian metric as detailed in e.g., \insertCiteB09pdSpecEst[Chapter 6] or \insertCitePFA05pdSpecEst. Instead, the space of HPD matrices can also be equipped with one of the following metrics; (ii) the Log-Euclidean metric, the Euclidean inner product between matrix logarithms; (iii) the Cholesky metric, the Euclidean inner product between Cholesky decompositions; (iv) the Euclidean metric and (v) the root-Euclidean metric. The default choice of metric (affine-invariant Riemannian) satisfies several useful properties not shared by the other metrics, see \insertCiteC18pdSpecEst for more details. Note that this comes at the cost of increased computation time in comparison to one of the other metrics.

## Value

Returns a (d, d, n_1, n_2)-dimensional array corresponding to a rectangular surface of size n_1 by n_2 of (d,d)-dimensional HPD matrices.

## References

\insertAllCited

`WavTransf2D`, `pdSpecEst2D`, `pdNeville`
 ```1 2 3 4``` ```P <- rExamples2D(c(2^4, 2^4), 2, example = "tvar") P.wt <- WavTransf2D(P\$f) ## forward transform P.f <- InvWavTransf2D(P.wt\$D, P.wt\$M0) ## backward transform all.equal(P.f, P\$f) ```