@@ -66,15 +66,22 @@ A = Q R
66
66
67
67
where ``Q`` is an orthogonal/unitary matrix and ``R`` is upper triangular. It is similar
68
68
to the [`QR`](@ref) format except that the orthogonal/unitary matrix ``Q`` is stored in
69
- *Compact WY* format [^Schreiber1989], as a lower trapezoidal matrix ``V`` and an upper
70
- triangular matrix ``T`` where
69
+ *Compact WY* format [^Schreiber1989]. For the block size ``n_b``, it is stored as
70
+ a `m`×`n` lower trapezoidal matrix ``V`` and a matrix ``T = (T_1 \\ ; T_2 \\ ; ... \\ ;
71
+ T_{b-1} \\ ; T_b')`` composed of ``b = \\ lceil \\ min(m,n) / n_b \\ rceil`` upper triangular
72
+ matrices ``T_j`` of size ``n_b``×``n_b`` (``j = 1, ..., b-1``) and an upper trapezoidal
73
+ ``n_b``×``\\ min(m,n) - (b-1) n_b`` matrix ``T_b'`` (``j=b``) whose upper square part
74
+ denoted with ``T_b`` satisfying
71
75
72
76
```math
73
- Q = \\ prod_{i=1}^{\\ min(m,n)} (I - \\ tau_i v_i v_i^T) = I - V T V^T
77
+ Q = \\ prod_{i=1}^{\\ min(m,n)} (I - \\ tau_i v_i v_i^T)
78
+ = \\ prod_{j=1}^{b} (I - V_j T_j V_j^T)
74
79
```
75
80
76
- such that ``v_i`` is the ``i``th column of ``V``, and ``\\ tau_i`` is the ``i``th diagonal
77
- element of ``T``.
81
+ such that ``v_i`` is the ``i``th column of ``V``, ``\\ tau_i`` is the ``i``th element
82
+ of `[diag(T_1); diag(T_2); …; diag(T_b)]`, and ``(V_1 \\ ; V_2 \\ ; ... \\ ; V_b)``
83
+ is the left `m`×`min(m, n)` block of ``V``. When constructed using [`qr`](@ref),
84
+ the block size is given by ``n_b = \\ min(m, n, 36)``.
78
85
79
86
Iterating the decomposition produces the components `Q` and `R`.
80
87
@@ -88,8 +95,8 @@ The object has two fields:
88
95
- The subdiagonal part contains the reflectors ``v_i`` stored in a packed format such
89
96
that `V = I + tril(F.factors, -1)`.
90
97
91
- * `T` is a square matrix with ` min(m,n)` columns, whose upper triangular part gives the
92
- matrix ``T `` above (the subdiagonal elements are ignored) .
98
+ * `T` is a ``n_b``-by-`` \\ min(m,n)`` matrix as described above. The subdiagonal elements
99
+ for each triangular matrix ``T_j `` are ignored.
93
100
94
101
!!! note
95
102
0 commit comments