diff --git a/src/Data/NumIdr/Array/Array.idr b/src/Data/NumIdr/Array/Array.idr index 3dc8e9c..4510476 100644 --- a/src/Data/NumIdr/Array/Array.idr +++ b/src/Data/NumIdr/Array/Array.idr @@ -484,6 +484,15 @@ stack axis arrs = rewrite sym (lengthCorrect arrs) in getAxisInd FZ (i :: is) = (i, is) getAxisInd {s=_::_} (FS ax) (i :: is) = mapSnd (i::) (getAxisInd ax is) +export +transpose : Array s a -> Array (reverse s) a +transpose arr with (viewShape arr) + _ | Shape s = fromFunctionNB (reverse s) (\is => arr !# reverse is) + +export +(.T) : Array s a -> Array (reverse s) a +(.T) = transpose + -------------------------------------------------------------------------------- -- Implementations diff --git a/src/Data/NumIdr/Matrix.idr b/src/Data/NumIdr/Matrix.idr index bfef1f4..adcb77b 100644 --- a/src/Data/NumIdr/Matrix.idr +++ b/src/Data/NumIdr/Matrix.idr @@ -141,16 +141,6 @@ hstack : {m : _} -> Vect n (Vector m a) -> Matrix m n a hstack = stack 1 -export -transpose : Matrix m n a -> Matrix n m a -transpose mat with (viewShape mat) - _ | Shape [m,n] = fromFunctionNB [n,m] (\[i,j] => mat!#[j,i]) - -export -(.T) : Matrix m n a -> Matrix n m a -(.T) = transpose - - ||| Calculate the outer product of two vectors as a matrix. export outer : Num a => Vector m a -> Vector n a -> Matrix m n a