Value rollers

Haskell implementation of fast Practicable Inducers/Value rollers

Sections

Tuple-partition value roller

Maximum-roll tuple-partition value roller

Excluded-self maximum-roll tuple-partition value roller

Tuple-partition value roller

The application of the tuple-partition value roller $I_{P,U,\mathrm{R}} \in \mathrm{computers}$ is described in Haskell.

The roller is defined in module AlignmentPracticable,

parametersRoller :: 
  Integer -> Set.Set ([Set.Set (State,Int)], Histogram, Histogram) -> Maybe (Set.Set [Set.Set (State,Int)])

parametersRoller pmax qq
  ...

The repa roller is defined in module AlignmentPracticableRepa,

parametersRollerRepa :: 
  Integer -> [(Set.Set (Set.Set Variable),(HistogramRepaVec,HistogramRepaVec))] -> Maybe [(Set.Set (Set.Set Variable),V.Vector (UV.Vector Int))]

parametersRollerRepa pmax qq
  ...

Maximum-roll tuple-partition value roller

The application of the roll tuple-partition value roller $I_{P,U,\mathrm{R,mr}} \in \mathrm{computers}$ is described in Haskell.

The maximum-roll roller is implemented simply by constraining the pmax argument to be equal to 1,

parametersRoller 1
  :: Set.Set ([Set.Set (State, Int)], Histogram, Histogram) -> Maybe (Set.Set [Set.Set (State, Int)])

The repa roller is defined in module AlignmentPracticableRepa,

parametersRollerMaximumRollRepa :: 
  (Set.Set (Set.Set Variable),(HistogramRepaVec,HistogramRepaVec)) -> 
  [(Set.Set (Set.Set Variable),V.Vector (UV.Vector Int))]

parametersRollerMaximumRollRepa qq
  ...

Excluded-self maximum-roll tuple-partition value roller

The repa excluded-self maximum-roll tuple-partition value roller $I_{P,U,\mathrm{R,mr,xs}} \in \mathrm{computers}$ is defined in module AlignmentPracticableRepa,

parametersRollerMaximumRollExcludedSelfRepa :: 
  (Set.Set (Set.Set Variable),(HistogramRepaVec,HistogramRepaVec)) -> 
  [(Set.Set (Set.Set Variable),V.Vector (UV.Vector Int))]

parametersRollerMaximumRollExcludedSelfRepa qq
  ...

A variation also returns the cardinality of the searched,

parametersRollerMaximumRollExcludedSelfRepa_i :: 
  (Set.Set (Set.Set Variable),(HistogramRepaVec,HistogramRepaVec)) -> 
  ([(Set.Set (Set.Set Variable),V.Vector (UV.Vector Int))],Integer)

parametersRollerMaximumRollExcludedSelfRepa_i qq
  ...

Note that the repa excluded-self maximum-roll tuple-partition value rollers are partly implemented in C using the Foreign Function Interface.


top