Skip to content

Commit b9cb0d0

Browse files
authored
Merge pull request #652 from bashtage/more-typing-v4
TYP: Typing improvements
2 parents 4e9543d + 1c9b344 commit b9cb0d0

File tree

1 file changed

+16
-9
lines changed

1 file changed

+16
-9
lines changed

linearmodels/panel/utility.py

Lines changed: 16 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -97,19 +97,26 @@ def preconditioner(
9797
klass = None
9898
if not isinstance(d, sp.csc_matrix):
9999
klass = d.__class__
100-
d = sp.csc_matrix(d)
101-
elif copy:
102-
d = d.copy()
100+
d_csc = sp.csc_matrix(d)
101+
else:
102+
assert isinstance(d, sp.csc_matrix)
103+
d_csc = d
104+
if copy:
105+
d_csc = d.copy()
103106

104-
cond = cast(linearmodels.typing.data.Float64Array, np.sqrt(d.multiply(d).sum(0)).A1)
105-
locs = np.zeros_like(d.indices)
106-
locs[d.indptr[1:-1]] = 1
107+
cond = cast(
108+
linearmodels.typing.data.Float64Array, np.sqrt(d_csc.multiply(d_csc).sum(0)).A1
109+
)
110+
locs = np.zeros_like(d_csc.indices)
111+
locs[d_csc.indptr[1:-1]] = 1
107112
locs = np.cumsum(locs)
108-
d.data /= np.take(cond, locs)
113+
d_csc.data /= np.take(cond, locs)
109114
if klass is not None:
110-
d = klass(d)
115+
d_out = klass(d_csc)
116+
else:
117+
d_out = d_csc
111118

112-
return d, cond
119+
return d_out, cond
113120

114121

115122
def dummy_matrix(

0 commit comments

Comments
 (0)