camfort-1.0.1: CamFort - Cambridge Fortran infrastructure
Safe HaskellNone
LanguageHaskell2010

Camfort.Specification.Units.InferenceBackend

Synopsis

Documentation

chooseImplicitNames :: [(VV, UnitInfo)] -> [(VV, UnitInfo)] Source #

Create unique names for all of the inferred implicit polymorphic unit variables.

criticalVariables :: Constraints -> [UnitInfo] Source #

Identifies the variables that need to be annotated in order for inference or checking to work.

inconsistentConstraints :: Constraints -> Maybe Constraints Source #

Returns just the list of constraints that were identified as being possible candidates for inconsistency, if there is a problem.

inferVariables :: Constraints -> [(VV, UnitInfo)] Source #

Returns list of formerly-undetermined variables and their units.

shiftTerms :: ([UnitInfo], [UnitInfo]) -> ([UnitInfo], [UnitInfo]) Source #

Shift UnitNames/EAPAbs poly units to the RHS, and all else to the LHS.

flattenConstraints :: Constraints -> [([UnitInfo], [UnitInfo])] Source #

Translate all constraints into a LHS, RHS side of units.

rref :: Matrix Double -> Matrix Double Source #

Returns given matrix transformed into Reduced Row Echelon Form

genUnitAssignments :: Constraints -> [([UnitInfo], UnitInfo)] Source #

Raw units-assignment pairs.

provenance :: Matrix Double -> (Matrix Double, Provenance) Source #

splitNormHNF :: Matrix Double -> (Matrix Double, [Int]) Source #

Break up the problem of solving normHNF on each group of related columns, then bring it all back together.