Tuple set list builders
Haskell implementation of fast Practicable Inducers/Tuple set list builders
Sections
Limited-underlying tuple set list builder
No-sum-layer limited-underlying tuple set list builder
Multi-effective no-sum-layer limited-underlying tuple set list builder
Level no-sum-layer limited-underlying tuple set list builder
Level multi-effective no-sum-layer limited-underlying tuple set list builder
Limited-underlying tuple set list builder
The application of the limited-underlying tuple set list builder $I_{P,U,\mathrm{B}} \in \mathrm{computers}$ is described in Haskell.
The tuple set builder is defined in module AlignmentPracticable
,
parametersSystemsBuilderTuple ::
Integer -> Integer -> Integer -> Integer -> System -> Set.Set Variable -> Fud -> Histogram -> Histogram ->
Maybe (Set.Set ((Set.Set Variable, Histogram, Histogram),Double))
parametersSystemsBuilderTuple xmax omax bmax mmax uu vv ff xx xxrr
...
The repa tuple set builder is defined in module AlignmentPracticableRepa
,
parametersSystemsBuilderTupleRepa ::
Integer -> Integer -> Integer -> Integer -> System -> Set.Set Variable -> Fud ->
HistoryRepa -> HistogramRepaRed -> HistoryRepa -> HistogramRepaRed ->
Maybe [((Set.Set Variable, (HistogramRepaVec, HistogramRepaVec, UV.Vector Double)),Double)]
parametersSystemsBuilderTupleRepa xmax omax bmax mmax uu vv ff hh hhx hhrr hhrrx
...
For example,
let zzffcstupopt aa rr ff xmax omax = fst $ unzip $ fromJust $ parametersSystemsSamplesShufflesFudsFunctionOptimiserTuple xmax omax (sys aa `uunion` fsys ff) aa rr ff
let buildtup xmax omax bmax mmax uu vv xx xxrr = map (\((kk,_,_),a) -> (kk,a)) $ Set.toList $ fromJust $ parametersSystemsBuilderTuple xmax omax bmax mmax uu vv fudEmpty xx xxrr
let buildtuprr aa rr xmax omax bmax mmax = map (\(kk,(_,_,ssv)) -> (kk, (ssv UV.! 0) - (ssv UV.! 1) - (ssv UV.! 2) + (ssv UV.! 3))) $ fst $ unzip $ fromJust $ parametersSystemsBuilderTupleRepa xmax omax bmax mmax (sys aa) (vars aa) fudEmpty (aahr aa) (aahx aa) (aahr rr) (aahx rr)
let aa = resize 900 $ regpivot 3 3
rpln $ zzffcstupopt aa (ind aa) fudEmpty (3^3) 3
"{({1,2},304.00445769104454),({1,3},304.00445769104454),({2,3},304.00445769104454)}"
"{({1,2,3},591.5865696692235)}"
"{}"
rpln $ buildtup (3^3) 3 2 2 (sys aa) (vars aa) aa (ind aa)
"({1,2,3},591.5865696692235)"
rpln $ buildtup (3^3) 3 (2*3) 2 (sys aa) (vars aa) aa (ind aa)
"({1,2,3},591.5865696692235)"
"({1,3},304.00445769104454)"
"({2,3},304.00445769104454)"
let rr = ashuffle aa 1 `add` ashuffle aa 2
rpln $ buildtuprr aa rr (3^3) 3 (2*3) 2
"({1,2,3},584.965109420802)"
"({1,3},302.99850208975886)"
"({2,3},302.8996220221061)"
No-sum-layer limited-underlying tuple set list builder
The application of the no-sum-layer limited-underlying tuple set list builder, $I_{P,U,\mathrm{B,ns}}$, is described in Haskell.
The tuple set builder is defined in module AlignmentPracticable
,
parametersSystemsBuilderTupleNoSumlayer ::
Integer -> Integer -> Integer -> Integer -> System -> Set.Set Variable -> Fud -> Histogram -> Histogram ->
Maybe (Set.Set ((Set.Set Variable, Histogram, Histogram),Double))
parametersSystemsBuilderTupleNoSumlayer xmax omax bmax mmax uu vv ff xx xxrr
...
The repa tuple set builder is defined in module AlignmentPracticableRepa
,
parametersSystemsBuilderTupleNoSumlayerRepa ::
Integer -> Integer -> Integer -> Integer -> System -> Set.Set Variable -> Fud ->
HistoryRepa -> HistogramRepaRed -> HistoryRepa -> HistogramRepaRed ->
Maybe [((Set.Set Variable, (HistogramRepaVec, HistogramRepaVec, UV.Vector Double)),Double)]
parametersSystemsBuilderTupleNoSumlayerRepa xmax omax bmax mmax uu vv ff hh hhx hhrr hhrrx
There is also a version that does no checking on the arguments,
parametersSystemsBuilderTupleNoSumlayerRepa_u ::
Integer -> Integer -> Integer -> Integer -> System -> Set.Set Variable -> Fud ->
HistoryRepa -> HistogramRepaRed -> HistoryRepa -> HistogramRepaRed ->
[((Set.Set Variable, (HistogramRepaVec, HistogramRepaVec, UV.Vector Double)),Double)]
parametersSystemsBuilderTupleNoSumlayerRepa_u xmax omax bmax mmax uu vv ff hh hhx hhrr hhrrx
...
Another version does no checking on the arguments and returns the cardinality of the searched,
parametersSystemsBuilderTupleNoSumlayerRepa_ui ::
Integer -> Integer -> Integer -> Integer -> System -> Set.Set Variable -> Fud ->
HistoryRepa -> HistogramRepaRed -> HistoryRepa -> HistogramRepaRed ->
([((Set.Set Variable, (HistogramRepaVec, HistogramRepaVec, UV.Vector Double)),Double)],Integer)
parametersSystemsBuilderTupleNoSumlayerRepa_ui xmax omax bmax mmax uu vv ff hh hhx hhrr hhrrx
...
Note that the repa builders are partly implemented in C using the Foreign Function Interface.
Multi-effective no-sum-layer limited-underlying tuple set list builder
The application of the multi-effective no-sum-layer limited-underlying tuple set list builder, $I_{P,U,\mathrm{B,ns,me}}$, is described in Haskell.
The tuple set builder is defined in module AlignmentPracticable
,
parametersSystemsBuilderTupleNoSumlayerMultiEffective ::
Integer -> Integer -> Integer -> Integer -> System -> Set.Set Variable -> Fud -> Histogram -> Histogram ->
Maybe (Set.Set ((Set.Set Variable, Histogram, Histogram),Double))
parametersSystemsBuilderTupleNoSumlayerMultiEffective xmax omax bmax mmax uu vv ff xx xxrr
...
The repa tuple set builder is defined in module AlignmentPracticableRepa
,
parametersSystemsBuilderTupleNoSumlayerMultiEffectiveRepa_u ::
Integer -> Integer -> Integer -> Integer -> System -> Set.Set Variable -> Fud ->
HistoryRepa -> HistogramRepaRed -> HistoryRepa -> HistogramRepaRed ->
[((Set.Set Variable, (HistogramRepaVec, HistogramRepaVec, UV.Vector Double)),Double)]
parametersSystemsBuilderTupleNoSumlayerMultiEffectiveRepa_u xmax omax bmax mmax uu vv ff hh hhx hhrr hhrrx
...
Note that the _u
suffix indicates that no checking is done on the arguments.
A variation also returns the cardinality of the searched,
parametersSystemsBuilderTupleNoSumlayerMultiEffectiveRepa_ui ::
Integer -> Integer -> Integer -> Integer -> System -> Set.Set Variable -> Fud ->
HistoryRepa -> HistogramRepaRed -> HistoryRepa -> HistogramRepaRed ->
([((Set.Set Variable, (HistogramRepaVec, HistogramRepaVec, UV.Vector Double)),Double)],Integer)
parametersSystemsBuilderTupleNoSumlayerMultiEffectiveRepa_ui xmax omax bmax mmax uu vv ff hh hhx hhrr hhrrx
...
Note that the repa builders are partly implemented in C using the Foreign Function Interface.
Level no-sum-layer limited-underlying tuple set list builder
The application of the level no-sum-layer limited-underlying tuple set list builder, $I_{P,U,\mathrm{B,l,ns}}$, is described in Haskell.
The tuple set builder is defined in module AlignmentPracticable
,
parametersSystemsBuilderTupleLevelNoSumlayer ::
Integer -> Integer -> Integer -> Integer -> System -> Set.Set Variable -> Fud -> Fud -> Histogram -> Histogram ->
Maybe (Set.Set ((Set.Set Variable, Histogram, Histogram),Double))
parametersSystemsBuilderTupleLevelNoSumlayer xmax omax bmax mmax uu vvg ffg ff xx xxrr
...
The repa tuple set builder without argument checking is defined in module AlignmentPracticableRepa
,
parametersSystemsBuilderTupleLevelNoSumlayerRepa_u ::
Integer -> Integer -> Integer -> Integer -> System -> Set.Set Variable -> Fud -> Fud ->
HistoryRepa -> HistogramRepaRed -> HistoryRepa -> HistogramRepaRed ->
[((Set.Set Variable, (HistogramRepaVec, HistogramRepaVec, UV.Vector Double)),Double)]
parametersSystemsBuilderTupleLevelNoSumlayerRepa_u xmax omax bmax mmax uu vvg ffg ff hh hhx hhrr hhrrx
...
A variation also returns the cardinality of the searched,
parametersSystemsBuilderTupleLevelNoSumlayerRepa_ui ::
Integer -> Integer -> Integer -> Integer -> System -> Set.Set Variable -> Fud -> Fud ->
HistoryRepa -> HistogramRepaRed -> HistoryRepa -> HistogramRepaRed ->
([((Set.Set Variable, (HistogramRepaVec, HistogramRepaVec, UV.Vector Double)),Double)],Integer)
parametersSystemsBuilderTupleLevelNoSumlayerRepa_ui xmax omax bmax mmax uu vvg ffg ff hh hhx hhrr hhrrx
...
Note that the repa builders are partly implemented in C using the Foreign Function Interface.
Level multi-effective no-sum-layer limited-underlying tuple set list builder
The application of the level multi-effective no-sum-layer limited-underlying tuple set list builder, $I_{P,U,\mathrm{B,l,ns,me}}$, is described in Haskell.
The tuple set builder is defined in module AlignmentPracticable
,
parametersSystemsBuilderTupleLevelNoSumlayerMultiEffective ::
Integer -> Integer -> Integer -> Integer -> System -> Set.Set Variable -> Fud -> Fud -> Histogram -> Histogram ->
Maybe (Set.Set ((Set.Set Variable, Histogram, Histogram),Double))
parametersSystemsBuilderTupleLevelNoSumlayerMultiEffective xmax omax bmax mmax uu vvg ffg ff xx xxrr
...
The repa tuple set builder without argument checking is defined in module AlignmentPracticableRepa
,
parametersSystemsBuilderTupleLevelNoSumlayerMultiEffectiveRepa_u ::
Integer -> Integer -> Integer -> Integer -> System -> Set.Set Variable -> Fud -> Fud ->
HistoryRepa -> HistogramRepaRed -> HistoryRepa -> HistogramRepaRed ->
[((Set.Set Variable, (HistogramRepaVec, HistogramRepaVec, UV.Vector Double)),Double)]
parametersSystemsBuilderTupleLevelNoSumlayerMultiEffectiveRepa_u xmax omax bmax mmax uu vvg ffg ff hh hhx hhrr hhrrx
...
A variation also returns the cardinality of the searched,
parametersSystemsBuilderTupleLevelNoSumlayerMultiEffectiveRepa_ui ::
Integer -> Integer -> Integer -> Integer -> System -> Set.Set Variable -> Fud -> Fud ->
HistoryRepa -> HistogramRepaRed -> HistoryRepa -> HistogramRepaRed ->
([((Set.Set Variable, (HistogramRepaVec, HistogramRepaVec, UV.Vector Double)),Double)],Integer)
parametersSystemsBuilderTupleLevelNoSumlayerMultiEffectiveRepa_ui xmax omax bmax mmax uu vvg ffg ff hh hhx hhrr hhrrx
...
Note that the repa builders are partly implemented in C using the Foreign Function Interface.