141 lines
2.6 KiB
Python
141 lines
2.6 KiB
Python
from typing import Final, TypedDict, type_check_only
|
|
|
|
import numpy as np
|
|
from numpy._typing import NDArray
|
|
|
|
from ._linalg import fortran_int
|
|
|
|
###
|
|
|
|
@type_check_only
|
|
class _GELSD(TypedDict):
|
|
m: int
|
|
n: int
|
|
nrhs: int
|
|
lda: int
|
|
ldb: int
|
|
rank: int
|
|
lwork: int
|
|
info: int
|
|
|
|
@type_check_only
|
|
class _DGELSD(_GELSD):
|
|
dgelsd_: int
|
|
rcond: float
|
|
|
|
@type_check_only
|
|
class _ZGELSD(_GELSD):
|
|
zgelsd_: int
|
|
|
|
@type_check_only
|
|
class _GEQRF(TypedDict):
|
|
m: int
|
|
n: int
|
|
lda: int
|
|
lwork: int
|
|
info: int
|
|
|
|
@type_check_only
|
|
class _DGEQRF(_GEQRF):
|
|
dgeqrf_: int
|
|
|
|
@type_check_only
|
|
class _ZGEQRF(_GEQRF):
|
|
zgeqrf_: int
|
|
|
|
@type_check_only
|
|
class _DORGQR(TypedDict):
|
|
dorgqr_: int
|
|
info: int
|
|
|
|
@type_check_only
|
|
class _ZUNGQR(TypedDict):
|
|
zungqr_: int
|
|
info: int
|
|
|
|
###
|
|
|
|
_ilp64: Final[bool] = ...
|
|
|
|
def dgelsd(
|
|
m: int,
|
|
n: int,
|
|
nrhs: int,
|
|
a: NDArray[np.float64],
|
|
lda: int,
|
|
b: NDArray[np.float64],
|
|
ldb: int,
|
|
s: NDArray[np.float64],
|
|
rcond: float,
|
|
rank: int,
|
|
work: NDArray[np.float64],
|
|
lwork: int,
|
|
iwork: NDArray[fortran_int],
|
|
info: int,
|
|
) -> _DGELSD: ...
|
|
def zgelsd(
|
|
m: int,
|
|
n: int,
|
|
nrhs: int,
|
|
a: NDArray[np.complex128],
|
|
lda: int,
|
|
b: NDArray[np.complex128],
|
|
ldb: int,
|
|
s: NDArray[np.float64],
|
|
rcond: float,
|
|
rank: int,
|
|
work: NDArray[np.complex128],
|
|
lwork: int,
|
|
rwork: NDArray[np.float64],
|
|
iwork: NDArray[fortran_int],
|
|
info: int,
|
|
) -> _ZGELSD: ...
|
|
|
|
#
|
|
def dgeqrf(
|
|
m: int,
|
|
n: int,
|
|
a: NDArray[np.float64], # in/out, shape: (lda, n)
|
|
lda: int,
|
|
tau: NDArray[np.float64], # out, shape: (min(m, n),)
|
|
work: NDArray[np.float64], # out, shape: (max(1, lwork),)
|
|
lwork: int,
|
|
info: int, # out
|
|
) -> _DGEQRF: ...
|
|
def zgeqrf(
|
|
m: int,
|
|
n: int,
|
|
a: NDArray[np.complex128], # in/out, shape: (lda, n)
|
|
lda: int,
|
|
tau: NDArray[np.complex128], # out, shape: (min(m, n),)
|
|
work: NDArray[np.complex128], # out, shape: (max(1, lwork),)
|
|
lwork: int,
|
|
info: int, # out
|
|
) -> _ZGEQRF: ...
|
|
|
|
#
|
|
def dorgqr(
|
|
m: int, # >=0
|
|
n: int, # m >= n >= 0
|
|
k: int, # n >= k >= 0
|
|
a: NDArray[np.float64], # in/out, shape: (lda, n)
|
|
lda: int, # >= max(1, m)
|
|
tau: NDArray[np.float64], # in, shape: (k,)
|
|
work: NDArray[np.float64], # out, shape: (max(1, lwork),)
|
|
lwork: int,
|
|
info: int, # out
|
|
) -> _DORGQR: ...
|
|
def zungqr(
|
|
m: int,
|
|
n: int,
|
|
k: int,
|
|
a: NDArray[np.complex128],
|
|
lda: int,
|
|
tau: NDArray[np.complex128],
|
|
work: NDArray[np.complex128],
|
|
lwork: int,
|
|
info: int,
|
|
) -> _ZUNGQR: ...
|
|
|
|
#
|
|
def xerbla(srname: object, info: int) -> None: ...
|