Layerers
Haskell implementation of fast Practicable Inducers/Layerers
Sections
Maximum-roll highest-layer layerer
Excluded-self maximum-roll highest-layer layerer
Excluded-self maximum-roll-by-derived-dimension highest-layer layerer
Level excluded-self maximum-roll highest-layer layerer
Level excluded-self maximum-roll-by-derived-dimension highest-layer layerer
Highest-layer layerer
The application of the highest-layer layerer $I_{P,U,\mathrm{L,d}} \in \mathrm{computers}$ is described in Haskell.
The layerer is defined in module AlignmentPracticable
,
parametersSystemsLayererHighest ::
Integer -> Integer -> Integer -> Integer -> Integer -> Integer -> Integer -> Integer ->
System -> Set.Set Variable -> Histogram -> Histogram -> Integer ->
Maybe (System, Fud, Map.Map (Set.Set Variable) Double)
parametersSystemsLayererHighest wmax lmax xmax omax bmax mmax umax pmax uu vv aa aarr f
...
The repa layerer is defined in module AlignmentPracticableRepa
,
parametersSystemsLayererHighestRepa ::
Integer -> Integer -> Integer -> Integer -> Integer -> Integer -> Integer -> Integer ->
System -> Set.Set Variable -> HistoryRepa -> HistogramRepaRed -> HistoryRepa -> HistogramRepaRed -> Integer ->
Maybe (System, Fud, [(Set.Set Variable, Double)])
parametersSystemsLayererHighestRepa wmax lmax xmax omax bmax mmax umax pmax uu vv xx xxp xxrr xxrrp f
...
buildfftup uu vv ff hh hhp hhrr hhrrp =
fromJust $ parametersSystemsBuilderTupleRepa xmax omax bmax mmax uu vv ff hh hhp hhrr hhrrp
parter uu kk bb y1 = fromJust $ parametersSystemsPartitionerRepa mmax umax pmax uu kk bb y1
roller qq = fromJust $ parametersRollerRepa pmax qq
buildffdervar uu vv ff xx xxp xxrr xxrrp = (List.map (\((kk,_,_),a) -> (kk,a)) $
fromJust $ parametersSystemsBuilderDerivedVarsHighestRepa wmax omax uu vv ff xx xxp xxrr xxrrp)
...
The repa layerer depends on the tuple set builder, the tuple partitioner, the roller and the derived set builder.
Maximum-roll highest-layer layerer
The application of the highest-layer maximum-roll layerer $I_{P,U,\mathrm{L,mr,d}} \in \mathrm{computers}$ is described in Haskell.
The layerer is defined in module AlignmentPracticable
,
parametersSystemsLayererMaximumRollHighest ::
Integer -> Integer -> Integer -> Integer -> Integer -> Integer -> Integer -> Integer ->
System -> Set.Set Variable -> Histogram -> Histogram -> Integer ->
Maybe (System, Fud, Map.Map (Set.Set Variable) Double)
as
parametersSystemsLayererMaximumRollHighest wmax lmax xmax omax bmax mmax umax pmax uu vv aa aarr f
...
The repa layerer is defined in module AlignmentPracticableRepa
,
parametersSystemsLayererMaximumRollHighestRepa ::
Integer -> Integer -> Integer -> Integer -> Integer -> Integer -> Integer -> Integer ->
System -> Set.Set Variable -> HistoryRepa -> HistogramRepaRed -> HistoryRepa -> HistogramRepaRed -> Integer ->
Maybe (System, Fud, [(Set.Set Variable, Double)])
parametersSystemsLayererMaximumRollHighestRepa wmax lmax xmax omax bmax mmax umax pmax uu vv xx xxp xxrr xxrrp f
...
buildfftup uu vv ff hh hhp hhrr hhrrp =
fromJust $ parametersSystemsBuilderTupleRepa xmax omax bmax mmax uu vv ff hh hhp hhrr hhrrp
parter uu kk bb y1 = fromJust $ parametersSystemsPartitionerRepa mmax umax pmax uu kk bb y1
roller qq = parametersRollerMaximumRollRepa qq
buildffdervar uu vv ff xx xxp xxrr xxrrp = (List.map (\((kk,_,_),a) -> (kk,a)) $
fromJust $ parametersSystemsBuilderDerivedVarsHighestRepa wmax omax uu vv ff xx xxp xxrr xxrrp)
...
The repa layerer depends on the tuple set builder, the tuple partitioner, the roller and the derived set builder.
Excluded-self maximum-roll highest-layer layerer
The application of the highest-layer excluded-self maximum-roll layerer $I_{P,U,\mathrm{L,mr,xs,d}} \in \mathrm{computers}$ is described in Haskell.
The layerer is defined in module AlignmentPracticable
,
parametersSystemsLayererMaximumRollExcludedSelfHighest ::
Integer -> Integer -> Integer -> Integer -> Integer -> Integer -> Integer -> Integer ->
System -> Set.Set Variable -> Histogram -> Histogram -> Integer ->
Maybe (System, Fud, Map.Map (Set.Set Variable) Double)
parametersSystemsLayererMaximumRollExcludedSelfHighest wmax lmax xmax omax bmax mmax umax pmax uu vv aa aarr f
...
The repa layerer is defined in module AlignmentPracticableRepa
,
parametersSystemsLayererMaximumRollExcludedSelfHighestRepa ::
Integer -> Integer -> Integer -> Integer -> Integer -> Integer -> Integer -> Integer ->
System -> Set.Set Variable -> HistoryRepa -> HistogramRepaRed -> HistoryRepa -> HistogramRepaRed -> Integer ->
Maybe (System, Fud, [(Set.Set Variable, Double)])
parametersSystemsLayererMaximumRollExcludedSelfHighestRepa
wmax lmax xmax omax bmax mmax umax pmax uu vv xx xxp xxrr xxrrp f
...
buildfftup uu vv ff hh hhp hhrr hhrrp =
parametersSystemsBuilderTupleNoSumlayerMultiEffectiveRepa_u xmax omax bmax mmax uu vv ff hh hhp hhrr hhrrp
parter uu kk bb y1 = parametersSystemsPartitionerRepa_u mmax umax pmax uu kk bb y1
roller qq = parametersRollerMaximumRollExcludedSelfRepa qq
buildffdervar uu vv ff xx xxp xxrr xxrrp = (List.map (\((kk,_,_),a) -> (kk,a)) $
parametersSystemsBuilderDerivedVarsHighestNoSumlayerRepa_u wmax omax uu vv ff xx xxp xxrr xxrrp)
...
There is also a version that does no checking on the arguments,
parametersSystemsLayererMaximumRollExcludedSelfHighestRepa_u ::
Integer -> Integer -> Integer -> Integer -> Integer -> Integer -> Integer -> Integer ->
System -> Set.Set Variable -> HistoryRepa -> HistogramRepaRed -> HistoryRepa -> HistogramRepaRed -> Integer ->
(System, Fud, [(Set.Set Variable, Double)])
parametersSystemsLayererMaximumRollExcludedSelfHighestRepa_u
wmax lmax xmax omax bmax mmax umax pmax uu vv xx xxp xxrr xxrrp f
...
The repa layerer depends on the tuple set builder, the tuple partitioner, the roller and the derived set builder.
The io repa layerer is defined in module AlignmentPracticableIORepa
,
parametersSystemsLayererMaximumRollExcludedSelfHighestIORepa_u ::
Integer -> Integer -> Integer -> Integer -> Integer -> Integer -> Integer -> Integer ->
System -> Set.Set Variable -> HistoryRepa -> HistogramRepaRed -> HistoryRepa -> HistogramRepaRed -> Integer ->
IO (System, Fud, [(Set.Set Variable, Double)])
parametersSystemsLayererMaximumRollExcludedSelfHighestIORepa_u
wmax lmax xmax omax bmax mmax umax pmax uu vv xx xxp xxrr xxrrp f
...
buildfftup uu vv ff hh hhp hhrr hhrrp =
parametersSystemsBuilderTupleNoSumlayerMultiEffectiveRepa_ui xmax omax bmax mmax uu vv ff hh hhp hhrr hhrrp
parter uu kk bb y1 = parametersSystemsPartitionerRepa_ui mmax umax pmax uu kk bb y1
roller qq = parametersRollerMaximumRollExcludedSelfRepa_i qq
buildffdervar uu vv ff xx xxp xxrr xxrrp = (\(x1,s1) -> (List.map (\((kk,_,_),a) -> (kk,a)) x1,s1)) $
parametersSystemsBuilderDerivedVarsHighestNoSumlayerRepa_ui wmax omax uu vv ff xx xxp xxrr xxrrp
...
The repa layerer depends on the tuple set builder, the tuple partitioner, the roller and the derived set builder.
Excluded-self maximum-roll-by-derived-dimension highest-layer layerer
The application of the highest-layer excluded-self maximum-roll-by-derived-dimension layerer $I_{P,U,\mathrm{L,mm,xs,d}} \in \mathrm{computers}$ is described in Haskell.
The layerer is defined in module AlignmentPracticable
,
parametersSystemsLayererMaxRollByMExcludedSelfHighest ::
Integer -> Integer -> Integer -> Integer -> Integer -> Integer -> Integer -> Integer ->
System -> Set.Set Variable -> Histogram -> Histogram -> Integer ->
Maybe (System, Fud, Map.Map (Set.Set Variable) Double)
parametersSystemsLayererMaxRollByMExcludedSelfHighest wmax lmax xmax omax bmax mmax umax pmax uu vv aa aarr f
...
The repa layerer is defined in module AlignmentPracticableRepa
,
parametersSystemsLayererMaxRollByMExcludedSelfHighestRepa ::
Integer -> Integer -> Integer -> Integer -> Integer -> Integer -> Integer -> Integer ->
System -> Set.Set Variable -> HistoryRepa -> HistogramRepaRed -> HistoryRepa -> HistogramRepaRed -> Integer ->
Maybe (System, Fud, [(Set.Set Variable, Double)])
parametersSystemsLayererMaxRollByMExcludedSelfHighestRepa
wmax lmax xmax omax bmax mmax umax pmax uu vv xx xxp xxrr xxrrp f
...
buildfftup uu vv ff hh hhp hhrr hhrrp =
parametersSystemsBuilderTupleNoSumlayerMultiEffectiveRepa_u xmax omax bmax mmax uu vv ff hh hhp hhrr hhrrp
parter uu kk bb y1 = parametersSystemsPartitionerMaxRollByMRepa_u mmax umax pmax uu kk bb y1
roller qq = parametersRollerMaximumRollExcludedSelfRepa qq
buildffdervar uu vv ff xx xxp xxrr xxrrp = (List.map (\((kk,_,_),a) -> (kk,a)) $
parametersSystemsBuilderDerivedVarsHighestNoSumlayerRepa_u wmax omax uu vv ff xx xxp xxrr xxrrp)
...
There is also a version that does no checking on the arguments,
parametersSystemsLayererMaxRollByMExcludedSelfHighestRepa_u ::
Integer -> Integer -> Integer -> Integer -> Integer -> Integer -> Integer -> Integer ->
System -> Set.Set Variable -> HistoryRepa -> HistogramRepaRed -> HistoryRepa -> HistogramRepaRed -> Integer ->
(System, Fud, [(Set.Set Variable, Double)])
parametersSystemsLayererMaxRollByMExcludedSelfHighestRepa_u
wmax lmax xmax omax bmax mmax umax pmax uu vv xx xxp xxrr xxrrp f
...
The repa layerer depends on the tuple set builder, the tuple partitioner, the roller and the derived set builder.
The io repa layerer is defined in module AlignmentPracticableIORepa
,
parametersSystemsLayererMaxRollByMExcludedSelfHighestIORepa_u ::
Integer -> Integer -> Integer -> Integer -> Integer -> Integer -> Integer -> Integer ->
System -> Set.Set Variable -> HistoryRepa -> HistogramRepaRed -> HistoryRepa -> HistogramRepaRed -> Integer ->
IO (System, Fud, [(Set.Set Variable, Double)])
parametersSystemsLayererMaxRollByMExcludedSelfHighestIORepa_u
wmax lmax xmax omax bmax mmax umax pmax uu vv xx xxp xxrr xxrrp f
...
buildfftup uu vv ff hh hhp hhrr hhrrp =
parametersSystemsBuilderTupleNoSumlayerMultiEffectiveRepa_ui xmax omax bmax mmax uu vv ff hh hhp hhrr hhrrp
parter uu kk bb y1 = parametersSystemsPartitionerMaxRollByMRepa_ui mmax umax pmax uu kk bb y1
roller qq = parametersRollerMaximumRollExcludedSelfRepa_i qq
buildffdervar uu vv ff xx xxp xxrr xxrrp = (\(x1,s1) -> (List.map (\((kk,_,_),a) -> (kk,a)) x1,s1)) $
parametersSystemsBuilderDerivedVarsHighestNoSumlayerRepa_ui wmax omax uu vv ff xx xxp xxrr xxrrp
...
The repa layerer depends on the tuple set builder, the tuple partitioner, the roller and the derived set builder.
For example,
let layerermmxs aa aarr lmax xmax omax bmax mmax umax pmax = (\(_,ff,_) -> ff) $ fromJust $ parametersSystemsLayererMaxRollByMExcludedSelfHighest xmax lmax xmax omax bmax mmax umax pmax (sys aa) (vars aa) aa aarr 1
let layerermmxsrr aa rr lmax xmax omax bmax mmax umax pmax = (\(_,ff,_) -> ff) $ fromJust $ parametersSystemsLayererMaxRollByMExcludedSelfHighestRepa xmax lmax xmax omax bmax mmax umax pmax (sys aa) (vars aa) (aahr aa) (aahx aa) (aahr rr) (aahx rr) 1
let layerermmxsrrIO aa rr lmax xmax omax bmax mmax umax pmax = parametersSystemsLayererMaxRollByMExcludedSelfHighestIORepa_u xmax lmax xmax omax bmax mmax umax pmax (sys aa) (vars aa) (aahr aa) (aahx aa) (aahr rr) (aahx rr) 1
let aa = resize 100 $ regpivot 3 2
rp $ layerermmxs aa (ind aa) 1 (3^2) 2 2 2 (3^2) 1
"{({({(1,1),(<<1,1>,1>,0)},1 % 1),({(1,2),(<<1,1>,1>,1)},1 % 1),({(1,3),(<<1,1>,1>,1)},1 % 1)},{<<1,1>,1>}),({({(2,1),(<<1,1>,2>,0)},1 % 1),({(2,2),(<<1,1>,2>,1)},1 % 1),({(2,3),(<<1,1>,2>,1)},1 % 1)},{<<1,1>,2>})}"
rpln $ (concat . map (aall . ttaa) . Set.toList . ffqq) $ layerermmxs aa (ind aa) 1 (3^2) 2 2 2 (3^2) 1
"({(1,1),(<<1,1>,1>,0)},1 % 1)"
"({(1,2),(<<1,1>,1>,1)},1 % 1)"
"({(1,3),(<<1,1>,1>,1)},1 % 1)"
"({(2,1),(<<1,1>,2>,0)},1 % 1)"
"({(2,2),(<<1,1>,2>,1)},1 % 1)"
"({(2,3),(<<1,1>,2>,1)},1 % 1)"
layerermmxsrr aa (ind aa) 1 (3^2) 2 2 2 (3^2) 1 == layerermmxs aa (ind aa) 1 (3^2) 2 2 2 (3^2) 1
True
(_,ff,_) <- layerermmxsrrIO aa (ind aa) 1 (3^2) 2 2 2 (3^2) 1
ff == layerermmxs aa (ind aa) 1 (3^2) 2 2 2 (3^2) 1
True
Level excluded-self maximum-roll highest-layer layerer
The level highest-layer excluded-self maximum-roll layerer, $I_{P,U,\mathrm{L,mr,xs,d,l}}$, is defined in module AlignmentPracticable
,
parametersSystemsLayererLevelMaximumRollExcludedSelfHighest ::
Integer -> Integer -> Integer -> Integer -> Integer -> Integer -> Integer -> Integer ->
System -> Set.Set Variable -> Fud -> Histogram -> Histogram -> Integer -> Integer ->
Maybe (System, Fud, Map.Map (Set.Set Variable) Double)
parametersSystemsLayererLevelMaximumRollExcludedSelfHighest
wmax lmax xmax omax bmax mmax umax pmax uu vvg ffg aa aarr f g
...
The repa layerer is defined in module AlignmentPracticableRepa
,
parametersSystemsLayererLevelMaximumRollExcludedSelfHighestRepa_u ::
Integer -> Integer -> Integer -> Integer -> Integer -> Integer -> Integer -> Integer ->
System -> Set.Set Variable -> Fud ->
HistoryRepa -> HistogramRepaRed -> HistoryRepa -> HistogramRepaRed -> Integer -> Integer ->
(System, Fud, [(Set.Set Variable, Double)])
parametersSystemsLayererLevelMaximumRollExcludedSelfHighestRepa_u
wmax lmax xmax omax bmax mmax umax pmax uu vvg ffg xx xxp xxrr xxrrp f g
...
buildfftup uu vvg ffg ff hh hhp hhrr hhrrp =
parametersSystemsBuilderTupleLevelNoSumlayerMultiEffectiveRepa_u xmax omax bmax mmax uu vvg ffg ff hh hhp hhrr hhrrp
parter uu kk bb y1 = parametersSystemsPartitionerRepa_u mmax umax pmax uu kk bb y1
roller qq = parametersRollerMaximumRollExcludedSelfRepa qq
buildffdervar uu vv ffg ff xx xxp xxrr xxrrp = (List.map (\((kk,_,_),a) -> (kk,a)) $
parametersSystemsBuilderDerivedVarsLevelHighestNoSumlayerRepa_u
wmax omax uu vv ffg ff xx xxp xxrr xxrrp)
...
Note that this version does no checking on the arguments. The repa layerer depends on the tuple set builder, the tuple partitioner, the roller and the derived set builder.
The io repa layerer is defined in module AlignmentPracticableIORepa
,
parametersSystemsLayererLevelMaximumRollExcludedSelfHighestIORepa_u ::
Integer -> Integer -> Integer -> Integer -> Integer -> Integer -> Integer -> Integer ->
System -> Set.Set Variable -> Fud ->
HistoryRepa -> HistogramRepaRed -> HistoryRepa -> HistogramRepaRed -> Integer -> Integer ->
IO (System, Fud, [(Set.Set Variable, Double)])
parametersSystemsLayererLevelMaximumRollExcludedSelfHighestIORepa_u
wmax lmax xmax omax bmax mmax umax pmax uu vvg ffg xx xxp xxrr xxrrp f g
...
buildfftup uu vvg ffg ff hh hhp hhrr hhrrp =
parametersSystemsBuilderTupleLevelNoSumlayerMultiEffectiveRepa_ui xmax omax bmax mmax uu vvg ffg ff hh hhp hhrr hhrrp
parter uu kk bb y1 = parametersSystemsPartitionerRepa_ui mmax umax pmax uu kk bb y1
roller qq = parametersRollerMaximumRollExcludedSelfRepa_i qq
buildffdervar uu vv ffg ff xx xxp xxrr xxrrp = (\(x1,s1) -> (List.map (\((kk,_,_),a) -> (kk,a)) x1,s1)) $
parametersSystemsBuilderDerivedVarsLevelHighestNoSumlayerRepa_ui
wmax omax uu vv ffg ff xx xxp xxrr xxrrp
...
The repa layerer depends on the tuple set builder, the tuple partitioner, the roller and the derived set builder.
Level excluded-self maximum-roll-by-derived-dimension highest-layer layerer
The level highest-layer excluded-self maximum-roll-by-derived-dimension layerer, $I_{P,U,\mathrm{L,mm,xs,d,l}}$, is defined in module AlignmentPracticable
,
parametersSystemsLayererLevelMaxRollByMExcludedSelfHighest ::
Integer -> Integer -> Integer -> Integer -> Integer -> Integer -> Integer -> Integer ->
System -> Set.Set Variable -> Fud -> Histogram -> Histogram -> Integer -> Integer ->
Maybe (System, Fud, Map.Map (Set.Set Variable) Double)
parametersSystemsLayererLevelMaxRollByMExcludedSelfHighest
wmax lmax xmax omax bmax mmax umax pmax uu vvg ffg aa aarr f g
...
The repa layerer is defined in module AlignmentPracticableRepa
,
parametersSystemsLayererLevelMaxRollByMExcludedSelfHighestRepa_u ::
Integer -> Integer -> Integer -> Integer -> Integer -> Integer -> Integer -> Integer ->
System -> Set.Set Variable -> Fud ->
HistoryRepa -> HistogramRepaRed -> HistoryRepa -> HistogramRepaRed -> Integer -> Integer ->
(System, Fud, [(Set.Set Variable, Double)])
parametersSystemsLayererLevelMaxRollByMExcludedSelfHighestRepa_u
wmax lmax xmax omax bmax mmax umax pmax uu vvg ffg xx xxp xxrr xxrrp f g
...
buildfftup uu vvg ffg ff hh hhp hhrr hhrrp =
parametersSystemsBuilderTupleLevelNoSumlayerMultiEffectiveRepa_u xmax omax bmax mmax uu vvg ffg ff hh hhp hhrr hhrrp
parter uu kk bb y1 = parametersSystemsPartitionerMaxRollByMRepa_u mmax umax pmax uu kk bb y1
roller qq = parametersRollerMaximumRollExcludedSelfRepa qq
buildffdervar uu vv ffg ff xx xxp xxrr xxrrp = (List.map (\((kk,_,_),a) -> (kk,a)) $
parametersSystemsBuilderDerivedVarsLevelHighestNoSumlayerRepa_u
wmax omax uu vv ffg ff xx xxp xxrr xxrrp)
...
Note that this version does no checking on the arguments. The repa layerer depends on the tuple set builder, the tuple partitioner, the roller and the derived set builder.
The io repa layerer is defined in module AlignmentPracticableIORepa
,
parametersSystemsLayererLevelMaxRollByMExcludedSelfHighestIORepa_u ::
Integer -> Integer -> Integer -> Integer -> Integer -> Integer -> Integer -> Integer ->
System -> Set.Set Variable -> Fud ->
HistoryRepa -> HistogramRepaRed -> HistoryRepa -> HistogramRepaRed -> Integer -> Integer ->
IO (System, Fud, [(Set.Set Variable, Double)])
parametersSystemsLayererLevelMaxRollByMExcludedSelfHighestIORepa_u
wmax lmax xmax omax bmax mmax umax pmax uu vvg ffg xx xxp xxrr xxrrp f g
...
buildfftup uu vvg ffg ff hh hhp hhrr hhrrp =
parametersSystemsBuilderTupleLevelNoSumlayerMultiEffectiveRepa_ui xmax omax bmax mmax uu vvg ffg ff hh hhp hhrr hhrrp
parter uu kk bb y1 = parametersSystemsPartitionerMaxRollByMRepa_ui mmax umax pmax uu kk bb y1
roller qq = parametersRollerMaximumRollExcludedSelfRepa_i qq
buildffdervar uu vv ffg ff xx xxp xxrr xxrrp = (\(x1,s1) -> (List.map (\((kk,_,_),a) -> (kk,a)) x1,s1)) $
parametersSystemsBuilderDerivedVarsLevelHighestNoSumlayerRepa_ui
wmax omax uu vv ffg ff xx xxp xxrr xxrrp
...
The repa layerer depends on the tuple set builder, the tuple partitioner, the roller and the derived set builder.