reduce_algorithms

wield.control.algorithms.statespace.dense.reduce_algorithms

Functions

nonzero_test(val)

permute_Ediag_inplace(ABCDE[, Nst, Nco, ...])

Permutes the E matrix to be on the location='upper left' or 'upper right' and as diagonal as possible.

rank_nonzero(val)

rank_nonzeroE(val, N1, N2)

reduce_SVD_inplace(ABCDE, Nst, Nco[, tol])

reduce_diag_inplace(ABCDE, Nst, Nco[, tol, ...])

Details

nonzero_test(val)[source][github]
permute_Ediag_inplace(ABCDE, Nst=None, Nco=None, location='upper left', nonzero_test=<function nonzero_test>, rank_nonzeroE=<function rank_nonzeroE>)[source][github]

Permutes the E matrix to be on the location=’upper left’ or ‘upper right’ and as diagonal as possible.

return ABCDE, and then Ndiag, Ndiag + NcoM, Ndiag + NstM which are the boundaries of the diagonal block and the nondiagonal nonzero block

TODO, should output the boundary TODO, algorithm could use swaps rather than percolates

rank_nonzero(val)[source][github]
rank_nonzeroE(val, N1, N2)[source][github]
reduce_SVD_inplace(ABCDE, Nst, Nco, tol=1e-10)[source][github]
reduce_diag_inplace(ABCDE, Nst, Nco, tol=1e-10, nonzero_test=<function nonzero_test>, rank_nonzero=<function rank_nonzero>)[source][github]