Skip to content

Commit 166bc11

Browse files
committed
refactor: remove conditionals from hot loops
--- 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: na - task: lint_package_json status: na - task: lint_repl_help status: na - task: lint_javascript_src status: na - task: lint_javascript_cli status: na - task: lint_javascript_examples status: na - 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: missing_dependencies - 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 45e1877 commit 166bc11

1 file changed

Lines changed: 22 additions & 12 deletions

File tree

lib/node_modules/@stdlib/blas/base/cgemv/src/cgemv_ndarray.c

Lines changed: 22 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -139,15 +139,20 @@ void API_SUFFIX(c_cgemv_ndarray)( const CBLAS_TRANSPOSE trans, const CBLAS_INT M
139139
ia += da0 * ylen;
140140
} else {
141141
iy = offsetY;
142-
for ( i0 = 0; i0 < ylen; i0++ ) {
143-
if ( trans == CblasConjTrans ) {
142+
if ( trans == CblasConjTrans ) {
143+
for ( i0 = 0; i0 < ylen; i0++ ) {
144144
aval = stdlib_complex64_conj( ap[ ia ] );
145-
} else {
145+
yp[ iy ] = stdlib_base_complex64_muladd( aval, tmp, yp[ iy ] );
146+
iy += strideY;
147+
ia += da0;
148+
}
149+
} else {
150+
for ( i0 = 0; i0 < ylen; i0++ ) {
146151
aval = ap[ ia ];
152+
yp[ iy ] = stdlib_base_complex64_muladd( aval, tmp, yp[ iy ] );
153+
iy += strideY;
154+
ia += da0;
147155
}
148-
yp[ iy ] = stdlib_base_complex64_muladd( aval, tmp, yp[ iy ] );
149-
iy += strideY;
150-
ia += da0;
151156
}
152157
}
153158
ix += strideX;
@@ -172,15 +177,20 @@ void API_SUFFIX(c_cgemv_ndarray)( const CBLAS_TRANSPOSE trans, const CBLAS_INT M
172177
for ( i1 = 0; i1 < ylen; i1++ ) {
173178
tmp = zero;
174179
ix = offsetX;
175-
for ( i0 = 0; i0 < xlen; i0++ ) {
176-
if ( trans == CblasConjTrans ) {
180+
if ( trans == CblasConjTrans ) {
181+
for ( i0 = 0; i0 < xlen; i0++ ) {
177182
aval = stdlib_complex64_conj( ap[ ia ] );
178-
} else {
183+
tmp = stdlib_base_complex64_muladd( aval, xp[ ix ], tmp );
184+
ix += strideX;
185+
ia += da0;
186+
}
187+
} else {
188+
for ( i0 = 0; i0 < xlen; i0++ ) {
179189
aval = ap[ ia ];
190+
tmp = stdlib_base_complex64_muladd( aval, xp[ ix ], tmp );
191+
ix += strideX;
192+
ia += da0;
180193
}
181-
tmp = stdlib_base_complex64_muladd( aval, xp[ ix ], tmp );
182-
ix += strideX;
183-
ia += da0;
184194
}
185195
yp[ iy ] = stdlib_base_complex64_muladd( alpha, tmp, yp[ iy ] );
186196
iy += strideY;

0 commit comments

Comments
 (0)