full-text-search-0.2.2.3: src/Data/SearchEngine/DocFeatVals.hs
{-# LANGUAGE BangPatterns, GeneralizedNewtypeDeriving #-}
module Data.SearchEngine.DocFeatVals (
DocFeatVals,
featureValue,
create,
) where
import Data.SearchEngine.DocTermIds (vecIndexIx, vecCreateIx)
import Data.Vector (Vector)
import Data.Ix (Ix)
-- | Storage for the non-term feature values i a document.
--
newtype DocFeatVals feature = DocFeatVals (Vector Float)
deriving (Show)
featureValue :: (Ix feature, Bounded feature) => DocFeatVals feature -> feature -> Float
featureValue (DocFeatVals featVec) = vecIndexIx featVec
create :: (Ix feature, Bounded feature) =>
(feature -> Float) -> DocFeatVals feature
create docFeatVals =
DocFeatVals (vecCreateIx docFeatVals)