|
| 1 | +{{alias}}( o, si, tr, dir, sto, M, N, K, V, LDV, T, LDT, C, LDC, W, LDWORK ) |
| 2 | + Applies a real block reflector `H` or its transpose `H ^ T` to a real `M` by |
| 3 | + `N` matrix `C`, from either the left or the right. |
| 4 | + |
| 5 | + Indexing is relative to the first index. To introduce an offset, use typed |
| 6 | + array views. |
| 7 | + |
| 8 | + The function applies the block reflector `H` to matrix `C` according to the |
| 9 | + specified parameters. The `si` parameter determines whether the |
| 10 | + transformation is applied from the left (`C = H*C` or `C = H^T*C`) or from |
| 11 | + the right (`C = C*H` or `C = C*H^T`). |
| 12 | + |
| 13 | + Parameters |
| 14 | + ---------- |
| 15 | + o: string |
| 16 | + Row-major (C-style) or column-major (Fortran-style) order. Must be |
| 17 | + either 'row-major' or 'column-major'. |
| 18 | + |
| 19 | + si: string |
| 20 | + Specifies whether `H` or `H ^ T` is applied from the left or right. |
| 21 | + Must be either 'left' or 'right'. |
| 22 | + |
| 23 | + tr: string |
| 24 | + Specifies whether to apply `H` or `H ^ T`. Must be either |
| 25 | + 'no-transpose' or 'transpose'. |
| 26 | + |
| 27 | + dir: string |
| 28 | + Indicates how `H` is formed from a product of elementary reflectors. |
| 29 | + Must be either 'forward' or 'backward'. |
| 30 | + |
| 31 | + sto: string |
| 32 | + Indicates how the vectors which define the elementary reflectors are |
| 33 | + stored. Must be either 'columns' or 'rows'. |
| 34 | + |
| 35 | + M: integer |
| 36 | + Number of rows of the matrix `C`. |
| 37 | + |
| 38 | + N: integer |
| 39 | + Number of columns of the matrix `C`. |
| 40 | + |
| 41 | + K: integer |
| 42 | + Order of the matrix `T`. |
| 43 | + |
| 44 | + V: Float64Array |
| 45 | + Input matrix. |
| 46 | + |
| 47 | + LDV: integer |
| 48 | + Leading dimension of `V`. |
| 49 | + |
| 50 | + T: Float64Array |
| 51 | + Input matrix (upper/lower triangular as dictated by `dir`/`sto`). |
| 52 | + |
| 53 | + LDT: integer |
| 54 | + Leading dimension of `T`. |
| 55 | + |
| 56 | + C: Float64Array |
| 57 | + Input/output matrix. |
| 58 | + |
| 59 | + LDC: integer |
| 60 | + Leading dimension of `C`. |
| 61 | + |
| 62 | + W: Float64Array |
| 63 | + Work array. |
| 64 | + |
| 65 | + LDWORK: integer |
| 66 | + Leading dimension of `W`. |
| 67 | + |
| 68 | + Returns |
| 69 | + ------- |
| 70 | + C: Float64Array |
| 71 | + Updated matrix `C`. |
| 72 | + |
| 73 | + Examples |
| 74 | + -------- |
| 75 | + > var V = new {{alias:@stdlib/array/float64}}( [ 10.0, 40.0, 70.0, 20.0 ] ); |
| 76 | + > var T = new {{alias:@stdlib/array/float64}}( [ 1.0, 0.0, 0.0, 2.0 ] ); |
| 77 | + > var C = new {{alias:@stdlib/array/float64}}( [ 11.0, 12.0, 13.0, 21.0 ] ); |
| 78 | + > var W = new {{alias:@stdlib/array/float64}}( 4 ); |
| 79 | + > var o = 'row-major'; |
| 80 | + > var si = 'left'; |
| 81 | + > var tr = 'transpose'; |
| 82 | + > var dir = 'forward'; |
| 83 | + > var sto = 'columns'; |
| 84 | + > {{alias}}( o, si, tr, dir, sto, 2, 2, 2, V, 2, T, 2, C, 2, W, 2 ) |
| 85 | + <Float64Array>[ -910.0, -1470.0, -64483.0, -103761.0 ] |
| 86 | + |
| 87 | + |
| 88 | +{{alias}}.ndarray(si,tr,dir,sto,M,N,K,V,sv1,sv2,ov,T,st1,st2,ot,C,sc1,sc2,oc,W,sw1,sw2,ow) |
| 89 | + Applies a real block reflector `H` or its transpose `H ^ T` to a real `M` by |
| 90 | + `N` matrix `C`, from either the left or the right, using alternative |
| 91 | + indexing semantics. |
| 92 | + |
| 93 | + While typed array views mandate a view offset based on the underlying |
| 94 | + buffer, the offset parameters support indexing semantics based on starting |
| 95 | + indices. |
| 96 | + |
| 97 | + Parameters |
| 98 | + ---------- |
| 99 | + si: string |
| 100 | + Specifies whether `H` or `H ^ T` is applied from the left or right. |
| 101 | + Must be either 'left' or 'right'. |
| 102 | + |
| 103 | + tr: string |
| 104 | + Specifies whether to apply `H` or `H ^ T`. Must be either |
| 105 | + 'no-transpose' or 'transpose'. |
| 106 | + |
| 107 | + dir: string |
| 108 | + Indicates how `H` is formed from a product of elementary reflectors. |
| 109 | + Must be either 'forward' or 'backward'. |
| 110 | + |
| 111 | + sto: string |
| 112 | + Indicates how the vectors which define the elementary reflectors are |
| 113 | + stored. Must be either 'columns' or 'rows'. |
| 114 | + |
| 115 | + M: integer |
| 116 | + Number of rows of the matrix `C`. |
| 117 | + |
| 118 | + N: integer |
| 119 | + Number of columns of the matrix `C`. |
| 120 | + |
| 121 | + K: integer |
| 122 | + Order of the matrix `T`. |
| 123 | + |
| 124 | + V: Float64Array |
| 125 | + Input matrix. |
| 126 | + |
| 127 | + sv1: integer |
| 128 | + Stride of the first dimension of `V`. |
| 129 | + |
| 130 | + sv2: integer |
| 131 | + Stride of the second dimension of `V`. |
| 132 | + |
| 133 | + ov: integer |
| 134 | + Index offset for `V`. |
| 135 | + |
| 136 | + T: Float64Array |
| 137 | + Input matrix. |
| 138 | + |
| 139 | + st1: integer |
| 140 | + Stride of the first dimension of `T`. |
| 141 | + |
| 142 | + st2: integer |
| 143 | + Stride of the second dimension of `T`. |
| 144 | + |
| 145 | + ot: integer |
| 146 | + Index offset for `T`. |
| 147 | + |
| 148 | + C: Float64Array |
| 149 | + Input/output matrix. |
| 150 | + |
| 151 | + sc1: integer |
| 152 | + Stride of the first dimension of `C`. |
| 153 | + |
| 154 | + sc2: integer |
| 155 | + Stride of the second dimension of `C`. |
| 156 | + |
| 157 | + oc: integer |
| 158 | + Index offset for `C`. |
| 159 | + |
| 160 | + W: Float64Array |
| 161 | + Work array. |
| 162 | + |
| 163 | + sw1: integer |
| 164 | + Stride of the first dimension of `W`. |
| 165 | + |
| 166 | + sw2: integer |
| 167 | + Stride of the second dimension of `W`. |
| 168 | + |
| 169 | + ow: integer |
| 170 | + Index offset for `W`. |
| 171 | + |
| 172 | + Returns |
| 173 | + ------- |
| 174 | + C: Float64Array |
| 175 | + Updated matrix `C`. |
| 176 | + |
| 177 | + Examples |
| 178 | + -------- |
| 179 | + > var V = new {{alias:@stdlib/array/float64}}( [ 10.0, 40.0, 70.0, 20.0 ] ); |
| 180 | + > var T = new {{alias:@stdlib/array/float64}}( [ 1.0, 0.0, 0.0, 2.0 ] ); |
| 181 | + > var C = new {{alias:@stdlib/array/float64}}( [ 11.0, 12.0, 13.0, 21.0 ] ); |
| 182 | + > var W = new {{alias:@stdlib/array/float64}}( 4 ); |
| 183 | + > var o = 'row-major'; |
| 184 | + > var si = 'left'; |
| 185 | + > var tr = 'transpose'; |
| 186 | + > var dir = 'forward'; |
| 187 | + > var sto = 'columns'; |
| 188 | + > {{alias}}.ndarray(si,tr,dir,sto,2,2,2, V,2,1,0, T,2,1,0, C,2,1,0, W,2,1,0) |
| 189 | + <Float64Array>[ -910.0, -1470.0, -64483.0, -103761.0 ] |
| 190 | + |
| 191 | + See Also |
| 192 | + -------- |
0 commit comments