Skip to content

Commit b8c043d

Browse files
committed
chore: code review
--- type: pre_commit_static_analysis_report description: Results of running static analysis checks when committing changes. report: - task: lint_filenames status: passed - task: lint_editorconfig status: passed - task: lint_markdown status: passed - task: lint_package_json status: na - task: lint_repl_help status: passed - task: lint_javascript_src status: passed - task: lint_javascript_cli status: na - task: lint_javascript_examples status: passed - task: lint_javascript_tests status: na - task: lint_javascript_benchmarks status: na - task: lint_python status: na - task: lint_r status: na - task: lint_c_src status: na - task: lint_c_examples status: na - task: lint_c_benchmarks status: na - task: lint_c_tests_fixtures status: na - task: lint_shell status: na - task: lint_typescript_declarations status: passed - task: lint_typescript_tests status: na - task: lint_license_headers status: passed ---
1 parent cebf9eb commit b8c043d

File tree

8 files changed

+97
-102
lines changed

8 files changed

+97
-102
lines changed

lib/node_modules/@stdlib/lapack/base/dlanv2/README.md

Lines changed: 34 additions & 36 deletions
Original file line numberDiff line numberDiff line change
@@ -59,7 +59,7 @@ T = \begin{bmatrix} AA & BB \\
5959

6060
<!-- </equation> -->
6161

62-
2. `T` is a 2x2 block with complex conjugate eigenvalues:
62+
2. `T` is a 2-by-2 block with complex conjugate eigenvalues:
6363

6464
<!-- <equation class="equation" label="eq:complex_schur" align="center" raw="T = \begin{bmatrix} AA & BB \\ CC & AA \end{bmatrix}" alt="Real Schur form with complex eigenvalues."> -->
6565

@@ -92,7 +92,7 @@ with `BB*CC < 0`, yielding complex conjugate eigenvalues:
9292
var dlanv2 = require( '@stdlib/lapack/base/dlanv2' );
9393
```
9494

95-
#### dlanv2( A, B, C, D, RT1R, RT1I, RT2R, RT2I, CS, SN )
95+
#### dlanv2 ( A, B, C, D, rt1r, rt1i, rt2r, rt2i, cs, sn )
9696

9797
Computes the Schur factorization of a real 2-by-2 nonsymmetric matrix `A` in standard form.
9898

@@ -120,7 +120,7 @@ dlanv2( A, B, C, D, RT1R, RT1I, RT2R, RT2I, CS, SN );
120120
// RT2R => <Float64Array>[ -1.0 ]
121121
// RT2I => <Float64Array>[ 0.0 ]
122122
// CS => <Float64Array>[ ~0.93 ]
123-
// SN => <Float64Array>[ ~0.34 ]
123+
// SN => <Float64Array>[ ~0.37 ]
124124
```
125125

126126
The function has the following parameters:`
@@ -129,12 +129,12 @@ The function has the following parameters:`
129129
- **B**: single-element [`Float64Array`][mdn-float64array] containing the element `A(1,2)`.
130130
- **C**: single-element [`Float64Array`][mdn-float64array] containing the element `A(2,1)`.
131131
- **D**: single-element [`Float64Array`][mdn-float64array] containing the element `A(2,2)`.
132-
- **RT1R**: single-element output [`Float64Array`][mdn-float64array] to store the real value of the first eigenvector.
133-
- **RT1I**: single-element output [`Float64Array`][mdn-float64array] to store the imaginary value of the first eigenvector.
134-
- **RT2R**: single-element output [`Float64Array`][mdn-float64array] to store the real value of the second eigenvector.
135-
- **RT2I**: single-element output [`Float64Array`][mdn-float64array] to store the imaginary value of the second eigenvector.
136-
- **CS**: output [`Float64Array`][mdn-float64array] to store the cosine of the rotation.
137-
- **SN**: output [`Float64Array`][mdn-float64array] to store the sine of the rotation.
132+
- **rt1r**: single-element output [`Float64Array`][mdn-float64array] to store the real value of the first eigenvector.
133+
- **rt1i**: single-element output [`Float64Array`][mdn-float64array] to store the imaginary value of the first eigenvector.
134+
- **rt2r**: single-element output [`Float64Array`][mdn-float64array] to store the real value of the second eigenvector.
135+
- **rt2i**: single-element output [`Float64Array`][mdn-float64array] to store the imaginary value of the second eigenvector.
136+
- **cs**: output [`Float64Array`][mdn-float64array] to store the cosine of the rotation.
137+
- **sn**: output [`Float64Array`][mdn-float64array] to store the sine of the rotation.
138138

