-- |
-- Module      :  Phonetic.Languages.Simplified.Array.Ukrainian.FuncRep2RelatedG2
-- Copyright   :  (c) OleksandrZhabenko 2020-2021
-- License     :  MIT
-- Stability   :  Experimental
-- Maintainer  :  olexandr543@yahoo.com
--
-- Functions to choose from the 'FuncRep2' variants.

{-# LANGUAGE BangPatterns #-}

module Phonetic.Languages.Simplified.Array.Ukrainian.FuncRep2RelatedG2 where

import CaseBi.Arr (getBFstL')
import Phonetic.Languages.Simplified.DataG.Base
import Phonetic.Languages.Array.Ukrainian.PropertiesFuncRepG2
import Phonetic.Languages.Array.Ukrainian.PropertiesSyllablesG2

-- | Allows to choose the variant of the computations in case of usual processment.
chooseMax :: (Ord c) => (Double -> c) -> Coeffs2 -> String -> FuncRep2 String Double c
chooseMax :: (Double -> c) -> Coeffs2 -> String -> FuncRep2 String Double c
chooseMax Double -> c
g Coeffs2
coeffs String
choice = FuncRep2 String Double c
-> [(String, FuncRep2 String Double c)]
-> String
-> FuncRep2 String Double c
forall a b. Ord a => b -> [(a, b)] -> a -> b
getBFstL' ((Double -> c) -> Coeffs2 -> FuncRep2 String Double c
forall c.
Ord c =>
(Double -> c) -> Coeffs2 -> FuncRep2 String Double c
procBoth4InvF Double -> c
g Coeffs2
coeffs) [(String
"02y",Double
-> (Double -> c) -> String -> Coeffs2 -> FuncRep2 String Double c
forall c.
Ord c =>
Double
-> (Double -> c) -> String -> Coeffs2 -> FuncRep2 String Double c
procRhythmicity23F Double
1.3 Double -> c
g String
"02y" Coeffs2
coeffs),
   (String
"02z",Double
-> (Double -> c) -> String -> Coeffs2 -> FuncRep2 String Double c
forall c.
Ord c =>
Double
-> (Double -> c) -> String -> Coeffs2 -> FuncRep2 String Double c
procRhythmicity23F Double
1.3 Double -> c
g String
"02z" Coeffs2
coeffs), (String
"03y",Double
-> (Double -> c) -> String -> Coeffs2 -> FuncRep2 String Double c
forall c.
Ord c =>
Double
-> (Double -> c) -> String -> Coeffs2 -> FuncRep2 String Double c
procRhythmicity23F Double
1.3 Double -> c
g String
"03y" Coeffs2
coeffs),
    (String
"03z",Double
-> (Double -> c) -> String -> Coeffs2 -> FuncRep2 String Double c
forall c.
Ord c =>
Double
-> (Double -> c) -> String -> Coeffs2 -> FuncRep2 String Double c
procRhythmicity23F Double
1.3 Double -> c
g String
"03z" Coeffs2
coeffs), (String
"04y",Double
-> (Double -> c) -> String -> Coeffs2 -> FuncRep2 String Double c
forall c.
Ord c =>
Double
-> (Double -> c) -> String -> Coeffs2 -> FuncRep2 String Double c
procRhythmicity23F Double
1.3 Double -> c
g String
"04y" Coeffs2
coeffs),
     (String
"04z",Double
-> (Double -> c) -> String -> Coeffs2 -> FuncRep2 String Double c
forall c.
Ord c =>
Double
-> (Double -> c) -> String -> Coeffs2 -> FuncRep2 String Double c
procRhythmicity23F Double
1.3 Double -> c
g String
"04z" Coeffs2
coeffs), (String
"0y",Double
-> (Double -> c) -> String -> Coeffs2 -> FuncRep2 String Double c
forall c.
Ord c =>
Double
-> (Double -> c) -> String -> Coeffs2 -> FuncRep2 String Double c
procRhythmicity23F Double
1.3 Double -> c
g String
"0y" Coeffs2
coeffs),
      (String
"0z",Double
-> (Double -> c) -> String -> Coeffs2 -> FuncRep2 String Double c
forall c.
Ord c =>
Double
-> (Double -> c) -> String -> Coeffs2 -> FuncRep2 String Double c
procRhythmicity23F Double
1.3 Double -> c
g String
"0z" Coeffs2
coeffs), (String
"w01",Double
-> (Double -> c) -> String -> Coeffs2 -> FuncRep2 String Double c
forall c.
Ord c =>
Double
-> (Double -> c) -> String -> Coeffs2 -> FuncRep2 String Double c
procRhythmicity23F Double
1.3 Double -> c
g String
"w01" Coeffs2
coeffs),
       (String
"w02",Double
-> (Double -> c) -> String -> Coeffs2 -> FuncRep2 String Double c
forall c.
Ord c =>
Double
-> (Double -> c) -> String -> Coeffs2 -> FuncRep2 String Double c
procRhythmicity23F Double
1.3 Double -> c
g String
"w02" Coeffs2
coeffs), (String
"w03",Double
-> (Double -> c) -> String -> Coeffs2 -> FuncRep2 String Double c
forall c.
Ord c =>
Double
-> (Double -> c) -> String -> Coeffs2 -> FuncRep2 String Double c
procRhythmicity23F Double
1.3 Double -> c
g String
"w03" Coeffs2
coeffs),
        (String
"w04",Double
-> (Double -> c) -> String -> Coeffs2 -> FuncRep2 String Double c
forall c.
Ord c =>
Double
-> (Double -> c) -> String -> Coeffs2 -> FuncRep2 String Double c
procRhythmicity23F Double
1.3 Double -> c
g String
"w04" Coeffs2
coeffs), (String
"w11",Double
-> (Double -> c) -> String -> Coeffs2 -> FuncRep2 String Double c
forall c.
Ord c =>
Double
-> (Double -> c) -> String -> Coeffs2 -> FuncRep2 String Double c
procRhythmicity23F Double
1.3 Double -> c
g String
"w11" Coeffs2
coeffs),
         (String
"w12",Double
-> (Double -> c) -> String -> Coeffs2 -> FuncRep2 String Double c
forall c.
Ord c =>
Double
-> (Double -> c) -> String -> Coeffs2 -> FuncRep2 String Double c
procRhythmicity23F Double
1.3 Double -> c
g String
"w12" Coeffs2
coeffs), (String
"w13",Double
-> (Double -> c) -> String -> Coeffs2 -> FuncRep2 String Double c
forall c.
Ord c =>
Double
-> (Double -> c) -> String -> Coeffs2 -> FuncRep2 String Double c
procRhythmicity23F Double
1.3 Double -> c
g String
"w13" Coeffs2
coeffs),
          (String
"w14",Double
-> (Double -> c) -> String -> Coeffs2 -> FuncRep2 String Double c
forall c.
Ord c =>
Double
-> (Double -> c) -> String -> Coeffs2 -> FuncRep2 String Double c
procRhythmicity23F Double
1.3 Double -> c
g String
"w14" Coeffs2
coeffs), (String
"w21",Double
-> (Double -> c) -> String -> Coeffs2 -> FuncRep2 String Double c
forall c.
Ord c =>
Double
-> (Double -> c) -> String -> Coeffs2 -> FuncRep2 String Double c
procRhythmicity23F Double
1.3 Double -> c
g String
"w21" Coeffs2
coeffs),
           (String
"w22",Double
-> (Double -> c) -> String -> Coeffs2 -> FuncRep2 String Double c
forall c.
Ord c =>
Double
-> (Double -> c) -> String -> Coeffs2 -> FuncRep2 String Double c
procRhythmicity23F Double
1.3 Double -> c
g String
"w22" Coeffs2
coeffs), (String
"w23",Double
-> (Double -> c) -> String -> Coeffs2 -> FuncRep2 String Double c
forall c.
Ord c =>
Double
-> (Double -> c) -> String -> Coeffs2 -> FuncRep2 String Double c
procRhythmicity23F Double
1.3 Double -> c
g String
"w23" Coeffs2
coeffs),
            (String
"w24",Double
-> (Double -> c) -> String -> Coeffs2 -> FuncRep2 String Double c
forall c.
Ord c =>
Double
-> (Double -> c) -> String -> Coeffs2 -> FuncRep2 String Double c
procRhythmicity23F Double
1.3 Double -> c
g String
"w24" Coeffs2
coeffs), (String
"w31",Double
-> (Double -> c) -> String -> Coeffs2 -> FuncRep2 String Double c
forall c.
Ord c =>
Double
-> (Double -> c) -> String -> Coeffs2 -> FuncRep2 String Double c
procRhythmicity23F Double
1.3 Double -> c
g String
"w31" Coeffs2
coeffs),
             (String
"w32",Double
-> (Double -> c) -> String -> Coeffs2 -> FuncRep2 String Double c
forall c.
Ord c =>
Double
-> (Double -> c) -> String -> Coeffs2 -> FuncRep2 String Double c
procRhythmicity23F Double
1.3 Double -> c
g String
"w32" Coeffs2
coeffs), (String
"w33",Double
-> (Double -> c) -> String -> Coeffs2 -> FuncRep2 String Double c
forall c.
Ord c =>
Double
-> (Double -> c) -> String -> Coeffs2 -> FuncRep2 String Double c
procRhythmicity23F Double
1.3 Double -> c
g String
"w33" Coeffs2
coeffs),
              (String
"w34",Double
-> (Double -> c) -> String -> Coeffs2 -> FuncRep2 String Double c
forall c.
Ord c =>
Double
-> (Double -> c) -> String -> Coeffs2 -> FuncRep2 String Double c
procRhythmicity23F Double
1.3 Double -> c
g String
"w34" Coeffs2
coeffs), (String
"x01",Double
-> (Double -> c) -> String -> Coeffs2 -> FuncRep2 String Double c
forall c.
Ord c =>
Double
-> (Double -> c) -> String -> Coeffs2 -> FuncRep2 String Double c
procRhythmicity23F Double
1.3 Double -> c
g String
"x01" Coeffs2
coeffs),
              (String
"x02",Double
-> (Double -> c) -> String -> Coeffs2 -> FuncRep2 String Double c
forall c.
Ord c =>
Double
-> (Double -> c) -> String -> Coeffs2 -> FuncRep2 String Double c
procRhythmicity23F Double
1.3 Double -> c
g String
"x02" Coeffs2
coeffs), (String
"x03",Double
-> (Double -> c) -> String -> Coeffs2 -> FuncRep2 String Double c
forall c.
Ord c =>
Double
-> (Double -> c) -> String -> Coeffs2 -> FuncRep2 String Double c
procRhythmicity23F Double
1.3 Double -> c
g String
"x03" Coeffs2
coeffs),
               (String
"x04",Double
-> (Double -> c) -> String -> Coeffs2 -> FuncRep2 String Double c
forall c.
Ord c =>
Double
-> (Double -> c) -> String -> Coeffs2 -> FuncRep2 String Double c
procRhythmicity23F Double
1.3 Double -> c
g String
"x04" Coeffs2
coeffs), (String
"x11",Double
-> (Double -> c) -> String -> Coeffs2 -> FuncRep2 String Double c
forall c.
Ord c =>
Double
-> (Double -> c) -> String -> Coeffs2 -> FuncRep2 String Double c
procRhythmicity23F Double
1.3 Double -> c
g String
"x11" Coeffs2
coeffs),
                (String
"x12",Double
-> (Double -> c) -> String -> Coeffs2 -> FuncRep2 String Double c
forall c.
Ord c =>
Double
-> (Double -> c) -> String -> Coeffs2 -> FuncRep2 String Double c
procRhythmicity23F Double
1.3 Double -> c
g String
"x12" Coeffs2
coeffs), (String
"x13",Double
-> (Double -> c) -> String -> Coeffs2 -> FuncRep2 String Double c
forall c.
Ord c =>
Double
-> (Double -> c) -> String -> Coeffs2 -> FuncRep2 String Double c
procRhythmicity23F Double
1.3 Double -> c
g String
"x13" Coeffs2
coeffs),
                 (String
"x14",Double
-> (Double -> c) -> String -> Coeffs2 -> FuncRep2 String Double c
forall c.
Ord c =>
Double
-> (Double -> c) -> String -> Coeffs2 -> FuncRep2 String Double c
procRhythmicity23F Double
1.3 Double -> c
g String
"x14" Coeffs2
coeffs), (String
"x21",Double
-> (Double -> c) -> String -> Coeffs2 -> FuncRep2 String Double c
forall c.
Ord c =>
Double
-> (Double -> c) -> String -> Coeffs2 -> FuncRep2 String Double c
procRhythmicity23F Double
1.3 Double -> c
g String
"x21" Coeffs2
coeffs),
                  (String
"x22",Double
-> (Double -> c) -> String -> Coeffs2 -> FuncRep2 String Double c
forall c.
Ord c =>
Double
-> (Double -> c) -> String -> Coeffs2 -> FuncRep2 String Double c
procRhythmicity23F Double
1.3 Double -> c
g String
"x22" Coeffs2
coeffs), (String
"x23",Double
-> (Double -> c) -> String -> Coeffs2 -> FuncRep2 String Double c
forall c.
Ord c =>
Double
-> (Double -> c) -> String -> Coeffs2 -> FuncRep2 String Double c
procRhythmicity23F Double
1.3 Double -> c
g String
"x23" Coeffs2
coeffs),
                   (String
"x24",Double
-> (Double -> c) -> String -> Coeffs2 -> FuncRep2 String Double c
forall c.
Ord c =>
Double
-> (Double -> c) -> String -> Coeffs2 -> FuncRep2 String Double c
procRhythmicity23F Double
1.3 Double -> c
g String
"x24" Coeffs2
coeffs), (String
"x31",Double
-> (Double -> c) -> String -> Coeffs2 -> FuncRep2 String Double c
forall c.
Ord c =>
Double
-> (Double -> c) -> String -> Coeffs2 -> FuncRep2 String Double c
procRhythmicity23F Double
1.3 Double -> c
g String
"x31" Coeffs2
coeffs),
                    (String
"x32",Double
-> (Double -> c) -> String -> Coeffs2 -> FuncRep2 String Double c
forall c.
Ord c =>
Double
-> (Double -> c) -> String -> Coeffs2 -> FuncRep2 String Double c
procRhythmicity23F Double
1.3 Double -> c
g String
"x32" Coeffs2
coeffs), (String
"x33",Double
-> (Double -> c) -> String -> Coeffs2 -> FuncRep2 String Double c
forall c.
Ord c =>
Double
-> (Double -> c) -> String -> Coeffs2 -> FuncRep2 String Double c
procRhythmicity23F Double
1.3 Double -> c
g String
"x33" Coeffs2
coeffs),
                     (String
"x34",Double
-> (Double -> c) -> String -> Coeffs2 -> FuncRep2 String Double c
forall c.
Ord c =>
Double
-> (Double -> c) -> String -> Coeffs2 -> FuncRep2 String Double c
procRhythmicity23F Double
1.3 Double -> c
g String
"x34" Coeffs2
coeffs), (String
"y",(Double -> c) -> Coeffs2 -> FuncRep2 String Double c
forall c.
Ord c =>
(Double -> c) -> Coeffs2 -> FuncRep2 String Double c
procBothF Double -> c
g Coeffs2
coeffs),(String
"y0",(Double -> c) -> FuncRep2 String Double c
forall c. Ord c => (Double -> c) -> FuncRep2 String Double c
procDiverse2F Double -> c
g),
                      (String
"y2",(Double -> c) -> Coeffs2 -> FuncRep2 String Double c
forall c.
Ord c =>
(Double -> c) -> Coeffs2 -> FuncRep2 String Double c
procBoth2F Double -> c
g Coeffs2
coeffs),(String
"y3",(Double -> c) -> Coeffs2 -> FuncRep2 String Double c
forall c.
Ord c =>
(Double -> c) -> Coeffs2 -> FuncRep2 String Double c
procBoth3F Double -> c
g Coeffs2
coeffs), (String
"y4",(Double -> c) -> Coeffs2 -> FuncRep2 String Double c
forall c.
Ord c =>
(Double -> c) -> Coeffs2 -> FuncRep2 String Double c
procBoth4F Double -> c
g Coeffs2
coeffs),
                       (String
"yy",(Double -> c) -> Coeffs2 -> FuncRep2 String Double c
forall c.
Ord c =>
(Double -> c) -> Coeffs2 -> FuncRep2 String Double c
procBothInvF Double -> c
g Coeffs2
coeffs),(String
"yy2",(Double -> c) -> Coeffs2 -> FuncRep2 String Double c
forall c.
Ord c =>
(Double -> c) -> Coeffs2 -> FuncRep2 String Double c
procBoth2InvF Double -> c
g Coeffs2
coeffs),(String
"yy3",(Double -> c) -> Coeffs2 -> FuncRep2 String Double c
forall c.
Ord c =>
(Double -> c) -> Coeffs2 -> FuncRep2 String Double c
procBoth3InvF Double -> c
g Coeffs2
coeffs),
                        (String
"z",Double -> (Double -> c) -> Coeffs2 -> FuncRep2 String Double c
forall c.
Ord c =>
Double -> (Double -> c) -> Coeffs2 -> FuncRep2 String Double c
procBothFF Double
1.3 Double -> c
g Coeffs2
coeffs),(String
"z2",Double -> (Double -> c) -> Coeffs2 -> FuncRep2 String Double c
forall c.
Ord c =>
Double -> (Double -> c) -> Coeffs2 -> FuncRep2 String Double c
procBoth2FF Double
1.3 Double -> c
g Coeffs2
coeffs),
                         (String
"z3",Double -> (Double -> c) -> Coeffs2 -> FuncRep2 String Double c
forall c.
Ord c =>
Double -> (Double -> c) -> Coeffs2 -> FuncRep2 String Double c
procBoth3FF Double
1.3 Double -> c
g Coeffs2
coeffs), (String
"z4",Double -> (Double -> c) -> Coeffs2 -> FuncRep2 String Double c
forall c.
Ord c =>
Double -> (Double -> c) -> Coeffs2 -> FuncRep2 String Double c
procBoth4FF Double
1.3 Double -> c
g Coeffs2
coeffs),
                          (String
"zz",Double -> (Double -> c) -> Coeffs2 -> FuncRep2 String Double c
forall c.
Ord c =>
Double -> (Double -> c) -> Coeffs2 -> FuncRep2 String Double c
procBothInvFF Double
1.3 Double -> c
g Coeffs2
coeffs),(String
"zz2",Double -> (Double -> c) -> Coeffs2 -> FuncRep2 String Double c
forall c.
Ord c =>
Double -> (Double -> c) -> Coeffs2 -> FuncRep2 String Double c
procBoth2InvFF Double
1.3 Double -> c
g Coeffs2
coeffs),
                           (String
"zz3",Double -> (Double -> c) -> Coeffs2 -> FuncRep2 String Double c
forall c.
Ord c =>
Double -> (Double -> c) -> Coeffs2 -> FuncRep2 String Double c
procBoth3InvFF Double
1.3 Double -> c
g Coeffs2
coeffs),(String
"zz4", Double -> (Double -> c) -> Coeffs2 -> FuncRep2 String Double c
forall c.
Ord c =>
Double -> (Double -> c) -> Coeffs2 -> FuncRep2 String Double c
procBoth4InvFF Double
1.3 Double -> c
g Coeffs2
coeffs)] String
choice
 
-- | Allows to choose precision in the Numeric.showFDouble function being given a choice parameter.
precChoice :: String -> Maybe Int
precChoice :: String -> Maybe Int
precChoice = Maybe Int -> [(String, Maybe Int)] -> String -> Maybe Int
forall a b. Ord a => b -> [(a, b)] -> a -> b
getBFstL' (Int -> Maybe Int
forall a. a -> Maybe a
Just Int
4) [(String
"02y",Int -> Maybe Int
forall a. a -> Maybe a
Just Int
0),(String
"02z",Int -> Maybe Int
forall a. a -> Maybe a
Just Int
0),(String
"03y",Int -> Maybe Int
forall a. a -> Maybe a
Just Int
0),(String
"03z",Int -> Maybe Int
forall a. a -> Maybe a
Just Int
0),(String
"04y",Int -> Maybe Int
forall a. a -> Maybe a
Just Int
0),
  (String
"04z",Int -> Maybe Int
forall a. a -> Maybe a
Just Int
0),(String
"0y",Int -> Maybe Int
forall a. a -> Maybe a
Just Int
0),(String
"0z",Int -> Maybe Int
forall a. a -> Maybe a
Just Int
0),(String
"y",Int -> Maybe Int
forall a. a -> Maybe a
Just Int
0),(String
"y0",Int -> Maybe Int
forall a. a -> Maybe a
Just Int
0),(String
"y2",Int -> Maybe Int
forall a. a -> Maybe a
Just Int
0),(String
"y3",Int -> Maybe Int
forall a. a -> Maybe a
Just Int
0), (String
"y4",Int -> Maybe Int
forall a. a -> Maybe a
Just Int
0),
    (String
"z",Int -> Maybe Int
forall a. a -> Maybe a
Just Int
0),(String
"z0",Int -> Maybe Int
forall a. a -> Maybe a
Just Int
0),(String
"z2",Int -> Maybe Int
forall a. a -> Maybe a
Just Int
0),(String
"z3",Int -> Maybe Int
forall a. a -> Maybe a
Just Int
0), (String
"z4",Int -> Maybe Int
forall a. a -> Maybe a
Just Int
0)]