11 Commits

Author SHA1 Message Date
Peter Hawkins
7a114c8f6a Remove unused malloc/free imports. 2019-01-07 19:20:42 -05:00
Peter Hawkins
1c2cff15d2 Finish implementation of symmetric eigendecomposition on CPU:
* add test case.
* add double and complex64 implementations.

Also add logic to all linalg methods to both coerce arguments to arrays, and to promote to an inexact (float or complex) type if the argument is not inexact.
2019-01-07 19:20:42 -05:00
Peter Hawkins
d3348b9cdd Start work on an implementation of np.linalg.eigh. 2019-01-07 19:20:42 -05:00
Peter Hawkins
06135fa6f5 Implement numpy.linalg.solve and scipy.linalg.solve.
Make Cholesky and TriangularSolve work for complex numbers on CPU. The HLO implementations are broken for complex numbers on GPU/TPU, so no tests enabled for these yet.
2018-12-21 16:29:45 -05:00
Peter Hawkins
a4386457e2 Fix test failures due to type mismatches in linear algebra tests.
Minor code cleanups.
2018-12-21 15:18:34 -05:00
Peter Hawkins
b68c93d37f Implement np.linalg.slogdet.
Change implementation of np.linalg.logdet to call np.linalg.slogdet.

Add support for complex64 LU decomposition.
2018-12-20 22:18:20 -05:00
Peter Hawkins
dfdc2e3806 Add LU decomposition implementation backed by LAPACK on the CPU platform.
Implement np.linalg.det, and scipy.linalg.{lu,lu_factor,det}.

Add missing abstractification to loop arguments.
Implement XLA abstractification rules for AbstractTuple, ConcreteArray, and ShapedArray.
2018-12-20 18:45:34 -05:00
Peter Hawkins
eac96ac239 Fix bugs with bool argument passing; pass PRED values as int32s instead. 2018-12-17 17:17:47 -05:00
Peter Hawkins
0333a98bab Add triangular solve BLAS implementation. 2018-12-17 16:39:19 -05:00
Peter Hawkins
e630fda9ee Add missing copyright notice.
Remove unused BUILD load() statement.
2018-12-17 16:30:27 -05:00
Peter Hawkins
3c388b98f1 Add support for calling LAPACK primitives from SciPy from JAX linalg. 2018-12-17 16:30:27 -05:00