10000 ENH: chosolve sets result to nan on LAPACK error (_potrf, _potrs) · numpy/numpy@170726c · GitHub
[go: up one dir, main page]

Skip to content

Commit 170726c

Browse files
ovillellaspv
ovillellas
authored andcommitted
ENH: chosolve sets result to nan on LAPACK error (_potrf, _potrs)
1 parent ec5020c commit 170726c

File tree

1 file changed

+10
-2
lines changed

1 file changed

+10
-2
lines changed

numpy/core/src/umath/umath_linalg.c.src

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3344,6 +3344,9 @@ call_@lapack_func@(POTRS_PARAMS_t *params)
33443344
&params->N,
33453345
params->A, &params->LDA,
33463346
&rv);
3347+
if (0 != rv)
3348+
return rv;
3349+
33473350
LAPACK(@lapack_func@)(&params->UPLO,
33483351
&params->N, &params->NRHS,
33493352
params->A, &params->LDA,
@@ -3382,10 +3385,15 @@ static void
33823385
}
33833386

33843387
BEGIN_OUTER_LOOP_3
3388+
int not_ok;
33853389
linearize_@TYPE@_matrix(params.A, args[0], &a_in);
33863390
linearize_@TYPE@_matrix(params.B, args[1], &b_in);
3387-
call_@lapack_func@(&params);
3388-
delinearize_@TYPE@_matrix(args[2], params.B, &r_out);
3391+
not_ok = call_@lapack_func@(&params);
3392+
if (!not_ok) {
3393+
delinearize_@TYPE@_matrix(args[2], params.B, &r_out);
3394+
} else {
3395+
nan_@TYPE@_matrix(args[2], &r_out);
3396+
}
33893397
END_OUTER_LOOP
33903398

33913399
release_@lapack_func@(&params);

0 commit comments

Comments
 (0)
0