Skip to content

Commit 9e6da0b

Browse files
authored
🏷️ optimize: stub the remaining private modules (#722)
2 parents 6aa26d2 + 88037a3 commit 9e6da0b

File tree

8 files changed

+294
-0
lines changed

8 files changed

+294
-0
lines changed

scipy-stubs/optimize/_bglu_dense.pyi

Lines changed: 50 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,50 @@
1+
from collections.abc import Callable
2+
from typing import Any, Concatenate, Generic, Never
3+
from typing_extensions import TypeVar
4+
5+
import numpy as np
6+
import optype.numpy as onp
7+
import optype.numpy.compat as npc
8+
9+
_MethodT = TypeVar("_MethodT", bound=Callable[Concatenate[Any, ...], object])
10+
_NumberT_co = TypeVar("_NumberT_co", bound=npc.number, default=Any, covariant=True)
11+
12+
###
13+
14+
__all__ = ["BGLU", "LU"]
15+
16+
def _consider_refactor(method: _MethodT) -> _MethodT: ... # undocumented
17+
18+
class LU(Generic[_NumberT_co]): # undocumented
19+
A: onp.Array2D[_NumberT_co]
20+
B: onp.Array2D[_NumberT_co]
21+
b: onp.Array1D[np.intp]
22+
m: int
23+
n: int
24+
25+
def __init__(self, /, A: onp.Array2D[_NumberT_co], b: onp.Array1D[np.intp]) -> None: ...
26+
def __setstate_cython__(self, /, state: tuple[object, ...]) -> None: ...
27+
def __reduce_cython__(self) -> tuple[Any, ...]: ...
28+
def update(self, /, i: int, j: int) -> None: ...
29+
def solve(self, /, q: onp.ArrayND[npc.number], transposed: bool = False) -> onp.ArrayND[_NumberT_co]: ...
30+
31+
class BGLU(LU[_NumberT_co], Generic[_NumberT_co]): # undocumented
32+
plu: tuple[onp.ArrayND[Any], ...]
33+
L: onp.Array2D[_NumberT_co]
34+
U: onp.Array2D[_NumberT_co]
35+
pi: onp.Array2D[_NumberT_co]
36+
pit: onp.Array1D[np.int_]
37+
ops_list: list[onp.Array2D[np.float64]]
38+
bglu_time: float
39+
solves: int
40+
updates: int
41+
max_updates: int
42+
average_solve_times: list[float]
43+
mast: bool
44+
45+
def __init__(
46+
self, /, A: onp.Array2D[_NumberT_co], b: onp.Array1D[np.intp], max_updates: int = 10, mast: bool = False
47+
) -> None: ...
48+
def refactor(self, /, *args: Never) -> None: ... # *args are needed for stubtest
49+
def update_basis(self, /, i: int, j: int) -> None: ...
50+
def perform_perm(self, /, p: onp.Array1D[np.intp]) -> onp.Array1D[np.intp]: ...

scipy-stubs/optimize/_direct.pyi

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
# defined in scipy/optimize/_directmodule.c
2+
3+
from _typeshed import Incomplete
4+
from collections.abc import Callable
5+
6+
import numpy as np
7+
import optype.numpy as onp
8+
9+
from scipy._lib._ccallback import LowLevelCallable
10+
11+
def direct(
12+
f: Callable[..., Incomplete] | LowLevelCallable,
13+
lv: onp.Array1D[np.float64],
14+
ub: onp.Array1D[np.float64],
15+
f_args: tuple[object, ...],
16+
disp: bool,
17+
magic_eps: float,
18+
max_feval: int,
19+
max_iter: int,
20+
algorithm: str,
21+
fglobal: onp.Array1D[np.float64],
22+
fglobal_reltol: float,
23+
volume_reltol: float,
24+
sigma_reltol: float,
25+
callback: Callable[..., object],
26+
/,
27+
) -> tuple[list[Incomplete], float, int, int, int]: ... # -> (x_seq, minf, ret_code, numfunc, numiter)

scipy-stubs/optimize/_lbfgsb.pyi

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
from _typeshed import Incomplete
2+
3+
import numpy as np
4+
import optype.numpy as onp
5+
6+
def setulb(
7+
m: int,
8+
x: onp.Array1D[np.float64],
9+
l: onp.Array1D[np.float64],
10+
u: onp.Array1D[np.float64],
11+
nbd: onp.Array1D[np.int32 | np.int64],
12+
f: onp.Array0D[np.int32 | np.int64],
13+
g: onp.Array1D[np.int32 | np.int64],
14+
factr: float,
15+
pgtol: float,
16+
wa: onp.Array1D[np.float64],
17+
iwa: onp.Array1D[np.int32 | np.int64],
18+
task: onp.Array1D[np.int32 | np.int64],
19+
lsave: onp.Array1D[np.int32 | np.int64],
20+
isave: onp.Array1D[np.int32 | np.int64],
21+
dsave: onp.Array1D[np.float64],
22+
maxls: int | None,
23+
ln_task: onp.Array1D[np.int32 | np.int64],
24+
) -> tuple[Incomplete, ...]: ...

scipy-stubs/optimize/_minpack.pyi

Lines changed: 72 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,72 @@
1+
from collections.abc import Callable
2+
from typing import Any
3+
4+
import numpy as np
5+
import optype.numpy as onp
6+
7+
def _chkder(
8+
m: int,
9+
n: int,
10+
x: onp.Array1D[np.float64],
11+
fvec: onp.Array1D[np.float64],
12+
fjac: onp.Array2D[np.float64],
13+
ldfjac: int,
14+
xp: onp.Array1D[np.float64],
15+
fvecp: onp.Array1D[np.float64],
16+
mode: int,
17+
err: float,
18+
) -> tuple[int, onp.Array1D[np.float64]]: ... # (good, err)
19+
20+
#
21+
def _hybrd(
22+
fun: Callable[..., onp.Array1D[np.float64]],
23+
x0: onp.Array1D[np.float64],
24+
args: tuple[object, ...],
25+
full_output: bool,
26+
xtol: float,
27+
maxfev: int,
28+
ml: int,
29+
mu: int,
30+
epsfcn: float,
31+
factor: float,
32+
diag: onp.Array1D[np.float64],
33+
) -> tuple[onp.Array1D[np.float64], dict[str, Any], int]: ...
34+
def _hybrj(
35+
fun: Callable[..., onp.Array1D[np.float64]],
36+
Dfun: Callable[..., onp.Array1D[np.float64]],
37+
x0: onp.Array1D[np.float64],
38+
args: tuple[object, ...],
39+
full_output: bool,
40+
col_deriv: bool,
41+
xtol: float,
42+
maxfev: int,
43+
factor: float,
44+
diag: onp.Array1D[np.float64],
45+
) -> tuple[onp.Array1D[np.float64], dict[str, Any], int]: ...
46+
def _lmdif(
47+
fun: Callable[..., onp.Array1D[np.float64]],
48+
x0: onp.Array1D[np.float64],
49+
args: tuple[object, ...],
50+
full_output: bool,
51+
ftol: float,
52+
xtol: float,
53+
gtol: float,
54+
maxfev: int,
55+
epsfcn: float,
56+
factor: float,
57+
diag: onp.Array1D[np.float64],
58+
) -> tuple[onp.Array1D[np.float64], dict[str, Any], int]: ...
59+
def _lmder(
60+
fun: Callable[..., onp.Array1D[np.float64]],
61+
Dfun: Callable[..., onp.Array1D[np.float64]],
62+
x0: onp.Array1D[np.float64],
63+
args: tuple[object, ...],
64+
full_output: bool,
65+
col_deriv: bool,
66+
ftol: float,
67+
xtol: float,
68+
gtol: float,
69+
maxfev: int,
70+
factor: float,
71+
diag: onp.Array1D[np.float64],
72+
) -> tuple[onp.Array1D[np.float64], dict[str, Any], int]: ...

scipy-stubs/optimize/_moduleTNC.pyi

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
# defined in scipy/optimize/tnc/_moduleTNC.pyx
2+
3+
from collections.abc import Callable
4+
5+
import numpy as np
6+
import optype.numpy as onp
7+
8+
def tnc_minimize(
9+
func_and_grad: Callable[..., tuple[float, onp.Array1D[np.float64]]],
10+
x0: onp.Array1D[np.float64],
11+
low: onp.Array1D[np.float64],
12+
up: onp.Array1D[np.float64],
13+
scale: onp.Array1D[np.float64],
14+
offset: onp.Array1D[np.float64],
15+
messages: int,
16+
maxCGit: int,
17+
maxfun: int,
18+
eta: float,
19+
stepmx: float,
20+
accuracy: float,
21+
fmin: float,
22+
ftol: float,
23+
xtol: float,
24+
pgtol: float,
25+
rescale: float,
26+
callback: Callable[..., object] | None = None,
27+
) -> tuple[int, int, int, onp.Array1D[np.float64], float, onp.Array1D[np.float64]]: ... # -> (rc, nfeval, niter, x, f, g)

scipy-stubs/optimize/_pava_pybind.pyi

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
# defined in scipy/optimize/_pava/pava_pybind.cpp
2+
3+
import numpy as np
4+
import optype.numpy as onp
5+
6+
def pava(
7+
xa: onp.Array1D[np.float64], wa: onp.Array1D[np.float64], ra: onp.Array1D[np.intp], /
8+
) -> tuple[onp.Array1D[np.float64], onp.Array1D[np.float64], onp.Array1D[np.intp], np.intp]: ... # -> (x, w, r, b)
Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,37 @@
1+
from typing import Literal, TypeVar
2+
3+
import numpy as np
4+
import optype.numpy as onp
5+
import optype.numpy.compat as npc
6+
7+
from scipy.sparse._base import _spbase
8+
9+
_NumberT = TypeVar("_NumberT", bound=npc.number)
10+
_NumberT2 = TypeVar("_NumberT2", bound=npc.number)
11+
12+
###
13+
14+
def _row_count(A: onp.Array2D[npc.number]) -> onp.Array1D[np.intp]: ...
15+
def _get_densest(A: onp.Array2D[_NumberT], eligibleRows: onp.Array1D[np.bool_]) -> np.intp: ...
16+
def _remove_zero_rows(
17+
A: onp.Array2D[_NumberT], b: onp.Array1D[_NumberT2]
18+
) -> tuple[onp.Array2D[_NumberT], onp.Array1D[_NumberT2], Literal[0, 2], str]: ...
19+
20+
#
21+
def bg_update_dense(
22+
plu: tuple[onp.Array1D[_NumberT], onp.Array1D[_NumberT2]], perm_r: onp.Array1D[np.intp], v: onp.Array1D[npc.number], j: int
23+
) -> tuple[onp.Array1D[_NumberT], onp.Array1D[_NumberT2]]: ...
24+
25+
#
26+
def _remove_redundancy_pivot_dense(
27+
A: onp.Array2D[_NumberT], rhs: onp.Array1D[_NumberT2], true_rank: int | None = None
28+
) -> tuple[onp.Array2D[_NumberT], onp.Array1D[_NumberT2], int, str]: ...
29+
def _remove_redundancy_pivot_sparse(
30+
A: _spbase[_NumberT, tuple[int, int]], rhs: onp.Array1D[_NumberT2]
31+
) -> tuple[onp.Array2D[_NumberT], onp.Array1D[_NumberT2], int, str]: ...
32+
def _remove_redundancy_svd(
33+
A: onp.Array2D[_NumberT], b: onp.Array1D[_NumberT2]
34+
) -> tuple[onp.Array2D[_NumberT], onp.Array1D[_NumberT2], int, str]: ...
35+
def _remove_redundancy_id(
36+
A: onp.Array2D[_NumberT], rhs: onp.Array1D[_NumberT2], rank: int | None = None, randomized: bool = True
37+
) -> tuple[onp.Array2D[_NumberT], onp.Array1D[_NumberT2], int, str]: ...

scipy-stubs/optimize/_zeros.pyi

Lines changed: 49 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,49 @@
1+
# defined in scipy/optimize/zeros.c
2+
3+
from collections.abc import Callable
4+
from typing import Concatenate
5+
6+
def _bisect(
7+
f: Callable[Concatenate[float, ...], float],
8+
a: float,
9+
b: float,
10+
xtol: float,
11+
rtol: float,
12+
iter: int,
13+
xargs: tuple[object, ...],
14+
fulloutput: int,
15+
disp: int = 1,
16+
) -> tuple[float, int, int, int]: ...
17+
def _brenth(
18+
f: Callable[Concatenate[float, ...], float],
19+
a: float,
20+
b: float,
21+
xtol: float,
22+
rtol: float,
23+
iter: int,
24+
xargs: tuple[object, ...],
25+
fulloutput: int,
26+
disp: int = 1,
27+
) -> tuple[float, int, int, int]: ...
28+
def _brentq(
29+
f: Callable[Concatenate[float, ...], float],
30+
a: float,
31+
b: float,
32+
xtol: float,
33+
rtol: float,
34+
iter: int,
35+
xargs: tuple[object, ...],
36+
fulloutput: int,
37+
disp: int = 1,
38+
) -> tuple[float, int, int, int]: ...
39+
def _ridder(
40+
f: Callable[Concatenate[float, ...], float],
41+
a: float,
42+
b: float,
43+
xtol: float,
44+
rtol: float,
45+
iter: int,
46+
xargs: tuple[object, ...],
47+
fulloutput: int,
48+
disp: int = 1,
49+
) -> tuple[float, int, int, int]: ...

0 commit comments

Comments
 (0)