Layerers

Haskell implementation of fast Practicable Inducers/Layerers

Sections

Highest-layer layerer

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.


top