Solves an equation of the form a %*% x = b
for x
, where a
is a linear operation represented by
a FastTransform
object, while b
can be either a vector or a matrix. If b
is missing, it returns
a FastTransform
object corresponding to the inverse (or a generalized inverse) of a
.
Usage
# S3 method for FastTransform
solve(a, b, ...)
Arguments
- a
An object of class
FastTransform
, created usingfort()
.- b
A numeric vector or matrix (to solve the equation), or nothing (to obtain a generalized inverse of
a
).- ...
Extra parameters (ignored).
Value
Either a matrix (representing x
), or a FastTransform
object (representing a generalized
inverse of a
; if parameter b
is missing).
Details
Note that the inverse transform will only be fast (i.e., avoid matrix multiplication) if \(dim\_in = dim\_out = blocksize\).
Examples
a <- fort(4)
inv_a <- solve(a) # inverse of a
inv_a %*% diag(4) # applying the inverse of a
#> [,1] [,2] [,3] [,4]
#> [1,] -0.54408231 -0.6608470 -0.46028742 0.2353532
#> [2,] -0.46028742 -0.2353532 0.54408231 -0.6608470
#> [3,] -0.69996384 0.6488714 0.04648175 0.2947134
#> [4,] 0.04648175 -0.2947134 0.69996384 0.6488714
solve(a, diag(4)) # should give the same output
#> [,1] [,2] [,3] [,4]
#> [1,] -0.54408231 -0.6608470 -0.46028742 0.2353532
#> [2,] -0.46028742 -0.2353532 0.54408231 -0.6608470
#> [3,] -0.69996384 0.6488714 0.04648175 0.2947134
#> [4,] 0.04648175 -0.2947134 0.69996384 0.6488714