Tuple partitioners
Haskell implementation of fast Practicable Inducers/Tuple partitioners
Sections
Maximum-roll-by-derived-dimension tuple partitioner
Tuple partitioner
The application of the tuple partitioner $I_{P,U,\mathrm{K}} \in \mathrm{computers}$ is described in Haskell.
The tuple partitioner is defined in module AlignmentPracticable
,
parametersSystemsPartitioner ::
Integer -> Integer -> Integer -> System -> Set.Set Variable -> Histogram -> Histogram -> Double ->
Maybe (Set.Set ([Set.Set (State,Int)], Histogram, Histogram))
parametersSystemsPartitioner mmax umax pmax uu kk bb bbrr y1
...
The repa tuple partitioner is defined in module AlignmentPracticableRepa
,
parametersSystemsPartitionerRepa ::
Integer -> Integer -> Integer -> System -> Set.Set Variable ->
(HistogramRepaVec, HistogramRepaVec, UV.Vector Double) -> Double ->
Maybe [(Set.Set (Set.Set Variable),(HistogramRepaVec,HistogramRepaVec))]
parametersSystemsPartitionerRepa mmax umax pmax uu kk (rrv,ggv,ssv) y1
...
There is also a version that does no checking on the arguments,
parametersSystemsPartitionerRepa_u ::
Integer -> Integer -> Integer -> System -> Set.Set Variable ->
(HistogramRepaVec, HistogramRepaVec, UV.Vector Double) -> Double ->
[(Set.Set (Set.Set Variable),(HistogramRepaVec,HistogramRepaVec))]
parametersSystemsPartitionerRepa_u mmax umax pmax uu kk (rrv,ggv,ssv) y1
...
Another version does no checking on the arguments and returns the cardinality of the searched,
parametersSystemsPartitionerRepa_ui ::
Integer -> Integer -> Integer -> System -> Set.Set Variable ->
(HistogramRepaVec, HistogramRepaVec, UV.Vector Double) -> Double ->
([(Set.Set (Set.Set Variable),(HistogramRepaVec,HistogramRepaVec))],Integer)
parametersSystemsPartitionerRepa_ui mmax umax pmax uu kk (rrv,ggv,ssv) y1
...
Note that the repa partitioners are partly implemented in C using the Foreign Function Interface.
Maximum-roll-by-derived-dimension tuple partitioner
The application of the maximum-roll-by-derived-dimension tuple partitioner $I_{P,U,\mathrm{K},\mathrm{mm}} \in \mathrm{computers}$ is described in Haskell.
The tuple partitioner is defined in module AlignmentPracticable
,
parametersSystemsPartitionerMaxRollByM ::
Integer -> Integer -> Integer -> System -> Set.Set Variable -> Histogram -> Histogram -> Double ->
Maybe (Set.Set ([Set.Set (State,Int)], Histogram, Histogram))
parametersSystemsPartitionerMaxRollByM mmax umax pmax uu kk bb bbrr y1
...
The repa tuple partitioner is defined in module AlignmentPracticableRepa
,
parametersSystemsPartitionerMaxRollByMRepa ::
Integer -> Integer -> Integer -> System -> Set.Set Variable ->
(HistogramRepaVec, HistogramRepaVec, UV.Vector Double) -> Double ->
Maybe [(Set.Set (Set.Set Variable),(HistogramRepaVec,HistogramRepaVec))]
parametersSystemsPartitionerMaxRollByMRepa mmax umax pmax uu kk bb y1
...
There is also a version that does no checking on the arguments,
parametersSystemsPartitionerMaxRollByMRepa_u ::
Integer -> Integer -> Integer -> System -> Set.Set Variable ->
(HistogramRepaVec, HistogramRepaVec, UV.Vector Double) -> Double ->
[(Set.Set (Set.Set Variable),(HistogramRepaVec,HistogramRepaVec))]
parametersSystemsPartitionerMaxRollByMRepa_u mmax umax pmax uu kk bb y1
...
Another version does no checking on the arguments and returns the cardinality of the searched,
parametersSystemsPartitionerMaxRollByMRepa_ui ::
Integer -> Integer -> Integer -> System -> Set.Set Variable ->
(HistogramRepaVec, HistogramRepaVec, UV.Vector Double) -> Double ->
([(Set.Set (Set.Set Variable),(HistogramRepaVec,HistogramRepaVec))],Integer)
parametersSystemsPartitionerMaxRollByMRepa_ui mmax umax pmax uu kk (rrv,_,_) y1
...
Note that the repa partitioners are partly implemented in C using the Foreign Function Interface.