MCPcopy Create free account
hub / github.com/Open-Quant/openquant / _solve_linear_system

Function _solve_linear_system

python/openquant/feature_diagnostics.py:140–164  ·  view source on GitHub ↗
(a: list[list[float]], b: list[float])

Source from the content-addressed store, hash-verified

138
139 return splits
140
141
142def _dot(a: Sequence[float], b: Sequence[float]) -> float:
143 return sum(x * y for x, y in zip(a, b))
144
145
146def _sigmoid(z: float) -> float:
147 if z >= 0:
148 ez = exp(-z)
149 return 1.0 / (1.0 + ez)
150 ez = exp(z)
151 return ez / (1.0 + ez)
152
153
154def _solve_linear_system(a: list[list[float]], b: list[float]) -> list[float]:
155 n = len(a)
156 aug = [row[:] + [rhs] for row, rhs in zip(a, b)]
157
158 for col in range(n):
159 pivot = max(range(col, n), key=lambda r: abs(aug[r][col]))
160 if abs(aug[pivot][col]) < _EPS:
161 raise ValueError("Singular linear system")
162 if pivot != col:
163 aug[col], aug[pivot] = aug[pivot], aug[col]
164
165 div = aug[col][col]
166 for j in range(col, n + 1):
167 aug[col][j] /= div

Callers 1

Calls 1

maxFunction · 0.85

Tested by

no test coverage detected