Create Data.NumIdr.Multiply

This commit is contained in:
Kiana Sheibani 2022-05-26 18:50:07 -04:00
parent 97d1bdb538
commit 87d8814c38
Signed by: toki
GPG key ID: 6CB106C25E86A9F7
6 changed files with 122 additions and 8 deletions

View file

@ -1,6 +1,7 @@
module Data.NumIdr.Vector
import Data.Vect
import Data.NumIdr.Multiply
import public Data.NumIdr.Array
%default total
@ -46,6 +47,18 @@ export
index : Fin n -> Vector n a -> a
index n = Array.index [n]
export
(!!) : Vector n a -> Fin n -> a
(!!) = flip index
export
indexMaybe : Nat -> Vector n a -> Maybe a
indexMaybe n = Array.indexMaybe [n]
export
(!?) : Vector n a -> Nat -> Maybe a
(!?) = flip indexMaybe
-- Named projections
export
@ -80,6 +93,11 @@ swizzle p v = rewrite sym (lengthCorrect p)
--------------------------------------------------------------------------------
export
concat : Vector m a -> Vector n a -> Vector (m + n) a
concat = stack 0
export
dot : Num a => Vector n a -> Vector n a -> a
dot = sum .: zipWith (*)