packages feed

fpnla-examples-0.1: src/FPNLA/Operations/BLAS/Strategies/DOT/DefSeq.hs

{-# LANGUAGE FlexibleInstances     #-}
{-# LANGUAGE MultiParamTypeClasses #-}

module FPNLA.Operations.BLAS.Strategies.DOT.DefSeq (

) where

import           FPNLA.Matrix                (Vector, foldr_v, zipWith_v)
import           FPNLA.Operations.BLAS       (DOT (dot))
import           FPNLA.Operations.Parameters (Elt, blasResultS)
import           FPNLA.Operations.BLAS.Strategies.DataTypes (DefSeq)

instance (Elt e, Vector v e) => DOT DefSeq v e where
    dot _ pvA pvB = blasResultS . foldr_v (+) 0 $ zipWith_v (*) pvA pvB