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.


top