packages feed

comfort-blas 0.0 → 0.0.0.1

raw patch · 6 files changed

+271/−266 lines, 6 filesPVP ok

version bump matches the API change (PVP)

API changes (from Hackage documentation)

Files

comfort-blas.cabal view
@@ -1,6 +1,6 @@ Cabal-Version:    2.2 Name:             comfort-blas-Version:          0.0+Version:          0.0.0.1 License:          BSD-3-Clause License-File:     LICENSE Author:           Henning Thielemann <haskell@henning-thielemann.de>@@ -17,7 +17,7 @@   Makefile  Source-Repository this-  Tag:         0.0+  Tag:         0.0.0.1   Type:        darcs   Location:    https://hub.darcs.net/thielema/comfort-blas/ 
src/Numeric/BLAS/Vector/Slice.hs view
@@ -86,6 +86,7 @@  {- $setup >>> :set -XTypeOperators+>>> :set -XGADTs >>> import qualified Test.Slice as TestSlice >>> import Test.NumberModule.Type (Number_) >>> import Test.Generator (genNumber)
test/Test/ComplexDouble/Numeric/BLAS/Vector/Slice.hs view
@@ -2,11 +2,12 @@ {-# LINE 87 "src/Numeric/BLAS/Vector/Slice.hs" #-}  {-# OPTIONS_GHC -XTypeOperators #-}+{-# OPTIONS_GHC -XGADTs #-} module Test.ComplexDouble.Numeric.BLAS.Vector.Slice where  import qualified Test.DocTest.Driver as DocTest -{-# LINE 89 "src/Numeric/BLAS/Vector/Slice.hs" #-}+{-# LINE 90 "src/Numeric/BLAS/Vector/Slice.hs" #-} import     qualified Test.Slice as TestSlice import     Test.ComplexDouble.Type (Number_) import     Test.Generator (genNumber)@@ -149,123 +150,123 @@  test :: DocTest.T () test = do- DocTest.printPrefix "Numeric.BLAS.Vector.Slice:300: "-{-# LINE 300 "src/Numeric/BLAS/Vector/Slice.hs" #-}+ DocTest.printPrefix "Numeric.BLAS.Vector.Slice:301: "+{-# LINE 301 "src/Numeric/BLAS/Vector/Slice.hs" #-}  DocTest.property-{-# LINE 300 "src/Numeric/BLAS/Vector/Slice.hs" #-}+{-# LINE 301 "src/Numeric/BLAS/Vector/Slice.hs" #-}      (QC.forAll genShape $ \shape@(_::+(_rows,columns)::+_) -> QC.forAll (QC.elements (Shape.indices columns)) $ \c -> QC.forAll (genVector shape number_) $ \xs -> VectorSlice.extract (Slice.column c . Slice.left . Slice.right) xs == Matrix.takeColumn c (Vector.takeLeft (Vector.takeRight (xs :: Vector Number_))))- DocTest.printPrefix "Numeric.BLAS.Vector.Slice:302: "-{-# LINE 302 "src/Numeric/BLAS/Vector/Slice.hs" #-}+ DocTest.printPrefix "Numeric.BLAS.Vector.Slice:303: "+{-# LINE 303 "src/Numeric/BLAS/Vector/Slice.hs" #-}  DocTest.property-{-# LINE 302 "src/Numeric/BLAS/Vector/Slice.hs" #-}+{-# LINE 303 "src/Numeric/BLAS/Vector/Slice.hs" #-}      (forAll_ (TestSlice.genShapeSelect 4 100) $ \(TestSlice.ShapeSelect sh select) -> QC.forAll (genVector sh number_) $ \xs -> case TestSlice.instantiate sh select of TestSlice.Extraction slice cut -> VectorSlice.extract slice xs == cut xs)- DocTest.printPrefix "Numeric.BLAS.Vector.Slice:334: "-{-# LINE 334 "src/Numeric/BLAS/Vector/Slice.hs" #-}- DocTest.property-{-# LINE 334 "src/Numeric/BLAS/Vector/Slice.hs" #-}-     (forSliced2 number_ $ \xs ys -> VectorSlice.inner xs ys == Vector.dot (VectorSlice.conjugate xs) (VectorSlice.toVector ys))  DocTest.printPrefix "Numeric.BLAS.Vector.Slice:335: " {-# LINE 335 "src/Numeric/BLAS/Vector/Slice.hs" #-}  DocTest.property {-# LINE 335 "src/Numeric/BLAS/Vector/Slice.hs" #-}+     (forSliced2 number_ $ \xs ys -> VectorSlice.inner xs ys == Vector.dot (VectorSlice.conjugate xs) (VectorSlice.toVector ys))+ DocTest.printPrefix "Numeric.BLAS.Vector.Slice:336: "+{-# LINE 336 "src/Numeric/BLAS/Vector/Slice.hs" #-}+ DocTest.property+{-# LINE 336 "src/Numeric/BLAS/Vector/Slice.hs" #-}      (forSliced number_ $ \xs -> VectorSlice.inner xs xs == Scalar.fromReal (VectorSlice.norm2Squared xs))- DocTest.printPrefix "Numeric.BLAS.Vector.Slice:418: "-{-# LINE 418 "src/Numeric/BLAS/Vector/Slice.hs" #-}+ DocTest.printPrefix "Numeric.BLAS.Vector.Slice:419: "+{-# LINE 419 "src/Numeric/BLAS/Vector/Slice.hs" #-}  DocTest.property-{-# LINE 418 "src/Numeric/BLAS/Vector/Slice.hs" #-}+{-# LINE 419 "src/Numeric/BLAS/Vector/Slice.hs" #-}      (forSliced number_ $ \xs -> VectorSlice.sum xs == List.sum (listFromSlice xs))- DocTest.printPrefix "Numeric.BLAS.Vector.Slice:491: "-{-# LINE 491 "src/Numeric/BLAS/Vector/Slice.hs" #-}+ DocTest.printPrefix "Numeric.BLAS.Vector.Slice:492: "+{-# LINE 492 "src/Numeric/BLAS/Vector/Slice.hs" #-}  DocTest.property-{-# LINE 491 "src/Numeric/BLAS/Vector/Slice.hs" #-}+{-# LINE 492 "src/Numeric/BLAS/Vector/Slice.hs" #-}      (forSliced number_ $ \xs -> VectorSlice.normInf xs == List.maximum (0 : List.map absolute (listFromSlice xs)))- DocTest.printPrefix "Numeric.BLAS.Vector.Slice:502: "-{-# LINE 502 "src/Numeric/BLAS/Vector/Slice.hs" #-}+ DocTest.printPrefix "Numeric.BLAS.Vector.Slice:503: "+{-# LINE 503 "src/Numeric/BLAS/Vector/Slice.hs" #-}  DocTest.property-{-# LINE 502 "src/Numeric/BLAS/Vector/Slice.hs" #-}+{-# LINE 503 "src/Numeric/BLAS/Vector/Slice.hs" #-}      (forSliced number_ $ \xs -> VectorSlice.normInf1 xs == List.maximum (0 : List.map Scalar.norm1 (listFromSlice xs)))- DocTest.printPrefix "Numeric.BLAS.Vector.Slice:517: "-{-# LINE 517 "src/Numeric/BLAS/Vector/Slice.hs" #-}- DocTest.property-{-# LINE 517 "src/Numeric/BLAS/Vector/Slice.hs" #-}-     (forSliced number_ $ \xs -> isNonEmpty xs ==> let (xi,xm) = VectorSlice.argAbsMaximum xs in VectorSlice.access xs xi == xm)  DocTest.printPrefix "Numeric.BLAS.Vector.Slice:518: " {-# LINE 518 "src/Numeric/BLAS/Vector/Slice.hs" #-}  DocTest.property {-# LINE 518 "src/Numeric/BLAS/Vector/Slice.hs" #-}-     (forSliced number_ $ \xs -> isNonEmpty xs ==> let (_xi,xm) = VectorSlice.argAbsMaximum xs in List.all (\x -> absolute x <= absolute xm) $ listFromSlice xs)+     (forSliced number_ $ \xs -> isNonEmpty xs ==> let (xi,xm) = VectorSlice.argAbsMaximum xs in VectorSlice.access xs xi == xm)  DocTest.printPrefix "Numeric.BLAS.Vector.Slice:519: " {-# LINE 519 "src/Numeric/BLAS/Vector/Slice.hs" #-}  DocTest.property {-# LINE 519 "src/Numeric/BLAS/Vector/Slice.hs" #-}+     (forSliced number_ $ \xs -> isNonEmpty xs ==> let (_xi,xm) = VectorSlice.argAbsMaximum xs in List.all (\x -> absolute x <= absolute xm) $ listFromSlice xs)+ DocTest.printPrefix "Numeric.BLAS.Vector.Slice:520: "+{-# LINE 520 "src/Numeric/BLAS/Vector/Slice.hs" #-}+ DocTest.property+{-# LINE 520 "src/Numeric/BLAS/Vector/Slice.hs" #-}      (forSliced number_ $ \xs -> forSliced number_ $ \ys -> isNonEmpty xs && isNonEmpty ys ==> let (_xi,xm) = VectorSlice.argAbsMaximum xs; (_yi,ym) = VectorSlice.argAbsMaximum ys; (zi,zm) = Vector.argAbsMaximum (VectorSlice.toVector xs +++ VectorSlice.toVector ys) in case zi of Left _ -> xm==zm && absolute xm >= absolute ym; Right _ -> ym==zm && absolute xm < absolute ym)- DocTest.printPrefix "Numeric.BLAS.Vector.Slice:566: "-{-# LINE 566 "src/Numeric/BLAS/Vector/Slice.hs" #-}+ DocTest.printPrefix "Numeric.BLAS.Vector.Slice:567: "+{-# LINE 567 "src/Numeric/BLAS/Vector/Slice.hs" #-}  DocTest.property-{-# LINE 566 "src/Numeric/BLAS/Vector/Slice.hs" #-}+{-# LINE 567 "src/Numeric/BLAS/Vector/Slice.hs" #-}      (forSliced real_ $ \xs -> isNonEmpty xs ==> VectorSlice.argAbsMaximum xs == VectorSlice.argAbs1Maximum xs)- DocTest.printPrefix "Numeric.BLAS.Vector.Slice:591: "-{-# LINE 591 "src/Numeric/BLAS/Vector/Slice.hs" #-}+ DocTest.printPrefix "Numeric.BLAS.Vector.Slice:592: "+{-# LINE 592 "src/Numeric/BLAS/Vector/Slice.hs" #-}  DocTest.property-{-# LINE 591 "src/Numeric/BLAS/Vector/Slice.hs" #-}+{-# LINE 592 "src/Numeric/BLAS/Vector/Slice.hs" #-}      (QC.forAll genShape $ \sh@(_::+(_rows,columns)::+_) -> QC.forAll (QC.elements (Shape.indices columns)) $ \c -> QC.forAll (genVector sh $ genNumber 3) $ \xt -> let xs = takeColumn c xt in approx 1e-2 (VectorSlice.product xs) (List.product (listFromSlice (xs :: Sliced Number_))))- DocTest.printPrefix "Numeric.BLAS.Vector.Slice:602: "-{-# LINE 602 "src/Numeric/BLAS/Vector/Slice.hs" #-}- DocTest.property-{-# LINE 602 "src/Numeric/BLAS/Vector/Slice.hs" #-}-     (forSliced real_ $ \xs -> isNonEmpty xs ==> VectorSlice.minimum xs == List.minimum (listFromSlice xs))  DocTest.printPrefix "Numeric.BLAS.Vector.Slice:603: " {-# LINE 603 "src/Numeric/BLAS/Vector/Slice.hs" #-}  DocTest.property {-# LINE 603 "src/Numeric/BLAS/Vector/Slice.hs" #-}+     (forSliced real_ $ \xs -> isNonEmpty xs ==> VectorSlice.minimum xs == List.minimum (listFromSlice xs))+ DocTest.printPrefix "Numeric.BLAS.Vector.Slice:604: "+{-# LINE 604 "src/Numeric/BLAS/Vector/Slice.hs" #-}+ DocTest.property+{-# LINE 604 "src/Numeric/BLAS/Vector/Slice.hs" #-}      (forSliced real_ $ \xs -> isNonEmpty xs ==> VectorSlice.maximum xs == List.maximum (listFromSlice xs))- DocTest.printPrefix "Numeric.BLAS.Vector.Slice:619: "-{-# LINE 619 "src/Numeric/BLAS/Vector/Slice.hs" #-}+ DocTest.printPrefix "Numeric.BLAS.Vector.Slice:620: "+{-# LINE 620 "src/Numeric/BLAS/Vector/Slice.hs" #-}  DocTest.property-{-# LINE 619 "src/Numeric/BLAS/Vector/Slice.hs" #-}+{-# LINE 620 "src/Numeric/BLAS/Vector/Slice.hs" #-}      (forSliced real_ $ \xs -> isNonEmpty xs ==> VectorSlice.limits xs == Array.limits (VectorSlice.toVector xs))- DocTest.printPrefix "Numeric.BLAS.Vector.Slice:649: "-{-# LINE 649 "src/Numeric/BLAS/Vector/Slice.hs" #-}- DocTest.property-{-# LINE 649 "src/Numeric/BLAS/Vector/Slice.hs" #-}-     (forSliced number_ $ \xs -> VectorSlice.negate xs == VectorSlice.scale minusOne xs)  DocTest.printPrefix "Numeric.BLAS.Vector.Slice:650: " {-# LINE 650 "src/Numeric/BLAS/Vector/Slice.hs" #-}  DocTest.property {-# LINE 650 "src/Numeric/BLAS/Vector/Slice.hs" #-}-     (forSliced number_ $ \xs -> VectorSlice.scale 2 xs == VectorSlice.add xs xs)- DocTest.printPrefix "Numeric.BLAS.Vector.Slice:709: "-{-# LINE 709 "src/Numeric/BLAS/Vector/Slice.hs" #-}+     (forSliced number_ $ \xs -> VectorSlice.negate xs == VectorSlice.scale minusOne xs)+ DocTest.printPrefix "Numeric.BLAS.Vector.Slice:651: "+{-# LINE 651 "src/Numeric/BLAS/Vector/Slice.hs" #-}  DocTest.property-{-# LINE 709 "src/Numeric/BLAS/Vector/Slice.hs" #-}-     (forSliced2 number_ $ \xs ys -> VectorSlice.add xs ys == VectorSlice.add ys xs)+{-# LINE 651 "src/Numeric/BLAS/Vector/Slice.hs" #-}+     (forSliced number_ $ \xs -> VectorSlice.scale 2 xs == VectorSlice.add xs xs)  DocTest.printPrefix "Numeric.BLAS.Vector.Slice:710: " {-# LINE 710 "src/Numeric/BLAS/Vector/Slice.hs" #-}  DocTest.property {-# LINE 710 "src/Numeric/BLAS/Vector/Slice.hs" #-}+     (forSliced2 number_ $ \xs ys -> VectorSlice.add xs ys == VectorSlice.add ys xs)+ DocTest.printPrefix "Numeric.BLAS.Vector.Slice:711: "+{-# LINE 711 "src/Numeric/BLAS/Vector/Slice.hs" #-}+ DocTest.property+{-# LINE 711 "src/Numeric/BLAS/Vector/Slice.hs" #-}      (forSliced2 number_ $ \xs ys -> VectorSlice.toVector xs == VectorSlice.sub xs ys |+| VectorSlice.toVector ys)- DocTest.printPrefix "Numeric.BLAS.Vector.Slice:735: "-{-# LINE 735 "src/Numeric/BLAS/Vector/Slice.hs" #-}+ DocTest.printPrefix "Numeric.BLAS.Vector.Slice:736: "+{-# LINE 736 "src/Numeric/BLAS/Vector/Slice.hs" #-}  DocTest.property-{-# LINE 735 "src/Numeric/BLAS/Vector/Slice.hs" #-}+{-# LINE 736 "src/Numeric/BLAS/Vector/Slice.hs" #-}      (forSliced number_ $ \xs -> VectorSlice.toVector xs == Vector.negate (VectorSlice.negate xs))- DocTest.printPrefix "Numeric.BLAS.Vector.Slice:748: "-{-# LINE 748 "src/Numeric/BLAS/Vector/Slice.hs" #-}+ DocTest.printPrefix "Numeric.BLAS.Vector.Slice:749: "+{-# LINE 749 "src/Numeric/BLAS/Vector/Slice.hs" #-}  DocTest.property-{-# LINE 748 "src/Numeric/BLAS/Vector/Slice.hs" #-}+{-# LINE 749 "src/Numeric/BLAS/Vector/Slice.hs" #-}      (QC.forAll (genNumber maxElem) $ \d -> forSliced number_ $ \xs -> VectorSlice.toVector xs == Vector.raise (-d) (VectorSlice.raise d xs))- DocTest.printPrefix "Numeric.BLAS.Vector.Slice:765: "-{-# LINE 765 "src/Numeric/BLAS/Vector/Slice.hs" #-}+ DocTest.printPrefix "Numeric.BLAS.Vector.Slice:766: "+{-# LINE 766 "src/Numeric/BLAS/Vector/Slice.hs" #-}  DocTest.property-{-# LINE 765 "src/Numeric/BLAS/Vector/Slice.hs" #-}+{-# LINE 766 "src/Numeric/BLAS/Vector/Slice.hs" #-}      (forSliced2 number_ $ \xs ys -> VectorSlice.mul xs ys == VectorSlice.mul ys xs)- DocTest.printPrefix "Numeric.BLAS.Vector.Slice:773: "-{-# LINE 773 "src/Numeric/BLAS/Vector/Slice.hs" #-}+ DocTest.printPrefix "Numeric.BLAS.Vector.Slice:774: "+{-# LINE 774 "src/Numeric/BLAS/Vector/Slice.hs" #-}  DocTest.property-{-# LINE 773 "src/Numeric/BLAS/Vector/Slice.hs" #-}+{-# LINE 774 "src/Numeric/BLAS/Vector/Slice.hs" #-}      (forSliced2 number_ $ \xs ys -> VectorSlice.mulConj xs ys == Vector.mul (VectorSlice.conjugate xs) (VectorSlice.toVector ys))- DocTest.printPrefix "Numeric.BLAS.Vector.Slice:897: "-{-# LINE 897 "src/Numeric/BLAS/Vector/Slice.hs" #-}+ DocTest.printPrefix "Numeric.BLAS.Vector.Slice:898: "+{-# LINE 898 "src/Numeric/BLAS/Vector/Slice.hs" #-}  DocTest.property-{-# LINE 897 "src/Numeric/BLAS/Vector/Slice.hs" #-}+{-# LINE 898 "src/Numeric/BLAS/Vector/Slice.hs" #-}      (forSliced complex_ $ \xs -> approxReal 1e-2 (VectorSlice.norm2 xs) $ let (xrs,xis) = VectorSlice.unzipComplex xs in sqrt $ VectorSlice.norm2Squared xrs + VectorSlice.norm2Squared xis)
test/Test/ComplexFloat/Numeric/BLAS/Vector/Slice.hs view
@@ -2,11 +2,12 @@ {-# LINE 87 "src/Numeric/BLAS/Vector/Slice.hs" #-}  {-# OPTIONS_GHC -XTypeOperators #-}+{-# OPTIONS_GHC -XGADTs #-} module Test.ComplexFloat.Numeric.BLAS.Vector.Slice where  import qualified Test.DocTest.Driver as DocTest -{-# LINE 89 "src/Numeric/BLAS/Vector/Slice.hs" #-}+{-# LINE 90 "src/Numeric/BLAS/Vector/Slice.hs" #-} import     qualified Test.Slice as TestSlice import     Test.ComplexFloat.Type (Number_) import     Test.Generator (genNumber)@@ -149,123 +150,123 @@  test :: DocTest.T () test = do- DocTest.printPrefix "Numeric.BLAS.Vector.Slice:300: "-{-# LINE 300 "src/Numeric/BLAS/Vector/Slice.hs" #-}+ DocTest.printPrefix "Numeric.BLAS.Vector.Slice:301: "+{-# LINE 301 "src/Numeric/BLAS/Vector/Slice.hs" #-}  DocTest.property-{-# LINE 300 "src/Numeric/BLAS/Vector/Slice.hs" #-}+{-# LINE 301 "src/Numeric/BLAS/Vector/Slice.hs" #-}      (QC.forAll genShape $ \shape@(_::+(_rows,columns)::+_) -> QC.forAll (QC.elements (Shape.indices columns)) $ \c -> QC.forAll (genVector shape number_) $ \xs -> VectorSlice.extract (Slice.column c . Slice.left . Slice.right) xs == Matrix.takeColumn c (Vector.takeLeft (Vector.takeRight (xs :: Vector Number_))))- DocTest.printPrefix "Numeric.BLAS.Vector.Slice:302: "-{-# LINE 302 "src/Numeric/BLAS/Vector/Slice.hs" #-}+ DocTest.printPrefix "Numeric.BLAS.Vector.Slice:303: "+{-# LINE 303 "src/Numeric/BLAS/Vector/Slice.hs" #-}  DocTest.property-{-# LINE 302 "src/Numeric/BLAS/Vector/Slice.hs" #-}+{-# LINE 303 "src/Numeric/BLAS/Vector/Slice.hs" #-}      (forAll_ (TestSlice.genShapeSelect 4 100) $ \(TestSlice.ShapeSelect sh select) -> QC.forAll (genVector sh number_) $ \xs -> case TestSlice.instantiate sh select of TestSlice.Extraction slice cut -> VectorSlice.extract slice xs == cut xs)- DocTest.printPrefix "Numeric.BLAS.Vector.Slice:334: "-{-# LINE 334 "src/Numeric/BLAS/Vector/Slice.hs" #-}- DocTest.property-{-# LINE 334 "src/Numeric/BLAS/Vector/Slice.hs" #-}-     (forSliced2 number_ $ \xs ys -> VectorSlice.inner xs ys == Vector.dot (VectorSlice.conjugate xs) (VectorSlice.toVector ys))  DocTest.printPrefix "Numeric.BLAS.Vector.Slice:335: " {-# LINE 335 "src/Numeric/BLAS/Vector/Slice.hs" #-}  DocTest.property {-# LINE 335 "src/Numeric/BLAS/Vector/Slice.hs" #-}+     (forSliced2 number_ $ \xs ys -> VectorSlice.inner xs ys == Vector.dot (VectorSlice.conjugate xs) (VectorSlice.toVector ys))+ DocTest.printPrefix "Numeric.BLAS.Vector.Slice:336: "+{-# LINE 336 "src/Numeric/BLAS/Vector/Slice.hs" #-}+ DocTest.property+{-# LINE 336 "src/Numeric/BLAS/Vector/Slice.hs" #-}      (forSliced number_ $ \xs -> VectorSlice.inner xs xs == Scalar.fromReal (VectorSlice.norm2Squared xs))- DocTest.printPrefix "Numeric.BLAS.Vector.Slice:418: "-{-# LINE 418 "src/Numeric/BLAS/Vector/Slice.hs" #-}+ DocTest.printPrefix "Numeric.BLAS.Vector.Slice:419: "+{-# LINE 419 "src/Numeric/BLAS/Vector/Slice.hs" #-}  DocTest.property-{-# LINE 418 "src/Numeric/BLAS/Vector/Slice.hs" #-}+{-# LINE 419 "src/Numeric/BLAS/Vector/Slice.hs" #-}      (forSliced number_ $ \xs -> VectorSlice.sum xs == List.sum (listFromSlice xs))- DocTest.printPrefix "Numeric.BLAS.Vector.Slice:491: "-{-# LINE 491 "src/Numeric/BLAS/Vector/Slice.hs" #-}+ DocTest.printPrefix "Numeric.BLAS.Vector.Slice:492: "+{-# LINE 492 "src/Numeric/BLAS/Vector/Slice.hs" #-}  DocTest.property-{-# LINE 491 "src/Numeric/BLAS/Vector/Slice.hs" #-}+{-# LINE 492 "src/Numeric/BLAS/Vector/Slice.hs" #-}      (forSliced number_ $ \xs -> VectorSlice.normInf xs == List.maximum (0 : List.map absolute (listFromSlice xs)))- DocTest.printPrefix "Numeric.BLAS.Vector.Slice:502: "-{-# LINE 502 "src/Numeric/BLAS/Vector/Slice.hs" #-}+ DocTest.printPrefix "Numeric.BLAS.Vector.Slice:503: "+{-# LINE 503 "src/Numeric/BLAS/Vector/Slice.hs" #-}  DocTest.property-{-# LINE 502 "src/Numeric/BLAS/Vector/Slice.hs" #-}+{-# LINE 503 "src/Numeric/BLAS/Vector/Slice.hs" #-}      (forSliced number_ $ \xs -> VectorSlice.normInf1 xs == List.maximum (0 : List.map Scalar.norm1 (listFromSlice xs)))- DocTest.printPrefix "Numeric.BLAS.Vector.Slice:517: "-{-# LINE 517 "src/Numeric/BLAS/Vector/Slice.hs" #-}- DocTest.property-{-# LINE 517 "src/Numeric/BLAS/Vector/Slice.hs" #-}-     (forSliced number_ $ \xs -> isNonEmpty xs ==> let (xi,xm) = VectorSlice.argAbsMaximum xs in VectorSlice.access xs xi == xm)  DocTest.printPrefix "Numeric.BLAS.Vector.Slice:518: " {-# LINE 518 "src/Numeric/BLAS/Vector/Slice.hs" #-}  DocTest.property {-# LINE 518 "src/Numeric/BLAS/Vector/Slice.hs" #-}-     (forSliced number_ $ \xs -> isNonEmpty xs ==> let (_xi,xm) = VectorSlice.argAbsMaximum xs in List.all (\x -> absolute x <= absolute xm) $ listFromSlice xs)+     (forSliced number_ $ \xs -> isNonEmpty xs ==> let (xi,xm) = VectorSlice.argAbsMaximum xs in VectorSlice.access xs xi == xm)  DocTest.printPrefix "Numeric.BLAS.Vector.Slice:519: " {-# LINE 519 "src/Numeric/BLAS/Vector/Slice.hs" #-}  DocTest.property {-# LINE 519 "src/Numeric/BLAS/Vector/Slice.hs" #-}+     (forSliced number_ $ \xs -> isNonEmpty xs ==> let (_xi,xm) = VectorSlice.argAbsMaximum xs in List.all (\x -> absolute x <= absolute xm) $ listFromSlice xs)+ DocTest.printPrefix "Numeric.BLAS.Vector.Slice:520: "+{-# LINE 520 "src/Numeric/BLAS/Vector/Slice.hs" #-}+ DocTest.property+{-# LINE 520 "src/Numeric/BLAS/Vector/Slice.hs" #-}      (forSliced number_ $ \xs -> forSliced number_ $ \ys -> isNonEmpty xs && isNonEmpty ys ==> let (_xi,xm) = VectorSlice.argAbsMaximum xs; (_yi,ym) = VectorSlice.argAbsMaximum ys; (zi,zm) = Vector.argAbsMaximum (VectorSlice.toVector xs +++ VectorSlice.toVector ys) in case zi of Left _ -> xm==zm && absolute xm >= absolute ym; Right _ -> ym==zm && absolute xm < absolute ym)- DocTest.printPrefix "Numeric.BLAS.Vector.Slice:566: "-{-# LINE 566 "src/Numeric/BLAS/Vector/Slice.hs" #-}+ DocTest.printPrefix "Numeric.BLAS.Vector.Slice:567: "+{-# LINE 567 "src/Numeric/BLAS/Vector/Slice.hs" #-}  DocTest.property-{-# LINE 566 "src/Numeric/BLAS/Vector/Slice.hs" #-}+{-# LINE 567 "src/Numeric/BLAS/Vector/Slice.hs" #-}      (forSliced real_ $ \xs -> isNonEmpty xs ==> VectorSlice.argAbsMaximum xs == VectorSlice.argAbs1Maximum xs)- DocTest.printPrefix "Numeric.BLAS.Vector.Slice:591: "-{-# LINE 591 "src/Numeric/BLAS/Vector/Slice.hs" #-}+ DocTest.printPrefix "Numeric.BLAS.Vector.Slice:592: "+{-# LINE 592 "src/Numeric/BLAS/Vector/Slice.hs" #-}  DocTest.property-{-# LINE 591 "src/Numeric/BLAS/Vector/Slice.hs" #-}+{-# LINE 592 "src/Numeric/BLAS/Vector/Slice.hs" #-}      (QC.forAll genShape $ \sh@(_::+(_rows,columns)::+_) -> QC.forAll (QC.elements (Shape.indices columns)) $ \c -> QC.forAll (genVector sh $ genNumber 3) $ \xt -> let xs = takeColumn c xt in approx 1e-2 (VectorSlice.product xs) (List.product (listFromSlice (xs :: Sliced Number_))))- DocTest.printPrefix "Numeric.BLAS.Vector.Slice:602: "-{-# LINE 602 "src/Numeric/BLAS/Vector/Slice.hs" #-}- DocTest.property-{-# LINE 602 "src/Numeric/BLAS/Vector/Slice.hs" #-}-     (forSliced real_ $ \xs -> isNonEmpty xs ==> VectorSlice.minimum xs == List.minimum (listFromSlice xs))  DocTest.printPrefix "Numeric.BLAS.Vector.Slice:603: " {-# LINE 603 "src/Numeric/BLAS/Vector/Slice.hs" #-}  DocTest.property {-# LINE 603 "src/Numeric/BLAS/Vector/Slice.hs" #-}+     (forSliced real_ $ \xs -> isNonEmpty xs ==> VectorSlice.minimum xs == List.minimum (listFromSlice xs))+ DocTest.printPrefix "Numeric.BLAS.Vector.Slice:604: "+{-# LINE 604 "src/Numeric/BLAS/Vector/Slice.hs" #-}+ DocTest.property+{-# LINE 604 "src/Numeric/BLAS/Vector/Slice.hs" #-}      (forSliced real_ $ \xs -> isNonEmpty xs ==> VectorSlice.maximum xs == List.maximum (listFromSlice xs))- DocTest.printPrefix "Numeric.BLAS.Vector.Slice:619: "-{-# LINE 619 "src/Numeric/BLAS/Vector/Slice.hs" #-}+ DocTest.printPrefix "Numeric.BLAS.Vector.Slice:620: "+{-# LINE 620 "src/Numeric/BLAS/Vector/Slice.hs" #-}  DocTest.property-{-# LINE 619 "src/Numeric/BLAS/Vector/Slice.hs" #-}+{-# LINE 620 "src/Numeric/BLAS/Vector/Slice.hs" #-}      (forSliced real_ $ \xs -> isNonEmpty xs ==> VectorSlice.limits xs == Array.limits (VectorSlice.toVector xs))- DocTest.printPrefix "Numeric.BLAS.Vector.Slice:649: "-{-# LINE 649 "src/Numeric/BLAS/Vector/Slice.hs" #-}- DocTest.property-{-# LINE 649 "src/Numeric/BLAS/Vector/Slice.hs" #-}-     (forSliced number_ $ \xs -> VectorSlice.negate xs == VectorSlice.scale minusOne xs)  DocTest.printPrefix "Numeric.BLAS.Vector.Slice:650: " {-# LINE 650 "src/Numeric/BLAS/Vector/Slice.hs" #-}  DocTest.property {-# LINE 650 "src/Numeric/BLAS/Vector/Slice.hs" #-}-     (forSliced number_ $ \xs -> VectorSlice.scale 2 xs == VectorSlice.add xs xs)- DocTest.printPrefix "Numeric.BLAS.Vector.Slice:709: "-{-# LINE 709 "src/Numeric/BLAS/Vector/Slice.hs" #-}+     (forSliced number_ $ \xs -> VectorSlice.negate xs == VectorSlice.scale minusOne xs)+ DocTest.printPrefix "Numeric.BLAS.Vector.Slice:651: "+{-# LINE 651 "src/Numeric/BLAS/Vector/Slice.hs" #-}  DocTest.property-{-# LINE 709 "src/Numeric/BLAS/Vector/Slice.hs" #-}-     (forSliced2 number_ $ \xs ys -> VectorSlice.add xs ys == VectorSlice.add ys xs)+{-# LINE 651 "src/Numeric/BLAS/Vector/Slice.hs" #-}+     (forSliced number_ $ \xs -> VectorSlice.scale 2 xs == VectorSlice.add xs xs)  DocTest.printPrefix "Numeric.BLAS.Vector.Slice:710: " {-# LINE 710 "src/Numeric/BLAS/Vector/Slice.hs" #-}  DocTest.property {-# LINE 710 "src/Numeric/BLAS/Vector/Slice.hs" #-}+     (forSliced2 number_ $ \xs ys -> VectorSlice.add xs ys == VectorSlice.add ys xs)+ DocTest.printPrefix "Numeric.BLAS.Vector.Slice:711: "+{-# LINE 711 "src/Numeric/BLAS/Vector/Slice.hs" #-}+ DocTest.property+{-# LINE 711 "src/Numeric/BLAS/Vector/Slice.hs" #-}      (forSliced2 number_ $ \xs ys -> VectorSlice.toVector xs == VectorSlice.sub xs ys |+| VectorSlice.toVector ys)- DocTest.printPrefix "Numeric.BLAS.Vector.Slice:735: "-{-# LINE 735 "src/Numeric/BLAS/Vector/Slice.hs" #-}+ DocTest.printPrefix "Numeric.BLAS.Vector.Slice:736: "+{-# LINE 736 "src/Numeric/BLAS/Vector/Slice.hs" #-}  DocTest.property-{-# LINE 735 "src/Numeric/BLAS/Vector/Slice.hs" #-}+{-# LINE 736 "src/Numeric/BLAS/Vector/Slice.hs" #-}      (forSliced number_ $ \xs -> VectorSlice.toVector xs == Vector.negate (VectorSlice.negate xs))- DocTest.printPrefix "Numeric.BLAS.Vector.Slice:748: "-{-# LINE 748 "src/Numeric/BLAS/Vector/Slice.hs" #-}+ DocTest.printPrefix "Numeric.BLAS.Vector.Slice:749: "+{-# LINE 749 "src/Numeric/BLAS/Vector/Slice.hs" #-}  DocTest.property-{-# LINE 748 "src/Numeric/BLAS/Vector/Slice.hs" #-}+{-# LINE 749 "src/Numeric/BLAS/Vector/Slice.hs" #-}      (QC.forAll (genNumber maxElem) $ \d -> forSliced number_ $ \xs -> VectorSlice.toVector xs == Vector.raise (-d) (VectorSlice.raise d xs))- DocTest.printPrefix "Numeric.BLAS.Vector.Slice:765: "-{-# LINE 765 "src/Numeric/BLAS/Vector/Slice.hs" #-}+ DocTest.printPrefix "Numeric.BLAS.Vector.Slice:766: "+{-# LINE 766 "src/Numeric/BLAS/Vector/Slice.hs" #-}  DocTest.property-{-# LINE 765 "src/Numeric/BLAS/Vector/Slice.hs" #-}+{-# LINE 766 "src/Numeric/BLAS/Vector/Slice.hs" #-}      (forSliced2 number_ $ \xs ys -> VectorSlice.mul xs ys == VectorSlice.mul ys xs)- DocTest.printPrefix "Numeric.BLAS.Vector.Slice:773: "-{-# LINE 773 "src/Numeric/BLAS/Vector/Slice.hs" #-}+ DocTest.printPrefix "Numeric.BLAS.Vector.Slice:774: "+{-# LINE 774 "src/Numeric/BLAS/Vector/Slice.hs" #-}  DocTest.property-{-# LINE 773 "src/Numeric/BLAS/Vector/Slice.hs" #-}+{-# LINE 774 "src/Numeric/BLAS/Vector/Slice.hs" #-}      (forSliced2 number_ $ \xs ys -> VectorSlice.mulConj xs ys == Vector.mul (VectorSlice.conjugate xs) (VectorSlice.toVector ys))- DocTest.printPrefix "Numeric.BLAS.Vector.Slice:897: "-{-# LINE 897 "src/Numeric/BLAS/Vector/Slice.hs" #-}+ DocTest.printPrefix "Numeric.BLAS.Vector.Slice:898: "+{-# LINE 898 "src/Numeric/BLAS/Vector/Slice.hs" #-}  DocTest.property-{-# LINE 897 "src/Numeric/BLAS/Vector/Slice.hs" #-}+{-# LINE 898 "src/Numeric/BLAS/Vector/Slice.hs" #-}      (forSliced complex_ $ \xs -> approxReal 1e-2 (VectorSlice.norm2 xs) $ let (xrs,xis) = VectorSlice.unzipComplex xs in sqrt $ VectorSlice.norm2Squared xrs + VectorSlice.norm2Squared xis)
test/Test/Double/Numeric/BLAS/Vector/Slice.hs view
@@ -2,11 +2,12 @@ {-# LINE 87 "src/Numeric/BLAS/Vector/Slice.hs" #-}  {-# OPTIONS_GHC -XTypeOperators #-}+{-# OPTIONS_GHC -XGADTs #-} module Test.Double.Numeric.BLAS.Vector.Slice where  import qualified Test.DocTest.Driver as DocTest -{-# LINE 89 "src/Numeric/BLAS/Vector/Slice.hs" #-}+{-# LINE 90 "src/Numeric/BLAS/Vector/Slice.hs" #-} import     qualified Test.Slice as TestSlice import     Test.Double.Type (Number_) import     Test.Generator (genNumber)@@ -149,123 +150,123 @@  test :: DocTest.T () test = do- DocTest.printPrefix "Numeric.BLAS.Vector.Slice:300: "-{-# LINE 300 "src/Numeric/BLAS/Vector/Slice.hs" #-}+ DocTest.printPrefix "Numeric.BLAS.Vector.Slice:301: "+{-# LINE 301 "src/Numeric/BLAS/Vector/Slice.hs" #-}  DocTest.property-{-# LINE 300 "src/Numeric/BLAS/Vector/Slice.hs" #-}+{-# LINE 301 "src/Numeric/BLAS/Vector/Slice.hs" #-}      (QC.forAll genShape $ \shape@(_::+(_rows,columns)::+_) -> QC.forAll (QC.elements (Shape.indices columns)) $ \c -> QC.forAll (genVector shape number_) $ \xs -> VectorSlice.extract (Slice.column c . Slice.left . Slice.right) xs == Matrix.takeColumn c (Vector.takeLeft (Vector.takeRight (xs :: Vector Number_))))- DocTest.printPrefix "Numeric.BLAS.Vector.Slice:302: "-{-# LINE 302 "src/Numeric/BLAS/Vector/Slice.hs" #-}+ DocTest.printPrefix "Numeric.BLAS.Vector.Slice:303: "+{-# LINE 303 "src/Numeric/BLAS/Vector/Slice.hs" #-}  DocTest.property-{-# LINE 302 "src/Numeric/BLAS/Vector/Slice.hs" #-}+{-# LINE 303 "src/Numeric/BLAS/Vector/Slice.hs" #-}      (forAll_ (TestSlice.genShapeSelect 4 100) $ \(TestSlice.ShapeSelect sh select) -> QC.forAll (genVector sh number_) $ \xs -> case TestSlice.instantiate sh select of TestSlice.Extraction slice cut -> VectorSlice.extract slice xs == cut xs)- DocTest.printPrefix "Numeric.BLAS.Vector.Slice:334: "-{-# LINE 334 "src/Numeric/BLAS/Vector/Slice.hs" #-}- DocTest.property-{-# LINE 334 "src/Numeric/BLAS/Vector/Slice.hs" #-}-     (forSliced2 number_ $ \xs ys -> VectorSlice.inner xs ys == Vector.dot (VectorSlice.conjugate xs) (VectorSlice.toVector ys))  DocTest.printPrefix "Numeric.BLAS.Vector.Slice:335: " {-# LINE 335 "src/Numeric/BLAS/Vector/Slice.hs" #-}  DocTest.property {-# LINE 335 "src/Numeric/BLAS/Vector/Slice.hs" #-}+     (forSliced2 number_ $ \xs ys -> VectorSlice.inner xs ys == Vector.dot (VectorSlice.conjugate xs) (VectorSlice.toVector ys))+ DocTest.printPrefix "Numeric.BLAS.Vector.Slice:336: "+{-# LINE 336 "src/Numeric/BLAS/Vector/Slice.hs" #-}+ DocTest.property+{-# LINE 336 "src/Numeric/BLAS/Vector/Slice.hs" #-}      (forSliced number_ $ \xs -> VectorSlice.inner xs xs == Scalar.fromReal (VectorSlice.norm2Squared xs))- DocTest.printPrefix "Numeric.BLAS.Vector.Slice:418: "-{-# LINE 418 "src/Numeric/BLAS/Vector/Slice.hs" #-}+ DocTest.printPrefix "Numeric.BLAS.Vector.Slice:419: "+{-# LINE 419 "src/Numeric/BLAS/Vector/Slice.hs" #-}  DocTest.property-{-# LINE 418 "src/Numeric/BLAS/Vector/Slice.hs" #-}+{-# LINE 419 "src/Numeric/BLAS/Vector/Slice.hs" #-}      (forSliced number_ $ \xs -> VectorSlice.sum xs == List.sum (listFromSlice xs))- DocTest.printPrefix "Numeric.BLAS.Vector.Slice:491: "-{-# LINE 491 "src/Numeric/BLAS/Vector/Slice.hs" #-}+ DocTest.printPrefix "Numeric.BLAS.Vector.Slice:492: "+{-# LINE 492 "src/Numeric/BLAS/Vector/Slice.hs" #-}  DocTest.property-{-# LINE 491 "src/Numeric/BLAS/Vector/Slice.hs" #-}+{-# LINE 492 "src/Numeric/BLAS/Vector/Slice.hs" #-}      (forSliced number_ $ \xs -> VectorSlice.normInf xs == List.maximum (0 : List.map absolute (listFromSlice xs)))- DocTest.printPrefix "Numeric.BLAS.Vector.Slice:502: "-{-# LINE 502 "src/Numeric/BLAS/Vector/Slice.hs" #-}+ DocTest.printPrefix "Numeric.BLAS.Vector.Slice:503: "+{-# LINE 503 "src/Numeric/BLAS/Vector/Slice.hs" #-}  DocTest.property-{-# LINE 502 "src/Numeric/BLAS/Vector/Slice.hs" #-}+{-# LINE 503 "src/Numeric/BLAS/Vector/Slice.hs" #-}      (forSliced number_ $ \xs -> VectorSlice.normInf1 xs == List.maximum (0 : List.map Scalar.norm1 (listFromSlice xs)))- DocTest.printPrefix "Numeric.BLAS.Vector.Slice:517: "-{-# LINE 517 "src/Numeric/BLAS/Vector/Slice.hs" #-}- DocTest.property-{-# LINE 517 "src/Numeric/BLAS/Vector/Slice.hs" #-}-     (forSliced number_ $ \xs -> isNonEmpty xs ==> let (xi,xm) = VectorSlice.argAbsMaximum xs in VectorSlice.access xs xi == xm)  DocTest.printPrefix "Numeric.BLAS.Vector.Slice:518: " {-# LINE 518 "src/Numeric/BLAS/Vector/Slice.hs" #-}  DocTest.property {-# LINE 518 "src/Numeric/BLAS/Vector/Slice.hs" #-}-     (forSliced number_ $ \xs -> isNonEmpty xs ==> let (_xi,xm) = VectorSlice.argAbsMaximum xs in List.all (\x -> absolute x <= absolute xm) $ listFromSlice xs)+     (forSliced number_ $ \xs -> isNonEmpty xs ==> let (xi,xm) = VectorSlice.argAbsMaximum xs in VectorSlice.access xs xi == xm)  DocTest.printPrefix "Numeric.BLAS.Vector.Slice:519: " {-# LINE 519 "src/Numeric/BLAS/Vector/Slice.hs" #-}  DocTest.property {-# LINE 519 "src/Numeric/BLAS/Vector/Slice.hs" #-}+     (forSliced number_ $ \xs -> isNonEmpty xs ==> let (_xi,xm) = VectorSlice.argAbsMaximum xs in List.all (\x -> absolute x <= absolute xm) $ listFromSlice xs)+ DocTest.printPrefix "Numeric.BLAS.Vector.Slice:520: "+{-# LINE 520 "src/Numeric/BLAS/Vector/Slice.hs" #-}+ DocTest.property+{-# LINE 520 "src/Numeric/BLAS/Vector/Slice.hs" #-}      (forSliced number_ $ \xs -> forSliced number_ $ \ys -> isNonEmpty xs && isNonEmpty ys ==> let (_xi,xm) = VectorSlice.argAbsMaximum xs; (_yi,ym) = VectorSlice.argAbsMaximum ys; (zi,zm) = Vector.argAbsMaximum (VectorSlice.toVector xs +++ VectorSlice.toVector ys) in case zi of Left _ -> xm==zm && absolute xm >= absolute ym; Right _ -> ym==zm && absolute xm < absolute ym)- DocTest.printPrefix "Numeric.BLAS.Vector.Slice:566: "-{-# LINE 566 "src/Numeric/BLAS/Vector/Slice.hs" #-}+ DocTest.printPrefix "Numeric.BLAS.Vector.Slice:567: "+{-# LINE 567 "src/Numeric/BLAS/Vector/Slice.hs" #-}  DocTest.property-{-# LINE 566 "src/Numeric/BLAS/Vector/Slice.hs" #-}+{-# LINE 567 "src/Numeric/BLAS/Vector/Slice.hs" #-}      (forSliced real_ $ \xs -> isNonEmpty xs ==> VectorSlice.argAbsMaximum xs == VectorSlice.argAbs1Maximum xs)- DocTest.printPrefix "Numeric.BLAS.Vector.Slice:591: "-{-# LINE 591 "src/Numeric/BLAS/Vector/Slice.hs" #-}+ DocTest.printPrefix "Numeric.BLAS.Vector.Slice:592: "+{-# LINE 592 "src/Numeric/BLAS/Vector/Slice.hs" #-}  DocTest.property-{-# LINE 591 "src/Numeric/BLAS/Vector/Slice.hs" #-}+{-# LINE 592 "src/Numeric/BLAS/Vector/Slice.hs" #-}      (QC.forAll genShape $ \sh@(_::+(_rows,columns)::+_) -> QC.forAll (QC.elements (Shape.indices columns)) $ \c -> QC.forAll (genVector sh $ genNumber 3) $ \xt -> let xs = takeColumn c xt in approx 1e-2 (VectorSlice.product xs) (List.product (listFromSlice (xs :: Sliced Number_))))- DocTest.printPrefix "Numeric.BLAS.Vector.Slice:602: "-{-# LINE 602 "src/Numeric/BLAS/Vector/Slice.hs" #-}- DocTest.property-{-# LINE 602 "src/Numeric/BLAS/Vector/Slice.hs" #-}-     (forSliced real_ $ \xs -> isNonEmpty xs ==> VectorSlice.minimum xs == List.minimum (listFromSlice xs))  DocTest.printPrefix "Numeric.BLAS.Vector.Slice:603: " {-# LINE 603 "src/Numeric/BLAS/Vector/Slice.hs" #-}  DocTest.property {-# LINE 603 "src/Numeric/BLAS/Vector/Slice.hs" #-}+     (forSliced real_ $ \xs -> isNonEmpty xs ==> VectorSlice.minimum xs == List.minimum (listFromSlice xs))+ DocTest.printPrefix "Numeric.BLAS.Vector.Slice:604: "+{-# LINE 604 "src/Numeric/BLAS/Vector/Slice.hs" #-}+ DocTest.property+{-# LINE 604 "src/Numeric/BLAS/Vector/Slice.hs" #-}      (forSliced real_ $ \xs -> isNonEmpty xs ==> VectorSlice.maximum xs == List.maximum (listFromSlice xs))- DocTest.printPrefix "Numeric.BLAS.Vector.Slice:619: "-{-# LINE 619 "src/Numeric/BLAS/Vector/Slice.hs" #-}+ DocTest.printPrefix "Numeric.BLAS.Vector.Slice:620: "+{-# LINE 620 "src/Numeric/BLAS/Vector/Slice.hs" #-}  DocTest.property-{-# LINE 619 "src/Numeric/BLAS/Vector/Slice.hs" #-}+{-# LINE 620 "src/Numeric/BLAS/Vector/Slice.hs" #-}      (forSliced real_ $ \xs -> isNonEmpty xs ==> VectorSlice.limits xs == Array.limits (VectorSlice.toVector xs))- DocTest.printPrefix "Numeric.BLAS.Vector.Slice:649: "-{-# LINE 649 "src/Numeric/BLAS/Vector/Slice.hs" #-}- DocTest.property-{-# LINE 649 "src/Numeric/BLAS/Vector/Slice.hs" #-}-     (forSliced number_ $ \xs -> VectorSlice.negate xs == VectorSlice.scale minusOne xs)  DocTest.printPrefix "Numeric.BLAS.Vector.Slice:650: " {-# LINE 650 "src/Numeric/BLAS/Vector/Slice.hs" #-}  DocTest.property {-# LINE 650 "src/Numeric/BLAS/Vector/Slice.hs" #-}-     (forSliced number_ $ \xs -> VectorSlice.scale 2 xs == VectorSlice.add xs xs)- DocTest.printPrefix "Numeric.BLAS.Vector.Slice:709: "-{-# LINE 709 "src/Numeric/BLAS/Vector/Slice.hs" #-}+     (forSliced number_ $ \xs -> VectorSlice.negate xs == VectorSlice.scale minusOne xs)+ DocTest.printPrefix "Numeric.BLAS.Vector.Slice:651: "+{-# LINE 651 "src/Numeric/BLAS/Vector/Slice.hs" #-}  DocTest.property-{-# LINE 709 "src/Numeric/BLAS/Vector/Slice.hs" #-}-     (forSliced2 number_ $ \xs ys -> VectorSlice.add xs ys == VectorSlice.add ys xs)+{-# LINE 651 "src/Numeric/BLAS/Vector/Slice.hs" #-}+     (forSliced number_ $ \xs -> VectorSlice.scale 2 xs == VectorSlice.add xs xs)  DocTest.printPrefix "Numeric.BLAS.Vector.Slice:710: " {-# LINE 710 "src/Numeric/BLAS/Vector/Slice.hs" #-}  DocTest.property {-# LINE 710 "src/Numeric/BLAS/Vector/Slice.hs" #-}+     (forSliced2 number_ $ \xs ys -> VectorSlice.add xs ys == VectorSlice.add ys xs)+ DocTest.printPrefix "Numeric.BLAS.Vector.Slice:711: "+{-# LINE 711 "src/Numeric/BLAS/Vector/Slice.hs" #-}+ DocTest.property+{-# LINE 711 "src/Numeric/BLAS/Vector/Slice.hs" #-}      (forSliced2 number_ $ \xs ys -> VectorSlice.toVector xs == VectorSlice.sub xs ys |+| VectorSlice.toVector ys)- DocTest.printPrefix "Numeric.BLAS.Vector.Slice:735: "-{-# LINE 735 "src/Numeric/BLAS/Vector/Slice.hs" #-}+ DocTest.printPrefix "Numeric.BLAS.Vector.Slice:736: "+{-# LINE 736 "src/Numeric/BLAS/Vector/Slice.hs" #-}  DocTest.property-{-# LINE 735 "src/Numeric/BLAS/Vector/Slice.hs" #-}+{-# LINE 736 "src/Numeric/BLAS/Vector/Slice.hs" #-}      (forSliced number_ $ \xs -> VectorSlice.toVector xs == Vector.negate (VectorSlice.negate xs))- DocTest.printPrefix "Numeric.BLAS.Vector.Slice:748: "-{-# LINE 748 "src/Numeric/BLAS/Vector/Slice.hs" #-}+ DocTest.printPrefix "Numeric.BLAS.Vector.Slice:749: "+{-# LINE 749 "src/Numeric/BLAS/Vector/Slice.hs" #-}  DocTest.property-{-# LINE 748 "src/Numeric/BLAS/Vector/Slice.hs" #-}+{-# LINE 749 "src/Numeric/BLAS/Vector/Slice.hs" #-}      (QC.forAll (genNumber maxElem) $ \d -> forSliced number_ $ \xs -> VectorSlice.toVector xs == Vector.raise (-d) (VectorSlice.raise d xs))- DocTest.printPrefix "Numeric.BLAS.Vector.Slice:765: "-{-# LINE 765 "src/Numeric/BLAS/Vector/Slice.hs" #-}+ DocTest.printPrefix "Numeric.BLAS.Vector.Slice:766: "+{-# LINE 766 "src/Numeric/BLAS/Vector/Slice.hs" #-}  DocTest.property-{-# LINE 765 "src/Numeric/BLAS/Vector/Slice.hs" #-}+{-# LINE 766 "src/Numeric/BLAS/Vector/Slice.hs" #-}      (forSliced2 number_ $ \xs ys -> VectorSlice.mul xs ys == VectorSlice.mul ys xs)- DocTest.printPrefix "Numeric.BLAS.Vector.Slice:773: "-{-# LINE 773 "src/Numeric/BLAS/Vector/Slice.hs" #-}+ DocTest.printPrefix "Numeric.BLAS.Vector.Slice:774: "+{-# LINE 774 "src/Numeric/BLAS/Vector/Slice.hs" #-}  DocTest.property-{-# LINE 773 "src/Numeric/BLAS/Vector/Slice.hs" #-}+{-# LINE 774 "src/Numeric/BLAS/Vector/Slice.hs" #-}      (forSliced2 number_ $ \xs ys -> VectorSlice.mulConj xs ys == Vector.mul (VectorSlice.conjugate xs) (VectorSlice.toVector ys))- DocTest.printPrefix "Numeric.BLAS.Vector.Slice:897: "-{-# LINE 897 "src/Numeric/BLAS/Vector/Slice.hs" #-}+ DocTest.printPrefix "Numeric.BLAS.Vector.Slice:898: "+{-# LINE 898 "src/Numeric/BLAS/Vector/Slice.hs" #-}  DocTest.property-{-# LINE 897 "src/Numeric/BLAS/Vector/Slice.hs" #-}+{-# LINE 898 "src/Numeric/BLAS/Vector/Slice.hs" #-}      (forSliced complex_ $ \xs -> approxReal 1e-2 (VectorSlice.norm2 xs) $ let (xrs,xis) = VectorSlice.unzipComplex xs in sqrt $ VectorSlice.norm2Squared xrs + VectorSlice.norm2Squared xis)
test/Test/Float/Numeric/BLAS/Vector/Slice.hs view
@@ -2,11 +2,12 @@ {-# LINE 87 "src/Numeric/BLAS/Vector/Slice.hs" #-}  {-# OPTIONS_GHC -XTypeOperators #-}+{-# OPTIONS_GHC -XGADTs #-} module Test.Float.Numeric.BLAS.Vector.Slice where  import qualified Test.DocTest.Driver as DocTest -{-# LINE 89 "src/Numeric/BLAS/Vector/Slice.hs" #-}+{-# LINE 90 "src/Numeric/BLAS/Vector/Slice.hs" #-} import     qualified Test.Slice as TestSlice import     Test.Float.Type (Number_) import     Test.Generator (genNumber)@@ -149,123 +150,123 @@  test :: DocTest.T () test = do- DocTest.printPrefix "Numeric.BLAS.Vector.Slice:300: "-{-# LINE 300 "src/Numeric/BLAS/Vector/Slice.hs" #-}+ DocTest.printPrefix "Numeric.BLAS.Vector.Slice:301: "+{-# LINE 301 "src/Numeric/BLAS/Vector/Slice.hs" #-}  DocTest.property-{-# LINE 300 "src/Numeric/BLAS/Vector/Slice.hs" #-}+{-# LINE 301 "src/Numeric/BLAS/Vector/Slice.hs" #-}      (QC.forAll genShape $ \shape@(_::+(_rows,columns)::+_) -> QC.forAll (QC.elements (Shape.indices columns)) $ \c -> QC.forAll (genVector shape number_) $ \xs -> VectorSlice.extract (Slice.column c . Slice.left . Slice.right) xs == Matrix.takeColumn c (Vector.takeLeft (Vector.takeRight (xs :: Vector Number_))))- DocTest.printPrefix "Numeric.BLAS.Vector.Slice:302: "-{-# LINE 302 "src/Numeric/BLAS/Vector/Slice.hs" #-}+ DocTest.printPrefix "Numeric.BLAS.Vector.Slice:303: "+{-# LINE 303 "src/Numeric/BLAS/Vector/Slice.hs" #-}  DocTest.property-{-# LINE 302 "src/Numeric/BLAS/Vector/Slice.hs" #-}+{-# LINE 303 "src/Numeric/BLAS/Vector/Slice.hs" #-}      (forAll_ (TestSlice.genShapeSelect 4 100) $ \(TestSlice.ShapeSelect sh select) -> QC.forAll (genVector sh number_) $ \xs -> case TestSlice.instantiate sh select of TestSlice.Extraction slice cut -> VectorSlice.extract slice xs == cut xs)- DocTest.printPrefix "Numeric.BLAS.Vector.Slice:334: "-{-# LINE 334 "src/Numeric/BLAS/Vector/Slice.hs" #-}- DocTest.property-{-# LINE 334 "src/Numeric/BLAS/Vector/Slice.hs" #-}-     (forSliced2 number_ $ \xs ys -> VectorSlice.inner xs ys == Vector.dot (VectorSlice.conjugate xs) (VectorSlice.toVector ys))  DocTest.printPrefix "Numeric.BLAS.Vector.Slice:335: " {-# LINE 335 "src/Numeric/BLAS/Vector/Slice.hs" #-}  DocTest.property {-# LINE 335 "src/Numeric/BLAS/Vector/Slice.hs" #-}+     (forSliced2 number_ $ \xs ys -> VectorSlice.inner xs ys == Vector.dot (VectorSlice.conjugate xs) (VectorSlice.toVector ys))+ DocTest.printPrefix "Numeric.BLAS.Vector.Slice:336: "+{-# LINE 336 "src/Numeric/BLAS/Vector/Slice.hs" #-}+ DocTest.property+{-# LINE 336 "src/Numeric/BLAS/Vector/Slice.hs" #-}      (forSliced number_ $ \xs -> VectorSlice.inner xs xs == Scalar.fromReal (VectorSlice.norm2Squared xs))- DocTest.printPrefix "Numeric.BLAS.Vector.Slice:418: "-{-# LINE 418 "src/Numeric/BLAS/Vector/Slice.hs" #-}+ DocTest.printPrefix "Numeric.BLAS.Vector.Slice:419: "+{-# LINE 419 "src/Numeric/BLAS/Vector/Slice.hs" #-}  DocTest.property-{-# LINE 418 "src/Numeric/BLAS/Vector/Slice.hs" #-}+{-# LINE 419 "src/Numeric/BLAS/Vector/Slice.hs" #-}      (forSliced number_ $ \xs -> VectorSlice.sum xs == List.sum (listFromSlice xs))- DocTest.printPrefix "Numeric.BLAS.Vector.Slice:491: "-{-# LINE 491 "src/Numeric/BLAS/Vector/Slice.hs" #-}+ DocTest.printPrefix "Numeric.BLAS.Vector.Slice:492: "+{-# LINE 492 "src/Numeric/BLAS/Vector/Slice.hs" #-}  DocTest.property-{-# LINE 491 "src/Numeric/BLAS/Vector/Slice.hs" #-}+{-# LINE 492 "src/Numeric/BLAS/Vector/Slice.hs" #-}      (forSliced number_ $ \xs -> VectorSlice.normInf xs == List.maximum (0 : List.map absolute (listFromSlice xs)))- DocTest.printPrefix "Numeric.BLAS.Vector.Slice:502: "-{-# LINE 502 "src/Numeric/BLAS/Vector/Slice.hs" #-}+ DocTest.printPrefix "Numeric.BLAS.Vector.Slice:503: "+{-# LINE 503 "src/Numeric/BLAS/Vector/Slice.hs" #-}  DocTest.property-{-# LINE 502 "src/Numeric/BLAS/Vector/Slice.hs" #-}+{-# LINE 503 "src/Numeric/BLAS/Vector/Slice.hs" #-}      (forSliced number_ $ \xs -> VectorSlice.normInf1 xs == List.maximum (0 : List.map Scalar.norm1 (listFromSlice xs)))- DocTest.printPrefix "Numeric.BLAS.Vector.Slice:517: "-{-# LINE 517 "src/Numeric/BLAS/Vector/Slice.hs" #-}- DocTest.property-{-# LINE 517 "src/Numeric/BLAS/Vector/Slice.hs" #-}-     (forSliced number_ $ \xs -> isNonEmpty xs ==> let (xi,xm) = VectorSlice.argAbsMaximum xs in VectorSlice.access xs xi == xm)  DocTest.printPrefix "Numeric.BLAS.Vector.Slice:518: " {-# LINE 518 "src/Numeric/BLAS/Vector/Slice.hs" #-}  DocTest.property {-# LINE 518 "src/Numeric/BLAS/Vector/Slice.hs" #-}-     (forSliced number_ $ \xs -> isNonEmpty xs ==> let (_xi,xm) = VectorSlice.argAbsMaximum xs in List.all (\x -> absolute x <= absolute xm) $ listFromSlice xs)+     (forSliced number_ $ \xs -> isNonEmpty xs ==> let (xi,xm) = VectorSlice.argAbsMaximum xs in VectorSlice.access xs xi == xm)  DocTest.printPrefix "Numeric.BLAS.Vector.Slice:519: " {-# LINE 519 "src/Numeric/BLAS/Vector/Slice.hs" #-}  DocTest.property {-# LINE 519 "src/Numeric/BLAS/Vector/Slice.hs" #-}+     (forSliced number_ $ \xs -> isNonEmpty xs ==> let (_xi,xm) = VectorSlice.argAbsMaximum xs in List.all (\x -> absolute x <= absolute xm) $ listFromSlice xs)+ DocTest.printPrefix "Numeric.BLAS.Vector.Slice:520: "+{-# LINE 520 "src/Numeric/BLAS/Vector/Slice.hs" #-}+ DocTest.property+{-# LINE 520 "src/Numeric/BLAS/Vector/Slice.hs" #-}      (forSliced number_ $ \xs -> forSliced number_ $ \ys -> isNonEmpty xs && isNonEmpty ys ==> let (_xi,xm) = VectorSlice.argAbsMaximum xs; (_yi,ym) = VectorSlice.argAbsMaximum ys; (zi,zm) = Vector.argAbsMaximum (VectorSlice.toVector xs +++ VectorSlice.toVector ys) in case zi of Left _ -> xm==zm && absolute xm >= absolute ym; Right _ -> ym==zm && absolute xm < absolute ym)- DocTest.printPrefix "Numeric.BLAS.Vector.Slice:566: "-{-# LINE 566 "src/Numeric/BLAS/Vector/Slice.hs" #-}+ DocTest.printPrefix "Numeric.BLAS.Vector.Slice:567: "+{-# LINE 567 "src/Numeric/BLAS/Vector/Slice.hs" #-}  DocTest.property-{-# LINE 566 "src/Numeric/BLAS/Vector/Slice.hs" #-}+{-# LINE 567 "src/Numeric/BLAS/Vector/Slice.hs" #-}      (forSliced real_ $ \xs -> isNonEmpty xs ==> VectorSlice.argAbsMaximum xs == VectorSlice.argAbs1Maximum xs)- DocTest.printPrefix "Numeric.BLAS.Vector.Slice:591: "-{-# LINE 591 "src/Numeric/BLAS/Vector/Slice.hs" #-}+ DocTest.printPrefix "Numeric.BLAS.Vector.Slice:592: "+{-# LINE 592 "src/Numeric/BLAS/Vector/Slice.hs" #-}  DocTest.property-{-# LINE 591 "src/Numeric/BLAS/Vector/Slice.hs" #-}+{-# LINE 592 "src/Numeric/BLAS/Vector/Slice.hs" #-}      (QC.forAll genShape $ \sh@(_::+(_rows,columns)::+_) -> QC.forAll (QC.elements (Shape.indices columns)) $ \c -> QC.forAll (genVector sh $ genNumber 3) $ \xt -> let xs = takeColumn c xt in approx 1e-2 (VectorSlice.product xs) (List.product (listFromSlice (xs :: Sliced Number_))))- DocTest.printPrefix "Numeric.BLAS.Vector.Slice:602: "-{-# LINE 602 "src/Numeric/BLAS/Vector/Slice.hs" #-}- DocTest.property-{-# LINE 602 "src/Numeric/BLAS/Vector/Slice.hs" #-}-     (forSliced real_ $ \xs -> isNonEmpty xs ==> VectorSlice.minimum xs == List.minimum (listFromSlice xs))  DocTest.printPrefix "Numeric.BLAS.Vector.Slice:603: " {-# LINE 603 "src/Numeric/BLAS/Vector/Slice.hs" #-}  DocTest.property {-# LINE 603 "src/Numeric/BLAS/Vector/Slice.hs" #-}+     (forSliced real_ $ \xs -> isNonEmpty xs ==> VectorSlice.minimum xs == List.minimum (listFromSlice xs))+ DocTest.printPrefix "Numeric.BLAS.Vector.Slice:604: "+{-# LINE 604 "src/Numeric/BLAS/Vector/Slice.hs" #-}+ DocTest.property+{-# LINE 604 "src/Numeric/BLAS/Vector/Slice.hs" #-}      (forSliced real_ $ \xs -> isNonEmpty xs ==> VectorSlice.maximum xs == List.maximum (listFromSlice xs))- DocTest.printPrefix "Numeric.BLAS.Vector.Slice:619: "-{-# LINE 619 "src/Numeric/BLAS/Vector/Slice.hs" #-}+ DocTest.printPrefix "Numeric.BLAS.Vector.Slice:620: "+{-# LINE 620 "src/Numeric/BLAS/Vector/Slice.hs" #-}  DocTest.property-{-# LINE 619 "src/Numeric/BLAS/Vector/Slice.hs" #-}+{-# LINE 620 "src/Numeric/BLAS/Vector/Slice.hs" #-}      (forSliced real_ $ \xs -> isNonEmpty xs ==> VectorSlice.limits xs == Array.limits (VectorSlice.toVector xs))- DocTest.printPrefix "Numeric.BLAS.Vector.Slice:649: "-{-# LINE 649 "src/Numeric/BLAS/Vector/Slice.hs" #-}- DocTest.property-{-# LINE 649 "src/Numeric/BLAS/Vector/Slice.hs" #-}-     (forSliced number_ $ \xs -> VectorSlice.negate xs == VectorSlice.scale minusOne xs)  DocTest.printPrefix "Numeric.BLAS.Vector.Slice:650: " {-# LINE 650 "src/Numeric/BLAS/Vector/Slice.hs" #-}  DocTest.property {-# LINE 650 "src/Numeric/BLAS/Vector/Slice.hs" #-}-     (forSliced number_ $ \xs -> VectorSlice.scale 2 xs == VectorSlice.add xs xs)- DocTest.printPrefix "Numeric.BLAS.Vector.Slice:709: "-{-# LINE 709 "src/Numeric/BLAS/Vector/Slice.hs" #-}+     (forSliced number_ $ \xs -> VectorSlice.negate xs == VectorSlice.scale minusOne xs)+ DocTest.printPrefix "Numeric.BLAS.Vector.Slice:651: "+{-# LINE 651 "src/Numeric/BLAS/Vector/Slice.hs" #-}  DocTest.property-{-# LINE 709 "src/Numeric/BLAS/Vector/Slice.hs" #-}-     (forSliced2 number_ $ \xs ys -> VectorSlice.add xs ys == VectorSlice.add ys xs)+{-# LINE 651 "src/Numeric/BLAS/Vector/Slice.hs" #-}+     (forSliced number_ $ \xs -> VectorSlice.scale 2 xs == VectorSlice.add xs xs)  DocTest.printPrefix "Numeric.BLAS.Vector.Slice:710: " {-# LINE 710 "src/Numeric/BLAS/Vector/Slice.hs" #-}  DocTest.property {-# LINE 710 "src/Numeric/BLAS/Vector/Slice.hs" #-}+     (forSliced2 number_ $ \xs ys -> VectorSlice.add xs ys == VectorSlice.add ys xs)+ DocTest.printPrefix "Numeric.BLAS.Vector.Slice:711: "+{-# LINE 711 "src/Numeric/BLAS/Vector/Slice.hs" #-}+ DocTest.property+{-# LINE 711 "src/Numeric/BLAS/Vector/Slice.hs" #-}      (forSliced2 number_ $ \xs ys -> VectorSlice.toVector xs == VectorSlice.sub xs ys |+| VectorSlice.toVector ys)- DocTest.printPrefix "Numeric.BLAS.Vector.Slice:735: "-{-# LINE 735 "src/Numeric/BLAS/Vector/Slice.hs" #-}+ DocTest.printPrefix "Numeric.BLAS.Vector.Slice:736: "+{-# LINE 736 "src/Numeric/BLAS/Vector/Slice.hs" #-}  DocTest.property-{-# LINE 735 "src/Numeric/BLAS/Vector/Slice.hs" #-}+{-# LINE 736 "src/Numeric/BLAS/Vector/Slice.hs" #-}      (forSliced number_ $ \xs -> VectorSlice.toVector xs == Vector.negate (VectorSlice.negate xs))- DocTest.printPrefix "Numeric.BLAS.Vector.Slice:748: "-{-# LINE 748 "src/Numeric/BLAS/Vector/Slice.hs" #-}+ DocTest.printPrefix "Numeric.BLAS.Vector.Slice:749: "+{-# LINE 749 "src/Numeric/BLAS/Vector/Slice.hs" #-}  DocTest.property-{-# LINE 748 "src/Numeric/BLAS/Vector/Slice.hs" #-}+{-# LINE 749 "src/Numeric/BLAS/Vector/Slice.hs" #-}      (QC.forAll (genNumber maxElem) $ \d -> forSliced number_ $ \xs -> VectorSlice.toVector xs == Vector.raise (-d) (VectorSlice.raise d xs))- DocTest.printPrefix "Numeric.BLAS.Vector.Slice:765: "-{-# LINE 765 "src/Numeric/BLAS/Vector/Slice.hs" #-}+ DocTest.printPrefix "Numeric.BLAS.Vector.Slice:766: "+{-# LINE 766 "src/Numeric/BLAS/Vector/Slice.hs" #-}  DocTest.property-{-# LINE 765 "src/Numeric/BLAS/Vector/Slice.hs" #-}+{-# LINE 766 "src/Numeric/BLAS/Vector/Slice.hs" #-}      (forSliced2 number_ $ \xs ys -> VectorSlice.mul xs ys == VectorSlice.mul ys xs)- DocTest.printPrefix "Numeric.BLAS.Vector.Slice:773: "-{-# LINE 773 "src/Numeric/BLAS/Vector/Slice.hs" #-}+ DocTest.printPrefix "Numeric.BLAS.Vector.Slice:774: "+{-# LINE 774 "src/Numeric/BLAS/Vector/Slice.hs" #-}  DocTest.property-{-# LINE 773 "src/Numeric/BLAS/Vector/Slice.hs" #-}+{-# LINE 774 "src/Numeric/BLAS/Vector/Slice.hs" #-}      (forSliced2 number_ $ \xs ys -> VectorSlice.mulConj xs ys == Vector.mul (VectorSlice.conjugate xs) (VectorSlice.toVector ys))- DocTest.printPrefix "Numeric.BLAS.Vector.Slice:897: "-{-# LINE 897 "src/Numeric/BLAS/Vector/Slice.hs" #-}+ DocTest.printPrefix "Numeric.BLAS.Vector.Slice:898: "+{-# LINE 898 "src/Numeric/BLAS/Vector/Slice.hs" #-}  DocTest.property-{-# LINE 897 "src/Numeric/BLAS/Vector/Slice.hs" #-}+{-# LINE 898 "src/Numeric/BLAS/Vector/Slice.hs" #-}      (forSliced complex_ $ \xs -> approxReal 1e-2 (VectorSlice.norm2 xs) $ let (xrs,xis) = VectorSlice.unzipComplex xs in sqrt $ VectorSlice.norm2Squared xrs + VectorSlice.norm2Squared xis)