open import Algebra.Apartness
open import Relation.Binary
open import Algebra.DecidableField
module MatrixDataNormalization.Base {c ℓ₁ ℓ₂} (dField : DecidableField c ℓ₁ ℓ₂) where
open import Algebra
open import Function
open import Data.Nat using (ℕ)
open import Algebra.MatrixData
import MatrixFuncNormalization.ElimZeros.Base as ElimZeros
import MatrixFuncNormalization.NormAfter.AppendIdentity as AppendIdentity
open DecidableField dField renaming (Carrier to F)
open module F = ElimZeros dField using ()
renaming (normalizeData to normalize;
normalizeAndDivideData to normalizeAndDivide) public
module AI = AppendIdentity dField
private variable
m n : ℕ
inverse : Matrix F n m → Matrix F n n
inverse = matrixFunc→Data ∘ AI.inverse ∘ matrixData→Fun