Add `linalg.block_diag` and sparse equivalent (#576)
* Copy `block_diag` and support functions from `pymc.math`
* Evaluate output in sphinx code example
Co-authored-by:
Ricardo Vieira <28983449+ricardoV94@users.noreply.github.com>
* Test type equivalence with `isinstance` instead of `==`
Co-authored-by:
Ricardo Vieira <28983449+ricardoV94@users.noreply.github.com>
* Typo in test function
* Split `block_diag` into sparse and dense version
Closely follow scipy function signature for `block_diag`
* Use `as_sparse_or_tensor_variable` in `SparseBlockDiagonalMatrix` to allow sparse matrix inputs to `pytensor.sparse.block_diag`
* Test sparse and dense inputs to `pytensor.sparse.block_diag`
* Add numba overload for `pytensor.tensor.slinalg.block_diag`
* add jax overload for `pytensor.tensor.slinalg.block_diag`
* Move stand-alone `block_diag_grad` function into `grad` method
* Add `format` prop to `SparseBlockDiagonalMatrix`
* Use `compare_numba_and_py` in `numba\test_slinalg.py::test_block_diag`
* Add support for Blockwise to `slinalg.block_diag`
* Add gradient test
Remove `Matrix` from `BlockDiagonal` and `SparseBlockDiagonal` `Op` names
Correct errors in docstrings
Move input validation to a shared class method
* Remove `gufunc_signature` from `__props__`
Co-authored-by:
Ricardo Vieira <28983449+ricardoV94@users.noreply.github.com>
* Implement correct `__props__` for subclasses of `BaseBlockMatrix`
---------
Co-authored-by:
Ricardo Vieira <28983449+ricardoV94@users.noreply.github.com>
正在显示
请
注册
或者
登录
后发表评论