How can I improve the runtime of this linear system solve?

Hey @ofk123 ,

Have you tried Numba’s “get_cython_function_address”?

The Lapack functions should be:

Decomposer:
void dpotrf(char *uplo, int *n, d *a, int *lda, int *info)

Solver:
void dpotrs(char *uplo, int *n, int *nrhs, d *a, int *lda, d *b, int *ldb, int *info)


from numba.extending import get_cython_function_address

addr_decom = get_cython_function_address('scipy.linalg.cython_lapack','dpotrf')
addr_solve = get_cython_function_address('scipy.linalg.cython_lapack','dpotrs')

# TODO: 
# Define c-types, c-function
# Retrieve function address

Here are discussions that might help: