module Numeric.LAPACK.Matrix.Extent ( Extent.C(switchTag), Small, Big, Extent.Measure(switchMeasure), Shape, Size, Measured(switchMeasured), Extent.Extent, Map, Extent.height, Extent.width, Extent.squareSize, Extent.dimensions, Extent.transpose, Extent.fuse, Extent.MultiplyMeasure, Extent.square, toGeneral, fromSquare, fromSquareLiberal, fromLiberalSquare, generalizeTall, generalizeWide, weakenTall, weakenWide, Extent.AppendMode, Extent.appendSame, Extent.appendLeft, Extent.appendRight, Extent.Append, Extent.appendAny, ) where import qualified Numeric.LAPACK.Matrix.Extent.Private as Extent import Numeric.LAPACK.Matrix.Extent.Strict (Map(Map), Measured(..)) import Numeric.LAPACK.Matrix.Extent.Private (C, Measure, Small, Big, Shape, Size) toGeneral :: (Measure meas, C vert, C horiz) => Map meas vert horiz Size Big Big height width toGeneral = Map Extent.toGeneral fromSquare :: (Measured meas vert, Measured meas horiz) => Map Shape Small Small meas vert horiz size size fromSquare = Map Extent.fromSquare fromSquareLiberal :: (Measured meas vert, Measured meas horiz) => Map Shape Small Small meas vert horiz height width fromSquareLiberal = Map Extent.fromSquareLiberal fromLiberalSquare :: (C vert, C horiz) => Map Size Small Small Size vert horiz height width fromLiberalSquare = Map Extent.fromLiberalSquare generalizeTall :: (Measure meas, C vert, C horiz) => Map meas vert Small Size vert horiz height width generalizeTall = Map Extent.generalizeTall generalizeWide :: (Measure meas, C vert, C horiz) => Map meas Small horiz Size vert horiz height width generalizeWide = Map Extent.generalizeWide weakenTall :: (Measured meas horiz, C vert) => Map meas vert Small meas vert horiz height width weakenTall = Map Extent.weakenTall weakenWide :: (Measured meas vert, C horiz) => Map meas Small horiz meas vert horiz height width weakenWide = Map Extent.weakenWide