module Numeric.LAPACK.Orthogonal.Householder (
Plain.Householder,
Plain.General,
Plain.Tall,
Plain.Wide,
Plain.Square,
Plain.LiberalSquare,
mapExtent,
fromMatrix,
Plain.determinant,
Plain.determinantAbsolute,
leastSquares,
minimumNorm,
Mod.Transposition(..),
Mod.Conjugation(..),
extractQ,
extractR,
multiplyQ,
tallExtractQ,
tallExtractR,
tallMultiplyQ,
tallMultiplyQAdjoint,
tallMultiplyR,
tallSolveR,
) where
import qualified Numeric.LAPACK.Orthogonal.Plain as Plain
import qualified Numeric.LAPACK.Matrix.Array.Unpacked as Unpacked
import qualified Numeric.LAPACK.Matrix.Array.Private as ArrMatrix
import qualified Numeric.LAPACK.Matrix.Extent.Strict as ExtentStrict
import qualified Numeric.LAPACK.Matrix.Extent as Extent
import qualified Numeric.LAPACK.Matrix.Modifier as Mod
import qualified Numeric.LAPACK.Shape as ExtShape
import Numeric.LAPACK.Orthogonal.Plain (Householder)
import Numeric.LAPACK.Matrix.Array.Mosaic (Upper)
import Numeric.LAPACK.Matrix.Array.Private (Full, Square)
import Numeric.LAPACK.Matrix.Modifier (Transposition, Conjugation)
import qualified Numeric.Netlib.Class as Class
import qualified Data.Array.Comfort.Shape as Shape
mapExtent ::
(Extent.Measure measA, Extent.C vertA, Extent.C horizA) =>
(Extent.Measure measB, Extent.C vertB, Extent.C horizB) =>
Extent.Map measA vertA horizA measB vertB horizB height width ->
Householder measA vertA horizA height width a ->
Householder measB vertB horizB height width a
mapExtent :: Map measA vertA horizA measB vertB horizB height width
-> Householder measA vertA horizA height width a
-> Householder measB vertB horizB height width a
mapExtent = Map measA vertA horizA measB vertB horizB height width
-> Householder measA vertA horizA height width a
-> Householder measB vertB horizB height width a
forall measA vertA horizA measB vertB horizB height width lower
upper a.
(Measure measA, C vertA, C horizA, Measure measB, C vertB,
C horizB) =>
Map measA vertA horizA measB vertB horizB height width
-> HouseholderFlex lower upper measA vertA horizA height width a
-> HouseholderFlex lower upper measB vertB horizB height width a
Plain.mapExtent (Map measA vertA horizA measB vertB horizB height width
-> Householder measA vertA horizA height width a
-> Householder measB vertB horizB height width a)
-> (Map measA vertA horizA measB vertB horizB height width
-> Map measA vertA horizA measB vertB horizB height width)
-> Map measA vertA horizA measB vertB horizB height width
-> Householder measA vertA horizA height width a
-> Householder measB vertB horizB height width a
forall b c a. (b -> c) -> (a -> b) -> a -> c
. Map measA vertA horizA measB vertB horizB height width
-> Map measA vertA horizA measB vertB horizB height width
forall measA vertA horizA measB vertB horizB height width.
Map measA vertA horizA measB vertB horizB height width
-> Map measA vertA horizA measB vertB horizB height width
ExtentStrict.apply
fromMatrix ::
(Extent.Measure meas, Extent.C vert, Extent.C horiz,
Shape.C height, Shape.C width, Class.Floating a) =>
Full meas vert horiz height width a ->
Householder meas vert horiz height width a
fromMatrix :: Full meas vert horiz height width a
-> Householder meas vert horiz height width a
fromMatrix = Full meas vert horiz height width a
-> Householder meas vert horiz height width a
forall meas vert horiz height width a.
(Measure meas, C vert, C horiz, C height, C width, Floating a) =>
Full meas vert horiz height width a
-> Householder meas vert horiz height width a
Plain.fromMatrix (Full meas vert horiz height width a
-> Householder meas vert horiz height width a)
-> (Full meas vert horiz height width a
-> Full meas vert horiz height width a)
-> Full meas vert horiz height width a
-> Householder meas vert horiz height width a
forall b c a. (b -> c) -> (a -> b) -> a -> c
. Full meas vert horiz height width a
-> Full meas vert horiz height width a
forall pack property lower upper meas vert horiz height width a.
ToPlain pack property lower upper meas vert horiz height width =>
ArrayMatrix
pack property lower upper meas vert horiz height width a
-> PlainArray
pack property lower upper meas vert horiz height width a
ArrMatrix.toVector
leastSquares ::
(Extent.Measure meas, Extent.C vert, Extent.C horiz,
Shape.C height, Eq height, Shape.C width, Eq width, Shape.C nrhs,
Class.Floating a) =>
Householder meas horiz Extent.Small height width a ->
Full meas vert horiz height nrhs a ->
Full meas vert horiz width nrhs a
leastSquares :: Householder meas horiz Small height width a
-> Full meas vert horiz height nrhs a
-> Full meas vert horiz width nrhs a
leastSquares = (Array (Full meas vert horiz height nrhs) a
-> Array (Full meas vert horiz width nrhs) a)
-> Full meas vert horiz height nrhs a
-> Full meas vert horiz width nrhs a
forall packA propA lowerA upperA measA vertA horizA heightA widthA
packB propB lowerB upperB measB vertB horizB heightB widthB a b.
(ToPlain
packA propA lowerA upperA measA vertA horizA heightA widthA,
FromPlain
packB propB lowerB upperB measB vertB horizB heightB widthB) =>
(PlainArray
packA propA lowerA upperA measA vertA horizA heightA widthA a
-> PlainArray
packB propB lowerB upperB measB vertB horizB heightB widthB b)
-> ArrayMatrix
packA propA lowerA upperA measA vertA horizA heightA widthA a
-> ArrayMatrix
packB propB lowerB upperB measB vertB horizB heightB widthB b
ArrMatrix.lift1 ((Array (Full meas vert horiz height nrhs) a
-> Array (Full meas vert horiz width nrhs) a)
-> Full meas vert horiz height nrhs a
-> Full meas vert horiz width nrhs a)
-> (Householder meas horiz Small height width a
-> Array (Full meas vert horiz height nrhs) a
-> Array (Full meas vert horiz width nrhs) a)
-> Householder meas horiz Small height width a
-> Full meas vert horiz height nrhs a
-> Full meas vert horiz width nrhs a
forall b c a. (b -> c) -> (a -> b) -> a -> c
. Householder meas horiz Small height width a
-> Array (Full meas vert horiz height nrhs) a
-> Array (Full meas vert horiz width nrhs) a
forall meas vert horiz height width nrhs a lower upper.
(Measure meas, C vert, C horiz, C height, Eq height, C width,
C nrhs, Floating a) =>
HouseholderFlex lower upper meas horiz Small height width a
-> Full meas vert horiz height nrhs a
-> Full meas vert horiz width nrhs a
Plain.leastSquares
minimumNorm ::
(Extent.Measure meas, Extent.C vert, Extent.C horiz,
Shape.C height, Eq height, Shape.C width, Eq width, Shape.C nrhs,
Class.Floating a) =>
Householder meas vert Extent.Small width height a ->
Full meas vert horiz height nrhs a ->
Full meas vert horiz width nrhs a
minimumNorm :: Householder meas vert Small width height a
-> Full meas vert horiz height nrhs a
-> Full meas vert horiz width nrhs a
minimumNorm = (Array (Full meas vert horiz height nrhs) a
-> Array (Full meas vert horiz width nrhs) a)
-> Full meas vert horiz height nrhs a
-> Full meas vert horiz width nrhs a
forall packA propA lowerA upperA measA vertA horizA heightA widthA
packB propB lowerB upperB measB vertB horizB heightB widthB a b.
(ToPlain
packA propA lowerA upperA measA vertA horizA heightA widthA,
FromPlain
packB propB lowerB upperB measB vertB horizB heightB widthB) =>
(PlainArray
packA propA lowerA upperA measA vertA horizA heightA widthA a
-> PlainArray
packB propB lowerB upperB measB vertB horizB heightB widthB b)
-> ArrayMatrix
packA propA lowerA upperA measA vertA horizA heightA widthA a
-> ArrayMatrix
packB propB lowerB upperB measB vertB horizB heightB widthB b
ArrMatrix.lift1 ((Array (Full meas vert horiz height nrhs) a
-> Array (Full meas vert horiz width nrhs) a)
-> Full meas vert horiz height nrhs a
-> Full meas vert horiz width nrhs a)
-> (Householder meas vert Small width height a
-> Array (Full meas vert horiz height nrhs) a
-> Array (Full meas vert horiz width nrhs) a)
-> Householder meas vert Small width height a
-> Full meas vert horiz height nrhs a
-> Full meas vert horiz width nrhs a
forall b c a. (b -> c) -> (a -> b) -> a -> c
. Householder meas vert Small width height a
-> Array (Full meas vert horiz height nrhs) a
-> Array (Full meas vert horiz width nrhs) a
forall meas vert horiz height width nrhs a lower upper.
(Measure meas, C vert, C horiz, C height, Eq height, C width,
C nrhs, Floating a) =>
HouseholderFlex lower upper meas vert Small width height a
-> Full meas vert horiz height nrhs a
-> Full meas vert horiz width nrhs a
Plain.minimumNorm
extractQ ::
(Extent.Measure meas, Extent.C vert, Extent.C horiz,
ExtShape.Permutable height, Shape.C width, Class.Floating a) =>
Householder meas vert horiz height width a -> Square height a
= Array (Full Shape Small Small height height) a -> Square height a
forall pack prop lower upper meas vert horiz height width a.
FromPlain pack prop lower upper meas vert horiz height width =>
PlainArray pack prop lower upper meas vert horiz height width a
-> ArrayMatrix pack prop lower upper meas vert horiz height width a
ArrMatrix.lift0 (Array (Full Shape Small Small height height) a -> Square height a)
-> (Householder meas vert horiz height width a
-> Array (Full Shape Small Small height height) a)
-> Householder meas vert horiz height width a
-> Square height a
forall b c a. (b -> c) -> (a -> b) -> a -> c
. Householder meas vert horiz height width a
-> Array (Full Shape Small Small height height) a
forall meas vert horiz height width a.
(Measure meas, C vert, C horiz, C height, C width, Floating a) =>
Householder meas vert horiz height width a -> Square height a
Plain.extractQ
tallExtractQ ::
(Extent.Measure meas, Extent.C vert,
Shape.C height, ExtShape.Permutable width, Class.Floating a) =>
Householder meas vert Extent.Small height width a ->
Full meas vert Extent.Small height width a
= Array (Full meas vert Small height width) a
-> Full meas vert Small height width a
forall pack prop lower upper meas vert horiz height width a.
FromPlain pack prop lower upper meas vert horiz height width =>
PlainArray pack prop lower upper meas vert horiz height width a
-> ArrayMatrix pack prop lower upper meas vert horiz height width a
ArrMatrix.lift0 (Array (Full meas vert Small height width) a
-> Full meas vert Small height width a)
-> (Householder meas vert Small height width a
-> Array (Full meas vert Small height width) a)
-> Householder meas vert Small height width a
-> Full meas vert Small height width a
forall b c a. (b -> c) -> (a -> b) -> a -> c
. Householder meas vert Small height width a
-> Array (Full meas vert Small height width) a
forall meas vert height width a.
(Measure meas, C vert, C height, C width, Floating a) =>
Householder meas vert Small height width a
-> Full meas vert Small height width a
Plain.tallExtractQ
tallMultiplyQ ::
(Extent.Measure meas, Extent.C vert, Extent.C horiz,
ExtShape.Permutable height, Eq height, Shape.C width, Shape.C fuse, Eq fuse,
Class.Floating a) =>
Householder meas vert Extent.Small height fuse a ->
Full meas vert horiz fuse width a ->
Full meas vert horiz height width a
tallMultiplyQ :: Householder meas vert Small height fuse a
-> Full meas vert horiz fuse width a
-> Full meas vert horiz height width a
tallMultiplyQ = (Array (Full meas vert horiz fuse width) a
-> Array (Full meas vert horiz height width) a)
-> Full meas vert horiz fuse width a
-> Full meas vert horiz height width a
forall packA propA lowerA upperA measA vertA horizA heightA widthA
packB propB lowerB upperB measB vertB horizB heightB widthB a b.
(ToPlain
packA propA lowerA upperA measA vertA horizA heightA widthA,
FromPlain
packB propB lowerB upperB measB vertB horizB heightB widthB) =>
(PlainArray
packA propA lowerA upperA measA vertA horizA heightA widthA a
-> PlainArray
packB propB lowerB upperB measB vertB horizB heightB widthB b)
-> ArrayMatrix
packA propA lowerA upperA measA vertA horizA heightA widthA a
-> ArrayMatrix
packB propB lowerB upperB measB vertB horizB heightB widthB b
ArrMatrix.lift1 ((Array (Full meas vert horiz fuse width) a
-> Array (Full meas vert horiz height width) a)
-> Full meas vert horiz fuse width a
-> Full meas vert horiz height width a)
-> (Householder meas vert Small height fuse a
-> Array (Full meas vert horiz fuse width) a
-> Array (Full meas vert horiz height width) a)
-> Householder meas vert Small height fuse a
-> Full meas vert horiz fuse width a
-> Full meas vert horiz height width a
forall b c a. (b -> c) -> (a -> b) -> a -> c
. Householder meas vert Small height fuse a
-> Array (Full meas vert horiz fuse width) a
-> Array (Full meas vert horiz height width) a
forall meas vert horiz height width fuse a lower upper.
(Measure meas, C vert, C horiz, C height, Eq height, C width,
C fuse, Eq fuse, Floating a) =>
HouseholderFlex lower upper meas vert Small height fuse a
-> Full meas vert horiz fuse width a
-> Full meas vert horiz height width a
Plain.tallMultiplyQ
tallMultiplyQAdjoint ::
(Extent.Measure meas, Extent.C vert, Extent.C horiz,
ExtShape.Permutable height, Shape.C width, Shape.C fuse, Eq fuse,
Class.Floating a) =>
Householder meas horiz Extent.Small fuse height a ->
Full meas vert horiz fuse width a ->
Full meas vert horiz height width a
tallMultiplyQAdjoint :: Householder meas horiz Small fuse height a
-> Full meas vert horiz fuse width a
-> Full meas vert horiz height width a
tallMultiplyQAdjoint = (Array (Full meas vert horiz fuse width) a
-> Array (Full meas vert horiz height width) a)
-> Full meas vert horiz fuse width a
-> Full meas vert horiz height width a
forall packA propA lowerA upperA measA vertA horizA heightA widthA
packB propB lowerB upperB measB vertB horizB heightB widthB a b.
(ToPlain
packA propA lowerA upperA measA vertA horizA heightA widthA,
FromPlain
packB propB lowerB upperB measB vertB horizB heightB widthB) =>
(PlainArray
packA propA lowerA upperA measA vertA horizA heightA widthA a
-> PlainArray
packB propB lowerB upperB measB vertB horizB heightB widthB b)
-> ArrayMatrix
packA propA lowerA upperA measA vertA horizA heightA widthA a
-> ArrayMatrix
packB propB lowerB upperB measB vertB horizB heightB widthB b
ArrMatrix.lift1 ((Array (Full meas vert horiz fuse width) a
-> Array (Full meas vert horiz height width) a)
-> Full meas vert horiz fuse width a
-> Full meas vert horiz height width a)
-> (Householder meas horiz Small fuse height a
-> Array (Full meas vert horiz fuse width) a
-> Array (Full meas vert horiz height width) a)
-> Householder meas horiz Small fuse height a
-> Full meas vert horiz fuse width a
-> Full meas vert horiz height width a
forall b c a. (b -> c) -> (a -> b) -> a -> c
. Householder meas horiz Small fuse height a
-> Array (Full meas vert horiz fuse width) a
-> Array (Full meas vert horiz height width) a
forall meas vert horiz height width fuse a lower upper.
(Measure meas, C vert, C horiz, C height, C width, C fuse, Eq fuse,
Floating a) =>
HouseholderFlex lower upper meas horiz Small fuse height a
-> Full meas vert horiz fuse width a
-> Full meas vert horiz height width a
Plain.tallMultiplyQAdjoint
multiplyQ ::
(Extent.Measure measA, Extent.C vertA, Extent.C horizA, Shape.C widthA,
Extent.Measure measB, Extent.C vertB, Extent.C horizB, Shape.C widthB,
ExtShape.Permutable height, Eq height, Class.Floating a) =>
Transposition -> Conjugation ->
Householder measA vertA horizA height widthA a ->
Full measB vertB horizB height widthB a ->
Full measB vertB horizB height widthB a
multiplyQ :: Transposition
-> Conjugation
-> Householder measA vertA horizA height widthA a
-> Full measB vertB horizB height widthB a
-> Full measB vertB horizB height widthB a
multiplyQ Transposition
transposed Conjugation
conjugated =
(Array (Full measB vertB horizB height widthB) a
-> Array (Full measB vertB horizB height widthB) a)
-> Full measB vertB horizB height widthB a
-> Full measB vertB horizB height widthB a
forall packA propA lowerA upperA measA vertA horizA heightA widthA
packB propB lowerB upperB measB vertB horizB heightB widthB a b.
(ToPlain
packA propA lowerA upperA measA vertA horizA heightA widthA,
FromPlain
packB propB lowerB upperB measB vertB horizB heightB widthB) =>
(PlainArray
packA propA lowerA upperA measA vertA horizA heightA widthA a
-> PlainArray
packB propB lowerB upperB measB vertB horizB heightB widthB b)
-> ArrayMatrix
packA propA lowerA upperA measA vertA horizA heightA widthA a
-> ArrayMatrix
packB propB lowerB upperB measB vertB horizB heightB widthB b
ArrMatrix.lift1 ((Array (Full measB vertB horizB height widthB) a
-> Array (Full measB vertB horizB height widthB) a)
-> Full measB vertB horizB height widthB a
-> Full measB vertB horizB height widthB a)
-> (Householder measA vertA horizA height widthA a
-> Array (Full measB vertB horizB height widthB) a
-> Array (Full measB vertB horizB height widthB) a)
-> Householder measA vertA horizA height widthA a
-> Full measB vertB horizB height widthB a
-> Full measB vertB horizB height widthB a
forall b c a. (b -> c) -> (a -> b) -> a -> c
. Transposition
-> Conjugation
-> Householder measA vertA horizA height widthA a
-> Array (Full measB vertB horizB height widthB) a
-> Array (Full measB vertB horizB height widthB) a
forall measA vertA horizA widthA measB vertB horizB widthB height a
lower upper.
(Measure measA, C vertA, C horizA, C widthA, Measure measB,
C vertB, C horizB, C widthB, C height, Eq height, Floating a) =>
Transposition
-> Conjugation
-> HouseholderFlex lower upper measA vertA horizA height widthA a
-> Full measB vertB horizB height widthB a
-> Full measB vertB horizB height widthB a
Plain.multiplyQ Transposition
transposed Conjugation
conjugated
extractR ::
(Extent.Measure meas, Extent.C vert, Extent.C horiz,
ExtShape.Permutable height, Shape.C width, Class.Floating a) =>
Householder meas vert horiz height width a ->
Unpacked.UpperTrapezoid meas vert horiz height width a
= FullArray meas vert horiz height width a
-> UpperTrapezoid meas vert horiz height width a
forall propertyA lowerA upperA measA vertA horizA heightA widthA a.
(Property propertyA, Strip lowerA, Strip upperA) =>
FullArray measA vertA horizA heightA widthA a
-> UnpackedMatrix
propertyA lowerA upperA measA vertA horizA heightA widthA a
ArrMatrix.liftUnpacked0 (FullArray meas vert horiz height width a
-> UpperTrapezoid meas vert horiz height width a)
-> (Householder meas vert horiz height width a
-> FullArray meas vert horiz height width a)
-> Householder meas vert horiz height width a
-> UpperTrapezoid meas vert horiz height width a
forall b c a. (b -> c) -> (a -> b) -> a -> c
. Householder meas vert horiz height width a
-> FullArray meas vert horiz height width a
forall meas vert horiz height width a lower upper.
(Measure meas, C vert, C horiz, C height, C width, Floating a) =>
HouseholderFlex lower upper meas vert horiz height width a
-> Full meas vert horiz height width a
Plain.extractR
tallExtractR ::
(Extent.Measure meas, Extent.C vert,
Shape.C height, ExtShape.Permutable width, Class.Floating a) =>
Householder meas vert Extent.Small height width a -> Upper width a
= Array (UpperTriangularP Packed width) a -> Upper width a
forall pack prop lower upper meas vert horiz height width a.
FromPlain pack prop lower upper meas vert horiz height width =>
PlainArray pack prop lower upper meas vert horiz height width a
-> ArrayMatrix pack prop lower upper meas vert horiz height width a
ArrMatrix.lift0 (Array (UpperTriangularP Packed width) a -> Upper width a)
-> (Householder meas vert Small height width a
-> Array (UpperTriangularP Packed width) a)
-> Householder meas vert Small height width a
-> Upper width a
forall b c a. (b -> c) -> (a -> b) -> a -> c
. Householder meas vert Small height width a
-> Array (UpperTriangularP Packed width) a
forall meas vert height width a.
(Measure meas, C vert, C height, C width, Floating a) =>
Householder meas vert Small height width a -> Upper width a
Plain.tallExtractR
tallMultiplyR ::
(Extent.Measure measA, Extent.C vertA,
Extent.Measure meas, Extent.C vert, Extent.C horiz,
ExtShape.Permutable height, Eq height,
Shape.C heightA, Shape.C widthB, Class.Floating a) =>
Transposition ->
Householder measA vertA Extent.Small heightA height a ->
Full meas vert horiz height widthB a ->
Full meas vert horiz height widthB a
tallMultiplyR :: Transposition
-> Householder measA vertA Small heightA height a
-> Full meas vert horiz height widthB a
-> Full meas vert horiz height widthB a
tallMultiplyR Transposition
transposed = (Array (Full meas vert horiz height widthB) a
-> Array (Full meas vert horiz height widthB) a)
-> Full meas vert horiz height widthB a
-> Full meas vert horiz height widthB a
forall packA propA lowerA upperA measA vertA horizA heightA widthA
packB propB lowerB upperB measB vertB horizB heightB widthB a b.
(ToPlain
packA propA lowerA upperA measA vertA horizA heightA widthA,
FromPlain
packB propB lowerB upperB measB vertB horizB heightB widthB) =>
(PlainArray
packA propA lowerA upperA measA vertA horizA heightA widthA a
-> PlainArray
packB propB lowerB upperB measB vertB horizB heightB widthB b)
-> ArrayMatrix
packA propA lowerA upperA measA vertA horizA heightA widthA a
-> ArrayMatrix
packB propB lowerB upperB measB vertB horizB heightB widthB b
ArrMatrix.lift1 ((Array (Full meas vert horiz height widthB) a
-> Array (Full meas vert horiz height widthB) a)
-> Full meas vert horiz height widthB a
-> Full meas vert horiz height widthB a)
-> (Householder measA vertA Small heightA height a
-> Array (Full meas vert horiz height widthB) a
-> Array (Full meas vert horiz height widthB) a)
-> Householder measA vertA Small heightA height a
-> Full meas vert horiz height widthB a
-> Full meas vert horiz height widthB a
forall b c a. (b -> c) -> (a -> b) -> a -> c
. Transposition
-> Householder measA vertA Small heightA height a
-> Array (Full meas vert horiz height widthB) a
-> Array (Full meas vert horiz height widthB) a
forall measA vertA meas vert horiz height heightA widthB a lower
upper.
(Measure measA, C vertA, Measure meas, C vert, C horiz, C height,
Eq height, C heightA, C widthB, Floating a) =>
Transposition
-> HouseholderFlex lower upper measA vertA Small heightA height a
-> Full meas vert horiz height widthB a
-> Full meas vert horiz height widthB a
Plain.tallMultiplyR Transposition
transposed
tallSolveR ::
(Extent.Measure measA, Extent.C vertA,
Extent.Measure meas, Extent.C vert, Extent.C horiz,
Shape.C height, ExtShape.Permutable width, Eq width, Shape.C nrhs,
Class.Floating a) =>
Transposition -> Conjugation ->
Householder measA vertA Extent.Small height width a ->
Full meas vert horiz width nrhs a -> Full meas vert horiz width nrhs a
tallSolveR :: Transposition
-> Conjugation
-> Householder measA vertA Small height width a
-> Full meas vert horiz width nrhs a
-> Full meas vert horiz width nrhs a
tallSolveR Transposition
transposed Conjugation
conjugated =
(Array (Full meas vert horiz width nrhs) a
-> Array (Full meas vert horiz width nrhs) a)
-> Full meas vert horiz width nrhs a
-> Full meas vert horiz width nrhs a
forall packA propA lowerA upperA measA vertA horizA heightA widthA
packB propB lowerB upperB measB vertB horizB heightB widthB a b.
(ToPlain
packA propA lowerA upperA measA vertA horizA heightA widthA,
FromPlain
packB propB lowerB upperB measB vertB horizB heightB widthB) =>
(PlainArray
packA propA lowerA upperA measA vertA horizA heightA widthA a
-> PlainArray
packB propB lowerB upperB measB vertB horizB heightB widthB b)
-> ArrayMatrix
packA propA lowerA upperA measA vertA horizA heightA widthA a
-> ArrayMatrix
packB propB lowerB upperB measB vertB horizB heightB widthB b
ArrMatrix.lift1 ((Array (Full meas vert horiz width nrhs) a
-> Array (Full meas vert horiz width nrhs) a)
-> Full meas vert horiz width nrhs a
-> Full meas vert horiz width nrhs a)
-> (Householder measA vertA Small height width a
-> Array (Full meas vert horiz width nrhs) a
-> Array (Full meas vert horiz width nrhs) a)
-> Householder measA vertA Small height width a
-> Full meas vert horiz width nrhs a
-> Full meas vert horiz width nrhs a
forall b c a. (b -> c) -> (a -> b) -> a -> c
. Transposition
-> Conjugation
-> Householder measA vertA Small height width a
-> Array (Full meas vert horiz width nrhs) a
-> Array (Full meas vert horiz width nrhs) a
forall measA vertA meas vert horiz height width nrhs a lower upper.
(Measure measA, C vertA, Measure meas, C vert, C horiz, C height,
C width, Eq width, C nrhs, Floating a) =>
Transposition
-> Conjugation
-> HouseholderFlex lower upper measA vertA Small height width a
-> Full meas vert horiz width nrhs a
-> Full meas vert horiz width nrhs a
Plain.tallSolveR Transposition
transposed Conjugation
conjugated