Skip to content

Commit 4c8c849

Browse files
committed
sqrt_transpose in BlockDiagonalLDLT
1 parent 7274429 commit 4c8c849

File tree

1 file changed

+9
-0
lines changed

1 file changed

+9
-0
lines changed

include/albatross/src/linalg/block_diagonal.hpp

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -42,6 +42,8 @@ struct BlockDiagonalLDLT {
4242
sqrt_solve(const Eigen::Matrix<_Scalar, _Rows, _Cols> &rhs,
4343
ThreadPool *pool) const;
4444

45+
BlockDiagonal sqrt_transpose() const;
46+
4547
std::map<size_t, Eigen::Index> block_to_row_map() const;
4648

4749
double log_determinant() const;
@@ -102,6 +104,13 @@ inline Eigen::Matrix<_Scalar, _Rows, _Cols> BlockDiagonalLDLT::sqrt_solve(
102104
return output;
103105
}
104106

107+
inline BlockDiagonal BlockDiagonalLDLT::sqrt_transpose() const {
108+
auto sqrt_transpose_block = [](const auto &b) { return b.sqrt_transpose(); };
109+
BlockDiagonal output;
110+
output.blocks = apply(this->blocks, sqrt_transpose_block);
111+
return output;
112+
}
113+
105114
inline std::map<size_t, Eigen::Index>
106115
BlockDiagonalLDLT::block_to_row_map() const {
107116
Eigen::Index row = 0;

0 commit comments

Comments
 (0)