diff --git a/src/Solve.jl b/src/Solve.jl index e4db45cbf2..c1641f594d 100644 --- a/src/Solve.jl +++ b/src/Solve.jl @@ -97,7 +97,6 @@ function matrix_normal_form_type(R::Ring) end matrix_normal_form_type(::Field) = RREFTrait() -matrix_normal_form_type(::Matrix{Rational{BigInt}}) = FFLUTrait() # The fflu approach is the fastest over a fraction field (see benchmarks on PR 661) matrix_normal_form_type(::FracField) = FFLUTrait() diff --git a/src/generic/MatRing.jl b/src/generic/MatRing.jl index 9883e1ad61..d2fdc1645a 100644 --- a/src/generic/MatRing.jl +++ b/src/generic/MatRing.jl @@ -58,10 +58,12 @@ end function AbstractAlgebra.can_solve_with_solution(M::MatRingElem{T}, B::MatRingElem{T}) where {T <: RingElement} check_parent(M, B) R = base_ring(M) - MS = MatSpaceElem{T}(R, M.entries) # convert to ordinary matrix - BS = MatSpaceElem{T}(R, B.entries) + # TODO: Once #1955 is resolved, the conversion to matrix and back to MatRingElem + # should be done better + MS = matrix(R, M.entries) # convert to ordinary matrix + BS = matrix(R, B.entries) flag, S = can_solve_with_solution(MS, BS) - SA = MatRingElem{T}(R, S.entries) + SA = MatRingElem{T}(R, Array(S)) return flag, SA end