前回はrepaの基本的な使い方を説明しました。それを基に、今回はいよいよrepaの特色である行列演算を行う方法を説明します。 前回の補足 前回の記事を書いた後にリリースされたrepa 3.2.1.1で、repaのAPIが少し変更されたので補足しておきます。 ReprクラスはSourceクラスという名前に変更され、Array型は独立した型族からSourceクラスに属する型族に変更されました。 Prelude Data.Array.Repa> :i Source class Source r e where data family Array r sh e extent :: Shape sh => Array r sh e -> sh index :: Shape sh => Array r sh e -> sh -> e unsafeIndex :: Shape sh => Array r