Shortcuts

pypose.optim.solver.Cholesky

class pypose.optim.solver.Cholesky(upper=False)[source]

The batched linear solver with Cholesky decomposition.

\[\mathbf{A}_i \bm{x}_i = \mathbf{b}_i, \]

where \(\mathbf{A}_i \in \mathbb{C}^{M \times N}\) and \(\bm{b}_i \in \mathbb{C}^{M \times 1}\) are the \(i\)-th item of batched linear equations. Note that \(\mathbf{A}_i\) has to be a complex Hermitian or a real symmetric positive-definite matrix.

The solution is given by

\[\begin{align*} \bm{L}_i &= \mathrm{cholesky}(\mathbf{A}_i), \\ \bm{x}_i &= \mathrm{cholesky\_solve}(\mathbf{b}_i, \bm{L}_i), \\ \end{align*} \]

where \(\mathrm{cholesky}()\) is the Cholesky decomposition function.

More details go to torch.linalg.cholesky and torch.cholesky_solve.

Parameters:

upper (bool, optional) – whether use an upper triangular matrix in Cholesky decomposition. Default: False.

Examples

>>> import pypose.optim.solver as ppos
>>> A = torch.tensor([[[1.00, 0.10, 0.00], [0.10, 1.00, 0.20], [0.00, 0.20, 1.00]],
                      [[1.00, 0.20, 0.10], [0.20, 1.00, 0.20], [0.10, 0.20, 1.00]]])
>>> b = torch.tensor([[[1.], [2.], [3.]], [[1.], [2.], [3.]]])
>>> solver = ppos.Cholesky()
>>> x = solver(A, b)
tensor([[[0.8632],
         [1.3684],
         [2.7263]],
        [[0.4575],
         [1.3725],
         [2.6797]]])
forward(A, b)[source]
Parameters:
  • A (Tensor) – the input batched tensor.

  • b (Tensor) – the batched tensor on the right hand side.

Returns:

the solved batched tensor.

Return type:

Tensor

Docs

Access documentation for PyPose

View Docs

Tutorials

Get started with tutorials and examples

View Tutorials

Get Started

Find resources and how to start using pypose

View Resources