1
- from scipy ._typing import Untyped , UntypedCallable
1
+ from collections .abc import Callable
2
+ from typing import Concatenate , Literal , TypeAlias , TypeVar
3
+
4
+ import numpy as np
5
+ import optype .numpy as onp
2
6
3
7
__all__ = [
4
8
"LineSearchWarning" ,
@@ -9,90 +13,107 @@ __all__ = [
9
13
"scalar_search_wolfe2" ,
10
14
]
11
15
16
+ _Float : TypeAlias = float | np .float64
17
+ _Float1D : TypeAlias = onp .Array1D [np .float64 ]
18
+
19
+ _RT = TypeVar ("_RT" )
20
+ _Fun1D : TypeAlias = Callable [Concatenate [_Float1D , ...], _RT ]
21
+
22
+ ###
23
+
12
24
class LineSearchWarning (RuntimeWarning ): ...
13
25
14
26
def line_search_wolfe1 (
15
- f : UntypedCallable ,
16
- fprime : Untyped ,
17
- xk : Untyped ,
18
- pk : Untyped ,
19
- gfk : Untyped | None = None ,
20
- old_fval : Untyped | None = None ,
21
- old_old_fval : Untyped | None = None ,
22
- args : Untyped = (),
23
- c1 : float = 0.0001 ,
24
- c2 : float = 0.9 ,
25
- amax : int = 50 ,
26
- amin : float = 1e-08 ,
27
- xtol : float = 1e-14 ,
28
- ) -> Untyped : ...
29
- def scalar_search_wolfe1 (
30
- phi : Untyped ,
31
- derphi : Untyped ,
32
- phi0 : Untyped | None = None ,
33
- old_phi0 : Untyped | None = None ,
34
- derphi0 : Untyped | None = None ,
35
- c1 : float = 0.0001 ,
36
- c2 : float = 0.9 ,
37
- amax : int = 50 ,
38
- amin : float = 1e-08 ,
39
- xtol : float = 1e-14 ,
40
- ) -> Untyped : ...
41
-
42
- line_search = line_search_wolfe1
27
+ f : _Fun1D [onp .ToFloat ],
28
+ fprime : _Fun1D [onp .ToFloat1D ],
29
+ xk : onp .ToFloat1D ,
30
+ pk : onp .ToFloat1D ,
31
+ gfk : onp .ToFloat1D | None = None ,
32
+ old_fval : onp .ToFloat | None = None ,
33
+ old_old_fval : onp .ToFloat | None = None ,
34
+ args : tuple [object , ...] = (),
35
+ c1 : onp .ToFloat = 1e-4 ,
36
+ c2 : onp .ToFloat = 0.9 ,
37
+ amax : onp .ToJustInt = 50 ,
38
+ amin : onp .ToFloat = 1e-08 ,
39
+ xtol : onp .ToFloat = 1e-14 ,
40
+ ) -> tuple [_Float | None , int , int , _Float | None , _Float , _Float | None ]: ...
43
41
42
+ # NOTE: exported as `scipy.optimize.line_search`
44
43
def line_search_wolfe2 (
45
- f : UntypedCallable ,
46
- myfprime : Untyped ,
47
- xk : Untyped ,
48
- pk : Untyped ,
49
- gfk : Untyped | None = None ,
50
- old_fval : Untyped | None = None ,
51
- old_old_fval : Untyped | None = None ,
52
- args : Untyped = (),
53
- c1 : float = 0.0001 ,
54
- c2 : float = 0.9 ,
55
- amax : Untyped | None = None ,
56
- extra_condition : Untyped | None = None ,
57
- maxiter : int = 10 ,
58
- ) -> Untyped : ...
59
- def scalar_search_wolfe2 (
60
- phi : Untyped ,
61
- derphi : Untyped ,
62
- phi0 : Untyped | None = None ,
63
- old_phi0 : Untyped | None = None ,
64
- derphi0 : Untyped | None = None ,
65
- c1 : float = 0.0001 ,
66
- c2 : float = 0.9 ,
67
- amax : Untyped | None = None ,
68
- extra_condition : Untyped | None = None ,
69
- maxiter : int = 10 ,
70
- ) -> Untyped : ...
44
+ f : _Fun1D [onp .ToFloat ],
45
+ myfprime : _Fun1D [onp .ToFloat1D ],
46
+ xk : onp .ToFloat1D ,
47
+ pk : onp .ToFloat1D ,
48
+ gfk : onp .ToFloat1D | None = None ,
49
+ old_fval : onp .ToFloat | None = None ,
50
+ old_old_fval : onp .ToFloat | None = None ,
51
+ args : tuple [object , ...] = (),
52
+ c1 : onp .ToFloat = 1e-4 ,
53
+ c2 : onp .ToFloat = 0.9 ,
54
+ amax : onp .ToFloat | None = None ,
55
+ extra_condition : Callable [[float , _Float1D , float , _Float1D ], onp .ToBool ] | None = None ,
56
+ maxiter : onp .ToJustInt = 10 ,
57
+ ) -> tuple [_Float | None , int , int , _Float | None , _Float , _Float | None ]: ...
58
+
59
+ #
71
60
def line_search_armijo (
72
- f : UntypedCallable ,
73
- xk : Untyped ,
74
- pk : Untyped ,
75
- gfk : Untyped ,
76
- old_fval : Untyped ,
77
- args : Untyped = (),
78
- c1 : float = 0.0001 ,
79
- alpha0 : int = 1 ,
80
- ) -> Untyped : ...
61
+ f : _Fun1D [onp .ToFloat ],
62
+ xk : onp .ToFloat1D ,
63
+ pk : onp .ToFloat1D ,
64
+ gfk : onp .ToFloat1D ,
65
+ old_fval : onp .ToFloat ,
66
+ args : tuple [object , ...] = (),
67
+ c1 : onp .ToFloat = 1e-4 ,
68
+ alpha0 : onp .ToFloat = 1 ,
69
+ ) -> tuple [_Float | None , int , _Float ]: ...
70
+
71
+ # undocumented
81
72
def line_search_BFGS (
82
- f : UntypedCallable ,
83
- xk : Untyped ,
84
- pk : Untyped ,
85
- gfk : Untyped ,
86
- old_fval : Untyped ,
87
- args : Untyped = (),
88
- c1 : float = 0.0001 ,
89
- alpha0 : int = 1 ,
90
- ) -> Untyped : ...
73
+ f : _Fun1D [onp .ToFloat ],
74
+ xk : onp .ToFloat1D ,
75
+ pk : onp .ToFloat1D ,
76
+ gfk : onp .ToFloat1D ,
77
+ old_fval : onp .ToFloat ,
78
+ args : tuple [object , ...] = (),
79
+ c1 : onp .ToFloat = 1e-4 ,
80
+ alpha0 : onp .ToFloat = 1 ,
81
+ ) -> tuple [_Float | None , int , Literal [0 ], _Float ]: ...
82
+
83
+ #
84
+ def scalar_search_wolfe1 (
85
+ phi : Callable [[float ], onp .ToFloat ],
86
+ derphi : Callable [[float ], onp .ToFloat ],
87
+ phi0 : onp .ToFloat | None = None ,
88
+ old_phi0 : onp .ToFloat | None = None ,
89
+ derphi0 : onp .ToFloat | None = None ,
90
+ c1 : onp .ToFloat = 1e-4 ,
91
+ c2 : onp .ToFloat = 0.9 ,
92
+ amax : onp .ToJustInt = 50 ,
93
+ amin : onp .ToFloat = 1e-08 ,
94
+ xtol : onp .ToFloat = 1e-14 ,
95
+ ) -> tuple [_Float | None , _Float , _Float ]: ...
96
+
97
+ #
98
+ def scalar_search_wolfe2 (
99
+ phi : Callable [[float ], onp .ToFloat ],
100
+ derphi : Callable [[float ], onp .ToFloat ],
101
+ phi0 : onp .ToFloat | None = None ,
102
+ old_phi0 : onp .ToFloat | None = None ,
103
+ derphi0 : onp .ToFloat | None = None ,
104
+ c1 : onp .ToFloat = 1e-4 ,
105
+ c2 : onp .ToFloat = 0.9 ,
106
+ amax : onp .ToFloat | None = None ,
107
+ extra_condition : Callable [[float , float ], onp .ToBool ] | None = None ,
108
+ maxiter : onp .ToJustInt = 10 ,
109
+ ) -> tuple [_Float | None , _Float , _Float , _Float | None ]: ...
110
+
111
+ # undocumented
91
112
def scalar_search_armijo (
92
- phi : Untyped ,
93
- phi0 : Untyped ,
94
- derphi0 : Untyped ,
95
- c1 : float = 0.0001 ,
96
- alpha0 : int = 1 ,
97
- amin : int = 0 ,
98
- ) -> Untyped : ...
113
+ phi : Callable [[ float ], onp . ToFloat ] ,
114
+ phi0 : onp . ToFloat ,
115
+ derphi0 : onp . ToFloat ,
116
+ c1 : onp . ToFloat = 1e-4 ,
117
+ alpha0 : onp . ToFloat = 1 ,
118
+ amin : onp . ToJustInt = 0 ,
119
+ ) -> tuple [ _Float | None , _Float ] : ...
0 commit comments