You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
dpnp.linalg.lu_factor() - Feature request. Implemeted but not a public method #2498
With the following, the results differ between the L, U and pivots. This is sort of expected as it depends on the pivoting steps. If there is a way to support similar to scipy API (ie., the args): lu_factor(a, overwrite_a=False, check_finite=True)
Hi @abagusetty and thank you for the feature request
The function _lu_factor() was originally designed for internal use in dpnp.linalg.det() and dpnp.linalg.slogdet() so we did not make it public.
To maintain functional completeness of DPNP with CuPy and SciPy where lu_factor is part of the public API, we plan to adddpnp.linalg.lu_factor as a public function in a future release including support for arguments like overwrite_a and check_finite
Your request for lu_solve() makes sense as the next logical step and will be implemented in the same upcoming release.
Regarding the differences in LU and pivot outputs. This is expected.
LU factorization is not unique and results may vary depending on the pivoting strategy used by the underlying library
I will keep this issue updated as soon as development begins.
Reacted by Abhishek Bagusetty and Alvaro Vazquez-Mayagoitia
@abagusetty
The functions dpnp.scipy.linalg.lu_factor()#2557 , #2565 and dpnp.scipy.linalg.lu_solve()#2575 have been implemented and are now available in the latest release v.0.19.0
Batch support for dpnp.scipy.linalg.lu_solve()#2619 has been merged and will be included in the next release.
These functions are part of the new dpnp.scipy submodule #2603 and mimic the behavior of their SciPy equivalents including full support for all standard arguments and 0-based pivot indexing
I am closing this issue.
Feel free to open a new one for any further feature requests.
Activity
abagusetty commentedon Jun 24, 2025
With the following, the results differ between the L, U and pivots. This is sort of expected as it depends on the pivoting steps. If there is a way to support similar to scipy API (ie., the args):
lu_factor(a, overwrite_a=False, check_finite=True)output:
vlad-perevezentsev commentedon Jun 25, 2025
Hi @abagusetty and thank you for the feature request
The function
_lu_factor()was originally designed for internal use indpnp.linalg.det()anddpnp.linalg.slogdet()so we did not make it public.To maintain functional completeness of DPNP with CuPy and SciPy where
lu_factoris part of the public API, we plan to adddpnp.linalg.lu_factoras a public function in a future release including support for arguments likeoverwrite_aandcheck_finiteYour request for
lu_solve()makes sense as the next logical step and will be implemented in the same upcoming release.Regarding the differences in LU and pivot outputs. This is expected.
LU factorization is not unique and results may vary depending on the pivoting strategy used by the underlying library
I will keep this issue updated as soon as development begins.
vlad-perevezentsev commentedon Oct 14, 2025
@abagusetty
The functions
dpnp.scipy.linalg.lu_factor()#2557 , #2565 anddpnp.scipy.linalg.lu_solve()#2575 have been implemented and are now available in the latest release v.0.19.0Batch support for
dpnp.scipy.linalg.lu_solve()#2619 has been merged and will be included in the next release.These functions are part of the new
dpnp.scipysubmodule #2603 and mimic the behavior of their SciPy equivalents including full support for all standard arguments and 0-based pivot indexingI am closing this issue.
Feel free to open a new one for any further feature requests.