139139
Note that indexing is relative to the first index. To introduce an offset, use [`typed array`][mdn-typed-array] views.
140140

@@ -177,12 +177,12 @@ dlanv2( A1, B1, C1, D1, RT1R1, RT1I1, RT2R1, RT2I1, CS1, SN1 );
177177
// RT2R0 => <Float64Array>[ 0.0, -1.0 ]
178178
// RT2I0 => <Float64Array>[ 0.0, 0.0 ]
179179
// CS0 => <Float64Array>[ 0.0, ~0.93 ]
180-
// SN0 => <Float64Array>[ 0.0, ~0.34 ]
180+
// SN0 => <Float64Array>[ 0.0, ~0.37 ]
181181
```
182182

183183
<!-- lint disable maximum-heading-length -->
184184

185-
#### dlanv2.ndarray( A, oa, B, ob, C, oc, D, od, RT1R, or1, RT1I, oi1, RT2R, or2, RT2I, oi2, CS, ocs, SN, osn )
185+
#### dlanv2.ndarray( A, oa, B, ob, C, oc, D, od, rt1r, or1, rt1i, oi1, rt2r, or2, rt2i, oi2, cs, ocs, sn, osn )
186186

187187
Computes the Schur factorization of a real 2-by-2 nonsymmetric matrix `A` in standard form using alternative indexing semantics.
188188

@@ -210,7 +210,7 @@ dlanv2.ndarray( A, 0, B, 0, C, 0, D, 0, RT1R, 0, RT1I, 0, RT2R, 0, RT2I, 0, CS,
210210
// RT2R => <Float64Array>[ -1.0 ]
211211
// RT2I => <Float64Array>[ 0.0 ]
212212
// CS => <Float64Array>[ ~0.93 ]
213-
// SN => <Float64Array>[ ~0.34 ]
213+
// SN => <Float64Array>[ ~0.37 ]
214214
```
215215

216216
The function has the following parameters:
@@ -223,18 +223,18 @@ The function has the following parameters:
223223
- **oc**: starting index for `C`.
224224
- **D**: single-element [`Float64Array`][mdn-float64array] containing the element `A(2,2)`.
225225
- **od**: starting index for `D`.
226-
- **RT1R**: single-element output [`Float64Array`][mdn-float64array] to store the real value of the first eigenvector.
227-
- **or1**: starting index for `RT1R`.
228-
- **RT1I**: single-element output [`Float64Array`][mdn-float64array] to store the imaginary value of the first eigenvector.
229-
- **oi1**: starting index for `RT1I`.
230-
- **RT2R**: single-element output [`Float64Array`][mdn-float64array] to store the real value of the second eigenvector.
231-
- **or2**: starting index for `RT2R`.
232-
- **RT2I**: single-element output [`Float64Array`][mdn-float64array] to store the imaginary value of the second eigenvector.
233-
- **oi2**: starting index for `RT2I`.
234-
- **CS**: output [`Float64Array`][mdn-float64array] to store the cosine of the rotation.
235-
- **ocs**: starting index for `CS`.
236-
- **SN**: output [`Float64Array`][mdn-float64array] to store the sine of the rotation.
237-
- **osn**: starting index for `SN`.
226+
- **rt1r**: single-element output [`Float64Array`][mdn-float64array] to store the real value of the first eigenvector.
227+
- **or1**: starting index for `rt1r`.
228+
- **rt1i**: single-element output [`Float64Array`][mdn-float64array] to store the imaginary value of the first eigenvector.
229+
- **oi1**: starting index for `rt1i`.
230+
- **rt2r**: single-element output [`Float64Array`][mdn-float64array] to store the real value of the second eigenvector.
231+
- **or2**: starting index for `rt2r`.
232+
- **rt2i**: single-element output [`Float64Array`][mdn-float64array] to store the imaginary value of the second eigenvector.
233+
- **oi2**: starting index for `rt2i`.
234+
- **cs**: output [`Float64Array`][mdn-float64array] to store the cosine of the rotation.
235+
- **ocs**: starting index for `cs`.
236+
- **sn**: output [`Float64Array`][mdn-float64array] to store the sine of the rotation.
237+
- **osn**: starting index for `sn`.
238238

239239
While [`typed array`][mdn-typed-array] views mandate a view offset based on the underlying buffer, the offset parameters support indexing semantics based on starting indices. For example,
240240

@@ -262,7 +262,7 @@ dlanv2.ndarray( A, 1, B, 1, C, 1, D, 1, RT1R, 1, RT1I, 1, RT2R, 1, RT2I, 1, CS,
262262
// RT2R => <Float64Array>[ 0.0, -1.0 ]
263263
// RT2I => <Float64Array>[ 0.0, 0.0 ]
264264
// CS => <Float64Array>[ 0.0, ~0.93 ]
265-
// SN => <Float64Array>[ 0.0, ~0.34 ]
265+
// SN => <Float64Array>[ 0.0, ~0.37 ]
266266
```
267267

268268
</section>
@@ -310,17 +310,15 @@ console.log( [ [ A[ 0 ], B[ 0 ] ], [ C[ 0 ], D[ 0 ] ] ] );
310310

311311
dlanv2( A, B, C, D, RT1R, RT1I, RT2R, RT2I, CS, SN );
312312

313-
console.log( 'the schur factorization of the matrix: ' );
314-
console.log([
315-
[ CS[ 0 ], -SN[ 0 ] ],
316-
[ SN[ 0 ], CS[ 0 ] ]
317-
], '*', [
318-
[ A[ 0 ], B[ 0 ] ],
319-
[ C[ 0 ], D[ 0 ] ]
320-
], '*', [
321-
[ CS[ 0 ], SN[ 0 ] ],
322-
[ -SN[ 0 ], CS[ 0 ] ]
323-
]);
313+
console.log( 'Schur factorization: A = QUQ^-1' );
314+
console.log( 'A:' );
315+
console.log( [ [ A[ 0 ], B[ 0 ] ], [ C[ 0 ], D[ 0 ] ] ] );
316+
console.log( 'Q:' );
317+
console.log( [ [ CS[ 0 ], -SN[ 0 ] ], [ SN[ 0 ], CS[ 0 ] ] ] );
318+
console.log( 'U:' );
319+
console.log( [ [ A[ 0 ], B[ 0 ] ], [ C[ 0 ], D[ 0 ] ] ] );
320+
console.log( 'Q^-1:' );
321+
console.log( [ [ CS[ 0 ], SN[ 0 ] ], [ -SN[ 0 ], CS[ 0 ] ] ] );
324322

325323
var eigenvalue1 = new Complex128( RT1R[ 0 ], RT1I[ 0 ] );
326324
var eigenvalue2 = new Complex128( RT2R[ 0 ], RT2I[ 0 ] );

lib/node_modules/@stdlib/lapack/base/dlanv2/docs/repl.txt

Lines changed: 46 additions & 47 deletions
Original file line numberDiff line numberDiff line change
@@ -13,13 +13,13 @@
1313
Q^T * [ A B ] * Q = [ AA BB ]
1414
[ C D ] [ CC DD ]
1515

16-
where Q is a 2x2 rotation matrix:
16+
where Q is a 2-by-2 rotation matrix:
1717

1818
Q = [ CS SN ]
1919
[ -SN CS ]
2020

2121
and the result is either real upper triangular (real eigenvalues) or
22-
2x2 block diagonal (complex conjugate eigenvalues).
22+
2-by-2 block diagonal (complex conjugate eigenvalues).
2323

2424
Indexing is relative to the first index. To introduce an offset, use
2525
typed array views.
@@ -39,44 +39,41 @@
3939
Input element A(2,2).
4040

4141
RT1R: Float64Array
42-
Output: real part of the first eigenvalue.
42+
Real part of the first eigenvalue.
4343

4444
RT1I: Float64Array
45-
Output: imaginary part of the first eigenvalue.
45+
Imaginary part of the first eigenvalue.
4646

4747
RT2R: Float64Array
48-
Output: real part of the second eigenvalue.
48+
Real part of the second eigenvalue.
4949

5050
RT2I: Float64Array
51-
Output: imaginary part of the second eigenvalue.
51+
Imaginary part of the second eigenvalue.
5252

5353
CS: Float64Array
54-
Output: cosine of the rotation.
54+
Cosine of the rotation.
5555

5656
SN: Float64Array
57-
Output: sine of the rotation.
57+
Sine of the rotation.
5858

5959
Returns
6060
-------
6161
undefined
6262

6363
Examples
6464
--------
65-
> var Float64Array = require( '@stdlib/array/float64' );
66-
> var dlanv2 = require( '@stdlib/lapack/base/dlanv2' );
67-
68-
> var A = new Float64Array( [ 4.0 ] );
69-
> var B = new Float64Array( [ -5.0 ] );
70-
> var C = new Float64Array( [ 2.0 ] );
71-
> var D = new Float64Array( [ -3.0 ] );
72-
> var RT1R = new Float64Array( 1 );
73-
> var RT1I = new Float64Array( 1 );
74-
> var RT2R = new Float64Array( 1 );
75-
> var RT2I = new Float64Array( 1 );
76-
> var CS = new Float64Array( 1 );
77-
> var SN = new Float64Array( 1 );
78-
79-
> dlanv2( A, B, C, D, RT1R, RT1I, RT2R, RT2I, CS, SN );
65+
> var A = new {{alias:@stdlib/array/float64}}( [ 4.0 ] );
66+
> var B = new {{alias:@stdlib/array/float64}}( [ -5.0 ] );
67+
> var C = new {{alias:@stdlib/array/float64}}( [ 2.0 ] );
68+
> var D = new {{alias:@stdlib/array/float64}}( [ -3.0 ] );
69+
> var RT1R = new {{alias:@stdlib/array/float64}}( 1 );
70+
> var RT1I = new {{alias:@stdlib/array/float64}}( 1 );
71+
> var RT2R = new {{alias:@stdlib/array/float64}}( 1 );
72+
> var RT2I = new {{alias:@stdlib/array/float64}}( 1 );
73+
> var CS = new {{alias:@stdlib/array/float64}}( 1 );
74+
> var SN = new {{alias:@stdlib/array/float64}}( 1 );
75+
76+
> {{alias}}( A, B, C, D, RT1R, RT1I, RT2R, RT2I, CS, SN );
8077

8178
> A
8279
<Float64Array>[ 2.0 ]
@@ -97,9 +94,10 @@
9794
> CS
9895
<Float64Array>[ ~0.93 ]
9996
> SN
100-
<Float64Array>[ ~0.34 ]
97+
<Float64Array>[ ~0.37 ]
10198

102-
{{alias}}.ndarray( A,oa,B,ob,C,oc,D,od,R1,or1,I1,oi1,R2,or2,I2,oi2,CS,ocs,SN,osn )
99+
100+
{{alias}}.ndarray(A,oa,B,ob,C,oc,D,od,R1,or1,I1,oi1,R2,or2,I2,oi2,CS,ocs,SN,osn)
103101

104102
Computes the Schur factorization of a 2-by-2 real nonsymmetric matrix
105103
using alternative indexing semantics.
@@ -115,13 +113,13 @@
115113
Q^T * [ A B ] * Q = [ AA BB ]
116114
[ C D ] [ CC DD ]
117115

118-
where Q is a 2x2 rotation matrix:
116+
where Q is a 2-by-2 rotation matrix:
119117

120118
Q = [ CS SN ]
121119
[ -SN CS ]
122120

123121
and the result is either real upper triangular (real eigenvalues) or
124-
2x2 block diagonal (complex conjugate eigenvalues).
122+
2-by-2 block diagonal (complex conjugate eigenvalues).
125123

126124
While typed array views mandate a view offset based on the underlying
127125
buffer, the offset parameters support indexing semantics based on starting
@@ -154,57 +152,55 @@
154152
Starting index for `D`.
155153

156154
R1: Float64Array
157-
Output: real part of the first eigenvalue.
155+
Real part of the first eigenvalue.
158156

159157
or1: integer
160158
Starting index for `R1`.
161159

162160
I1: Float64Array
163-
Output: imaginary part of the first eigenvalue.
161+
Imaginary part of the first eigenvalue.
164162

165163
oi1: integer
166164
Starting index for `I1`.
167165

168166
R2: Float64Array
169-
Output: real part of the second eigenvalue.
167+
Real part of the second eigenvalue.
170168

171169
or2: integer
172170
Starting index for `R2`.
173171

174172
I2: Float64Array
175-
Output: imaginary part of the second eigenvalue.
173+
Imaginary part of the second eigenvalue.
176174

177175
oi2: integer
178176
Starting index for `I2`.
179177

180178
CS: Float64Array
181-
Output: cosine of the rotation.
179+
Cosine of the rotation.
182180

183181
ocs: integer
184182
Starting index for `CS`.
185183

186184
SN: Float64Array
187-
Output: sine of the rotation.
185+
Sine of the rotation.
188186

189187
osn: integer
190188
Starting index for `SN`.
191189

192190
Examples
193191
--------
194-
> var Float64Array = require( '@stdlib/array/float64' );
195-
> var A = new Float64Array( [ 0.0, 4.0 ] );
196-
> var B = new Float64Array( [ 0.0, -5.0 ] );
197-
> var C = new Float64Array( [ 0.0, 2.0 ] );
198-
> var D = new Float64Array( [ 0.0, -3.0 ] );
199-
> var RT1R = new Float64Array( 2 );
200-
> var RT1I = new Float64Array( 2 );
201-
> var RT2R = new Float64Array( 2 );
202-
> var RT2I = new Float64Array( 2 );
203-
> var CS = new Float64Array( 2 );
204-
> var SN = new Float64Array( 2 );
205-
206-
> dlanv2.ndarray( A, 1, B, 1, C, 1, D, 1,
207-
RT1R, 1, RT1I, 1, RT2R, 1, RT2I, 1, CS, 1, SN, 1 );
192+
> var A = new {{alias:@stdlib/array/float64}}( [ 0.0, 4.0 ] );
193+
> var B = new {{alias:@stdlib/array/float64}}( [ 0.0, -5.0 ] );
194+
> var C = new {{alias:@stdlib/array/float64}}( [ 0.0, 2.0 ] );
195+
> var D = new {{alias:@stdlib/array/float64}}( [ 0.0, -3.0 ] );
196+
> var RT1R = new {{alias:@stdlib/array/float64}}( 2 );
197+
> var RT1I = new {{alias:@stdlib/array/float64}}( 2 );
198+
> var RT2R = new {{alias:@stdlib/array/float64}}( 2 );
199+
> var RT2I = new {{alias:@stdlib/array/float64}}( 2 );
200+
> var CS = new {{alias:@stdlib/array/float64}}( 2 );
201+
> var SN = new {{alias:@stdlib/array/float64}}( 2 );
202+
203+
> {{alias}}.ndarray(A,1,B,1,C,1,D,1,RT1R,1,RT1I,1,RT2R,1,RT2I,1,CS,1,SN,1);
208204

209205
> A
210206
<Float64Array>[ 0.0, 2.0 ]
@@ -214,3 +210,6 @@
214210
<Float64Array>[ 0.0, 2.0 ]
215211
> RT2R
216212
<Float64Array>[ 0.0, -1.0 ]
213+
214+
See Also
215+
--------

lib/node_modules/@stdlib/lapack/base/dlanv2/docs/types/index.d.ts

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -92,7 +92,7 @@ interface Routine {
9292
* // RT2R => <Float64Array>[ -1.0 ]
9393
* // RT2I => <Float64Array>[ 0.0 ]
9494
* // CS => <Float64Array>[ ~0.93 ]
95-
* // SN => <Float64Array>[ ~0.34 ]`
95+
* // SN => <Float64Array>[ ~0.37 ]`
9696
*/
9797
( A: Float64Array, B: Float64Array, C: Float64Array, D: Float64Array, RT1R: Float64Array, RT1I: Float64Array, RT2R: Float64Array, RT2I: Float64Array, CS: Float64Array, SN: Float64Array ): void;
9898

@@ -176,7 +176,7 @@ interface Routine {
176176
* // RT2R => <Float64Array>[ -1.0 ]
177177
* // RT2I => <Float64Array>[ 0.0 ]
178178
* // CS => <Float64Array>[ ~0.93 ]
179-
* // SN => <Float64Array>[ ~0.34 ]
179+
* // SN => <Float64Array>[ ~0.37 ]
180180
*/
181181
ndarray( A: Float64Array, offsetA: number, B: Float64Array, offsetB: number, C: Float64Array, offsetC: number, D: Float64Array, offsetD: number, RT1R: Float64Array, offsetRT1R: number, RT1I: Float64Array, offsetRT1I: number, RT2R: Float64Array, offsetRT2R: number, RT2I: Float64Array, offsetRT2I: number, CS: Float64Array, offsetCS: number, SN: Float64Array, offsetSN: number ): void;
182182
}
@@ -251,7 +251,7 @@ interface Routine {
251251
* // RT2R => <Float64Array>[ -1.0 ]
252252
* // RT2I => <Float64Array>[ 0.0 ]
253253
* // CS => <Float64Array>[ ~0.93 ]
254-
* // SN => <Float64Array>[ ~0.34 ]
254+
* // SN => <Float64Array>[ ~0.37 ]
255255
*
256256
* @example
257257
* var Float64Array = require( '@stdlib/array/float64' );
@@ -277,7 +277,7 @@ interface Routine {
277277
* // RT2R => <Float64Array>[ -1.0 ]
278278
* // RT2I => <Float64Array>[ 0.0 ]
279279
* // CS => <Float64Array>[ ~0.93 ]
280-
* // SN => <Float64Array>[ ~0.34 ]
280+
* // SN => <Float64Array>[ ~0.37 ]
281281
*/
282282
declare var dlanv2: Routine;
283283

lib/node_modules/@stdlib/lapack/base/dlanv2/examples/index.js

Lines changed: 9 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -42,17 +42,15 @@ console.log( [ [ A[ 0 ], B[ 0 ] ], [ C[ 0 ], D[ 0 ] ] ] );
4242

4343
dlanv2( A, B, C, D, RT1R, RT1I, RT2R, RT2I, CS, SN );
4444

45-
console.log( 'the schur factorization of the matrix: ' );
46-
console.log([
47-
[ CS[ 0 ], -SN[ 0 ] ],
48-
[ SN[ 0 ], CS[ 0 ] ]
49-
], '*', [
50-
[ A[ 0 ], B[ 0 ] ],
51-
[ C[ 0 ], D[ 0 ] ]
52-
], '*', [
53-
[ CS[ 0 ], SN[ 0 ] ],
54-
[ -SN[ 0 ], CS[ 0 ] ]
55-
]);
45+
console.log( 'Schur factorization: A = QUQ^-1' );
46+
console.log( 'A:' );
47+
console.log( [ [ A[ 0 ], B[ 0 ] ], [ C[ 0 ], D[ 0 ] ] ] );
48+
console.log( 'Q:' );
49+
console.log( [ [ CS[ 0 ], -SN[ 0 ] ], [ SN[ 0 ], CS[ 0 ] ] ] );
50+
console.log( 'U:' );
51+
console.log( [ [ A[ 0 ], B[ 0 ] ], [ C[ 0 ], D[ 0 ] ] ] );
52+
console.log( 'Q^-1:' );
53+
console.log( [ [ CS[ 0 ], SN[ 0 ] ], [ -SN[ 0 ], CS[ 0 ] ] ] );
5654

5755
var eigenvalue1 = new Complex128( RT1R[ 0 ], RT1I[ 0 ] );
5856
var eigenvalue2 = new Complex128( RT2R[ 0 ], RT2I[ 0 ] );

lib/node_modules/@stdlib/lapack/base/dlanv2/lib/base.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -127,7 +127,7 @@ var multpl = 4.0;
127127
* // RT2R => <Float64Array>[ -1.0 ]
128128
* // RT2I => <Float64Array>[ 0.0 ]
129129
* // CS => <Float64Array>[ ~0.93 ]
130-
* // SN => <Float64Array>[ ~0.34 ]
130+
* // SN => <Float64Array>[ ~0.37 ]
131131
*/
132132
function dlanv2( A, offsetA, B, offsetB, C, offsetC, D, offsetD, RT1R, offsetRT1R, RT1I, offsetRT1I, RT2R, offsetRT2R, RT2I, offsetRT2I, CS, offsetCS, SN, offsetSN ) {
133133
var bcmax;

0 commit comments

Comments
 (0)