You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
add hermitian_decomposition method
given a Hermitian matrix U, returns a matrix A such that U = AA*
use translated GAP source code for BaseChangeCanonical
raise ValueError for non full rank matrices
this method does not work for singular matrices. since we are already computing the rank in the row reduction, we can just check at the end whether the rank is full, and if not exit with a ValueError. this may be overcautious - it's not clear that this won't work for some singular matrices. there are cases where it certainly doesn't work, and we include one in the doctest.
add example for singular case
this example is currently failing and needs to be caught
remove unnecessary import, singularity check
if the matrix `U` is singular, the process will still result in a matrix but it will fail to have the expected property, namely `B*B.H == U`.
Update src/sage/matrix/matrix2.pyx
avoid import, directly call `sqrt` method, don't extend to keep result in `ZZ`
fix example
this was using the output from the `forms` package, when it should be from the GAP source translation.
change examples
there is a failing example due to the fact that the matrix is singular with q=3, and U = matrix(F,[[1,4,7],[4,1,4],[7,4,1]]).
move _cholesky_extended_ff to hidden method
move _cholesky_extended_ff to a separate hidden method, and just call it from inside cholesky if extended=true. add doctests and docs for the method separately. sparse for now, should be expanded upon.
Update src/sage/matrix/matrix2.pyx
add output for GF(3**2) case
this case fails to have a lower triangular decomposition which has been checked by brute force.
Update src/sage/matrix/matrix2.pyx
move two examples over finite fields from tests
the two examples computing the extended Cholesky decomposition over square order finite fields are in TESTS, and should be moved to EXAMPLES.
Update src/sage/matrix/matrix2.pyx
this is better and clarifies that the result of the Cholesky decomposition is lower triangular (and not possibly upper triangular).
Update src/sage/matrix/matrix2.pyx
add single whitespace before `extended` parameter
Update src/sage/matrix/matrix2.pyx
looks good. makes sense to point out the Cholesky decomposition might not exist, given that was our initial difficulty.
3 trailing whitespace
move hermitian_decomposition into cholesky
this method for decomposition a Hermitian matrix U = AA* is similar in spirit to the Cholesky decomposition, but extends it to work over finite fields of square order.
add two examples
add two examples of a Hermitian decomposition, one of which is not upper/lower triangular (so would be impossible with Cholesky decomposition)
Update src/sage/matrix/matrix2.pyx
yes, just forgot to update this
initialize row to -1
Update src/sage/matrix/matrix2.pyx
add word "package" to GAP ``forms``
Update src/sage/matrix/matrix2.pyx
change \ast to * for consistency
Trigger CI tests
use self.__class__ within matrix.pyx file
Trigger CI tests
remove blank line
Update src/sage/matrix/matrix2.pyx
Update src/sage/matrix/matrix2.pyx
Update src/sage/matrix/matrix2.pyx
Update src/sage/matrix/matrix2.pyx
Update src/sage/matrix/matrix2.pyx
use Matrix
handle 1x1 case
Co-Authored-By: Travis Scrimshaw <[email protected]>
0 commit comments