{-# OPTIONS_HADDOCK show-extensions #-}

-- |
-- Module      :  Phonetic.Languages.Array.Ukrainian.PropertiesFuncRepG2Common
-- Copyright   :  (c) OleksandrZhabenko 2020-2022
-- License     :  MIT
-- Stability   :  Experimental
-- Maintainer  :  olexandr543@yahoo.com
--
-- Generalization of the functionality of the DobutokO.Poetry.Norms
-- and DobutokO.Poetry.Norms.Extended modules
-- from the @dobutokO-poetry@ package. Instead of vectors, uses arrays.

{-# LANGUAGE CPP, BangPatterns #-}

module Phonetic.Languages.Array.Ukrainian.PropertiesFuncRepG2Common where

#ifdef __GLASGOW_HASKELL__
#if __GLASGOW_HASKELL__>=710
/* code that applies only to GHC 7.10.* and higher versions */
import GHC.Base (mconcat)
#endif
#endif

import Phonetic.Languages.Array.Ukrainian.Common
--import Phonetic.Languages.Array.Ukrainian.PropertiesSyllablesG2Common
import Phonetic.Languages.UniquenessPeriodsG
--import Languages.Rhythmicity
--import Languages.Rhythmicity.Factor
import Phonetic.Languages.Basis
import GHC.Float (int2Double)
import qualified Languages.Phonetic.Ukrainian.Syllable.ArrInt8 as S
import Melodics.Ukrainian.ArrInt8
--import Data.Maybe (fromMaybe)
import GHC.Arr (Array)
import GHC.Int (Int8)

#ifdef __GLASGOW_HASKELL__
#if __GLASGOW_HASKELL__==708
/* code that applies only to GHC 7.8.* */
mconcat = concat
#endif
#endif

procB2FGTup
  :: (Ord c) => Array Int (Int8, Bool)
  -> Array Int (Int8, Bool)
  -> Array Int (Int8, Bool)
  -> Array Int (Int8, Bool)
  -> Array Int ([Int8], Bool)
  -> Array Int ([Int8], Int8)
  -> Array Int (Int8, FlowSound -> Sound8)
  -> Array Int (Int8, Bool)
  -> Array Int ([Int8], Bool)
  -> Array Int ([Int8], Bool)
  -> Array Int ([Int8], Bool)
  -> Array Int (Int8, [Int8])
  -> Array Int (Char,Int8)
  -> Array Int (Int8,[Int8])
  -> Array Int (Char, Bool)
  -> Array Int (Char, Bool)
  -> Array Int (Int8,Bool)
  -> ([Double] -> Double)
  -> (Double -> c)
  -> ([[[Sound8]]] -> [[Double]])
  -> Coeffs2
  -> FuncRep2 String Double c
procB2FGTup :: Array Int (Int8, Bool)
-> Array Int (Int8, Bool)
-> Array Int (Int8, Bool)
-> Array Int (Int8, Bool)
-> Array Int ([Int8], Bool)
-> Array Int ([Int8], Int8)
-> Array Int (Int8, [Int8] -> Int8)
-> Array Int (Int8, Bool)
-> Array Int ([Int8], Bool)
-> Array Int ([Int8], Bool)
-> Array Int ([Int8], Bool)
-> Array Int (Int8, [Int8])
-> Array Int (Char, Int8)
-> Array Int (Int8, [Int8])
-> Array Int (Char, Bool)
-> Array Int (Char, Bool)
-> Array Int (Int8, Bool)
-> ([Double] -> Double)
-> (Double -> c)
-> ([[[Int8]]] -> [[Double]])
-> Coeffs2
-> FuncRep2 String Double c
procB2FGTup Array Int (Int8, Bool)
tup1 Array Int (Int8, Bool)
tup2 Array Int (Int8, Bool)
tup3 Array Int (Int8, Bool)
tup4 Array Int ([Int8], Bool)
tup5 Array Int ([Int8], Int8)
tup6 Array Int (Int8, [Int8] -> Int8)
tup7 Array Int (Int8, Bool)
tup8 Array Int ([Int8], Bool)
tup9 Array Int ([Int8], Bool)
tup10 Array Int ([Int8], Bool)
tup11 Array Int (Int8, [Int8])
tup12 Array Int (Char, Int8)
tup13 Array Int (Int8, [Int8])
tup14 Array Int (Char, Bool)
tup15 Array Int (Char, Bool)
tup16 Array Int (Int8, Bool)
tup17 [Double] -> Double
h1 Double -> c
h [[[Int8]]] -> [[Double]]
g Coeffs2
coeffs
 = (String -> Double) -> (Double -> c) -> FuncRep2 String Double c
forall a b c. (a -> b) -> (b -> c) -> FuncRep2 a b c
D (\String
xs -> let ys :: [Int8]
ys = Array Int (Int8, Bool)
-> Array Int (Int8, Bool)
-> Array Int (Int8, Bool)
-> Array Int (Int8, Bool)
-> Array Int ([Int8], Bool)
-> Array Int ([Int8], Int8)
-> Array Int (Int8, [Int8] -> Int8)
-> Array Int (Int8, Bool)
-> Array Int ([Int8], Bool)
-> Array Int ([Int8], Bool)
-> Array Int ([Int8], Bool)
-> Array Int (Int8, [Int8])
-> Array Int (Char, Int8)
-> Array Int (Int8, [Int8])
-> Array Int (Char, Bool)
-> Array Int (Char, Bool)
-> String
-> [Int8]
convertToProperUkrainianI8WithTuples  Array Int (Int8, Bool)
tup1 Array Int (Int8, Bool)
tup2 Array Int (Int8, Bool)
tup3 Array Int (Int8, Bool)
tup4 Array Int ([Int8], Bool)
tup5 Array Int ([Int8], Int8)
tup6 Array Int (Int8, [Int8] -> Int8)
tup7 Array Int (Int8, Bool)
tup8 Array Int ([Int8], Bool)
tup9 Array Int ([Int8], Bool)
tup10 Array Int ([Int8], Bool)
tup11 Array Int (Int8, [Int8])
tup12 Array Int (Char, Int8)
tup13 Array Int (Int8, [Int8])
tup14 Array Int (Char, Bool)
tup15 Array Int (Char, Bool)
tup16 (String -> [Int8]) -> (String -> String) -> String -> [Int8]
forall b c a. (b -> c) -> (a -> b) -> a -> c
. (Char -> Char) -> String -> String
forall a b. (a -> b) -> [a] -> [b]
map (\Char
x -> if Char
x Char -> Char -> Bool
forall a. Eq a => a -> a -> Bool
== Char
'-' then Char
' ' else Char
x) (String -> [Int8]) -> String -> [Int8]
forall a b. (a -> b) -> a -> b
$ String
xs in  ((Int -> Double
int2Double (Int -> Double) -> ([Int8] -> Int) -> [Int8] -> Double
forall b c a. (b -> c) -> (a -> b) -> a -> c
. Int16 -> Int
forall a. Enum a => a -> Int
fromEnum (Int16 -> Int) -> ([Int8] -> Int16) -> [Int8] -> Int
forall b c a. (b -> c) -> (a -> b) -> a -> c
. [Int8] -> [Int8] -> Int16
forall (t :: * -> *). Foldable t => [Int8] -> t Int8 -> Int16
diverse2GLInt8 [-Int8
1,Int8
0] ([Int8] -> Double) -> [Int8] -> Double
forall a b. (a -> b) -> a -> b
$ [Int8]
ys)Double -> Double -> Double
forall a. Num a => a -> a -> a
*([Double] -> Double
h1 ([Double] -> Double) -> ([Int8] -> [Double]) -> [Int8] -> Double
forall b c a. (b -> c) -> (a -> b) -> a -> c
. [[Double]] -> [Double]
forall a. Monoid a => [a] -> a
mconcat ([[Double]] -> [Double])
-> ([Int8] -> [[Double]]) -> [Int8] -> [Double]
forall b c a. (b -> c) -> (a -> b) -> a -> c
. [[[Int8]]] -> [[Double]]
g ([[[Int8]]] -> [[Double]])
-> ([Int8] -> [[[Int8]]]) -> [Int8] -> [[Double]]
forall b c a. (b -> c) -> (a -> b) -> a -> c
. ([Int8] -> [[Int8]]) -> [[Int8]] -> [[[Int8]]]
forall a b. (a -> b) -> [a] -> [b]
map ([[Int8]] -> [[Int8]]
S.divVwls ([[Int8]] -> [[Int8]])
-> ([Int8] -> [[Int8]]) -> [Int8] -> [[Int8]]
forall b c a. (b -> c) -> (a -> b) -> a -> c
. Array Int (Int8, Bool) -> [[Int8]] -> [[Int8]]
S.reSyllableCntntsTup Array Int (Int8, Bool)
tup17 ([[Int8]] -> [[Int8]])
-> ([Int8] -> [[Int8]]) -> [Int8] -> [[Int8]]
forall b c a. (b -> c) -> (a -> b) -> a -> c
. [Int8] -> [[Int8]]
S.groupSnds) ([[Int8]] -> [[[Int8]]])
-> ([Int8] -> [[Int8]]) -> [Int8] -> [[[Int8]]]
forall b c a. (b -> c) -> (a -> b) -> a -> c
. [Int8] -> [[Int8]]
forall a. (Ord a, Num a) => [a] -> [[a]]
words1 ([Int8] -> Double) -> [Int8] -> Double
forall a b. (a -> b) -> a -> b
$ [Int8]
ys))) Double -> c
h
{-# INLINE procB2FGTup #-}

procB2InvFGTup
  :: (Ord c) => Array Int (Int8, Bool)
  -> Array Int (Int8, Bool)
  -> Array Int (Int8, Bool)
  -> Array Int (Int8, Bool)
  -> Array Int ([Int8], Bool)
  -> Array Int ([Int8], Int8)
  -> Array Int (Int8, FlowSound -> Sound8)
  -> Array Int (Int8, Bool)
  -> Array Int ([Int8], Bool)
  -> Array Int ([Int8], Bool)
  -> Array Int ([Int8], Bool)
  -> Array Int (Int8, [Int8])
  -> Array Int (Char,Int8)
  -> Array Int (Int8,[Int8])
  -> Array Int (Char, Bool)
  -> Array Int (Char, Bool)
  -> Array Int (Int8,Bool)
  -> ([Double] -> Double)
  -> (Double -> c)
  -> ([[[Sound8]]] -> [[Double]])
  -> Coeffs2
  -> FuncRep2 String Double c
procB2InvFGTup :: Array Int (Int8, Bool)
-> Array Int (Int8, Bool)
-> Array Int (Int8, Bool)
-> Array Int (Int8, Bool)
-> Array Int ([Int8], Bool)
-> Array Int ([Int8], Int8)
-> Array Int (Int8, [Int8] -> Int8)
-> Array Int (Int8, Bool)
-> Array Int ([Int8], Bool)
-> Array Int ([Int8], Bool)
-> Array Int ([Int8], Bool)
-> Array Int (Int8, [Int8])
-> Array Int (Char, Int8)
-> Array Int (Int8, [Int8])
-> Array Int (Char, Bool)
-> Array Int (Char, Bool)
-> Array Int (Int8, Bool)
-> ([Double] -> Double)
-> (Double -> c)
-> ([[[Int8]]] -> [[Double]])
-> Coeffs2
-> FuncRep2 String Double c
procB2InvFGTup  Array Int (Int8, Bool)
tup1 Array Int (Int8, Bool)
tup2 Array Int (Int8, Bool)
tup3 Array Int (Int8, Bool)
tup4 Array Int ([Int8], Bool)
tup5 Array Int ([Int8], Int8)
tup6 Array Int (Int8, [Int8] -> Int8)
tup7 Array Int (Int8, Bool)
tup8 Array Int ([Int8], Bool)
tup9 Array Int ([Int8], Bool)
tup10 Array Int ([Int8], Bool)
tup11 Array Int (Int8, [Int8])
tup12 Array Int (Char, Int8)
tup13 Array Int (Int8, [Int8])
tup14 Array Int (Char, Bool)
tup15 Array Int (Char, Bool)
tup16 Array Int (Int8, Bool)
tup17 [Double] -> Double
h1 Double -> c
h [[[Int8]]] -> [[Double]]
g Coeffs2
coeffs
 = (String -> Double) -> (Double -> c) -> FuncRep2 String Double c
forall a b c. (a -> b) -> (b -> c) -> FuncRep2 a b c
D (\String
xs ->
  let !ys :: [Int8]
ys = Array Int (Int8, Bool)
-> Array Int (Int8, Bool)
-> Array Int (Int8, Bool)
-> Array Int (Int8, Bool)
-> Array Int ([Int8], Bool)
-> Array Int ([Int8], Int8)
-> Array Int (Int8, [Int8] -> Int8)
-> Array Int (Int8, Bool)
-> Array Int ([Int8], Bool)
-> Array Int ([Int8], Bool)
-> Array Int ([Int8], Bool)
-> Array Int (Int8, [Int8])
-> Array Int (Char, Int8)
-> Array Int (Int8, [Int8])
-> Array Int (Char, Bool)
-> Array Int (Char, Bool)
-> String
-> [Int8]
convertToProperUkrainianI8WithTuples  Array Int (Int8, Bool)
tup1 Array Int (Int8, Bool)
tup2 Array Int (Int8, Bool)
tup3 Array Int (Int8, Bool)
tup4 Array Int ([Int8], Bool)
tup5 Array Int ([Int8], Int8)
tup6 Array Int (Int8, [Int8] -> Int8)
tup7 Array Int (Int8, Bool)
tup8 Array Int ([Int8], Bool)
tup9 Array Int ([Int8], Bool)
tup10 Array Int ([Int8], Bool)
tup11 Array Int (Int8, [Int8])
tup12 Array Int (Char, Int8)
tup13 Array Int (Int8, [Int8])
tup14 Array Int (Char, Bool)
tup15 Array Int (Char, Bool)
tup16 (String -> [Int8]) -> (String -> String) -> String -> [Int8]
forall b c a. (b -> c) -> (a -> b) -> a -> c
. (Char -> Char) -> String -> String
forall a b. (a -> b) -> [a] -> [b]
map (\Char
x -> if Char
x Char -> Char -> Bool
forall a. Eq a => a -> a -> Bool
== Char
'-' then Char
' ' else Char
x) (String -> [Int8]) -> String -> [Int8]
forall a b. (a -> b) -> a -> b
$ String
xs
      !z :: Int16
z = [Int8] -> [Int8] -> Int16
forall (t :: * -> *). Foldable t => [Int8] -> t Int8 -> Int16
diverse2GLInt8 [-Int8
1,Int8
0] [Int8]
ys in if Int16
z Int16 -> Int16 -> Bool
forall a. Eq a => a -> a -> Bool
== Int16
0 then  ([Double] -> Double
h1 ([Double] -> Double) -> ([Int8] -> [Double]) -> [Int8] -> Double
forall b c a. (b -> c) -> (a -> b) -> a -> c
. [[Double]] -> [Double]
forall a. Monoid a => [a] -> a
mconcat ([[Double]] -> [Double])
-> ([Int8] -> [[Double]]) -> [Int8] -> [Double]
forall b c a. (b -> c) -> (a -> b) -> a -> c
. [[[Int8]]] -> [[Double]]
g ([[[Int8]]] -> [[Double]])
-> ([Int8] -> [[[Int8]]]) -> [Int8] -> [[Double]]
forall b c a. (b -> c) -> (a -> b) -> a -> c
. ([Int8] -> [[Int8]]) -> [[Int8]] -> [[[Int8]]]
forall a b. (a -> b) -> [a] -> [b]
map ([[Int8]] -> [[Int8]]
S.divVwls ([[Int8]] -> [[Int8]])
-> ([Int8] -> [[Int8]]) -> [Int8] -> [[Int8]]
forall b c a. (b -> c) -> (a -> b) -> a -> c
. Array Int (Int8, Bool) -> [[Int8]] -> [[Int8]]
S.reSyllableCntntsTup Array Int (Int8, Bool)
tup17 ([[Int8]] -> [[Int8]])
-> ([Int8] -> [[Int8]]) -> [Int8] -> [[Int8]]
forall b c a. (b -> c) -> (a -> b) -> a -> c
. [Int8] -> [[Int8]]
S.groupSnds) ([[Int8]] -> [[[Int8]]])
-> ([Int8] -> [[Int8]]) -> [Int8] -> [[[Int8]]]
forall b c a. (b -> c) -> (a -> b) -> a -> c
.
          [Int8] -> [[Int8]]
forall a. (Ord a, Num a) => [a] -> [[a]]
words1 ([Int8] -> Double) -> [Int8] -> Double
forall a b. (a -> b) -> a -> b
$ [Int8]
ys) Double -> Double -> Double
forall a. Floating a => a -> a -> a
** Double
2.0
        else  (([Double] -> Double
h1 ([Double] -> Double) -> ([Int8] -> [Double]) -> [Int8] -> Double
forall b c a. (b -> c) -> (a -> b) -> a -> c
. [[Double]] -> [Double]
forall a. Monoid a => [a] -> a
mconcat ([[Double]] -> [Double])
-> ([Int8] -> [[Double]]) -> [Int8] -> [Double]
forall b c a. (b -> c) -> (a -> b) -> a -> c
. [[[Int8]]] -> [[Double]]
g ([[[Int8]]] -> [[Double]])
-> ([Int8] -> [[[Int8]]]) -> [Int8] -> [[Double]]
forall b c a. (b -> c) -> (a -> b) -> a -> c
. ([Int8] -> [[Int8]]) -> [[Int8]] -> [[[Int8]]]
forall a b. (a -> b) -> [a] -> [b]
map ([[Int8]] -> [[Int8]]
S.divVwls ([[Int8]] -> [[Int8]])
-> ([Int8] -> [[Int8]]) -> [Int8] -> [[Int8]]
forall b c a. (b -> c) -> (a -> b) -> a -> c
. Array Int (Int8, Bool) -> [[Int8]] -> [[Int8]]
S.reSyllableCntntsTup Array Int (Int8, Bool)
tup17 ([[Int8]] -> [[Int8]])
-> ([Int8] -> [[Int8]]) -> [Int8] -> [[Int8]]
forall b c a. (b -> c) -> (a -> b) -> a -> c
. [Int8] -> [[Int8]]
S.groupSnds) ([[Int8]] -> [[[Int8]]])
-> ([Int8] -> [[Int8]]) -> [Int8] -> [[[Int8]]]
forall b c a. (b -> c) -> (a -> b) -> a -> c
. [Int8] -> [[Int8]]
forall a. (Ord a, Num a) => [a] -> [[a]]
words1 ([Int8] -> Double) -> [Int8] -> Double
forall a b. (a -> b) -> a -> b
$ [Int8]
ys) Double -> Double -> Double
forall a. Fractional a => a -> a -> a
/ (Int -> Double
int2Double (Int -> Double) -> (Int16 -> Int) -> Int16 -> Double
forall b c a. (b -> c) -> (a -> b) -> a -> c
. Int16 -> Int
forall a. Enum a => a -> Int
fromEnum (Int16 -> Double) -> Int16 -> Double
forall a b. (a -> b) -> a -> b
$ Int16
z))) Double -> c
h
{-# INLINE procB2InvFGTup #-}

procB2FTup
  :: (Ord c) => Array Int (Int8, Bool)
  -> Array Int (Int8, Bool)
  -> Array Int (Int8, Bool)
  -> Array Int (Int8, Bool)
  -> Array Int ([Int8], Bool)
  -> Array Int ([Int8], Int8)
  -> Array Int (Int8, FlowSound -> Sound8)
  -> Array Int (Int8, Bool)
  -> Array Int ([Int8], Bool)
  -> Array Int ([Int8], Bool)
  -> Array Int ([Int8], Bool)
  -> Array Int (Int8, [Int8])
  -> Array Int (Char,Int8)
  -> Array Int (Int8,[Int8])
  -> Array Int (Char, Bool)
  -> Array Int (Char, Bool)
  -> Array Int (Int8,Bool)
  -> (Double -> c)
  -> ([[[Sound8]]] -> [[Double]])
  -> Coeffs2
  -> FuncRep2 String Double c
procB2FTup :: Array Int (Int8, Bool)
-> Array Int (Int8, Bool)
-> Array Int (Int8, Bool)
-> Array Int (Int8, Bool)
-> Array Int ([Int8], Bool)
-> Array Int ([Int8], Int8)
-> Array Int (Int8, [Int8] -> Int8)
-> Array Int (Int8, Bool)
-> Array Int ([Int8], Bool)
-> Array Int ([Int8], Bool)
-> Array Int ([Int8], Bool)
-> Array Int (Int8, [Int8])
-> Array Int (Char, Int8)
-> Array Int (Int8, [Int8])
-> Array Int (Char, Bool)
-> Array Int (Char, Bool)
-> Array Int (Int8, Bool)
-> (Double -> c)
-> ([[[Int8]]] -> [[Double]])
-> Coeffs2
-> FuncRep2 String Double c
procB2FTup  Array Int (Int8, Bool)
tup1 Array Int (Int8, Bool)
tup2 Array Int (Int8, Bool)
tup3 Array Int (Int8, Bool)
tup4 Array Int ([Int8], Bool)
tup5 Array Int ([Int8], Int8)
tup6 Array Int (Int8, [Int8] -> Int8)
tup7 Array Int (Int8, Bool)
tup8 Array Int ([Int8], Bool)
tup9 Array Int ([Int8], Bool)
tup10 Array Int ([Int8], Bool)
tup11 Array Int (Int8, [Int8])
tup12 Array Int (Char, Int8)
tup13 Array Int (Int8, [Int8])
tup14 Array Int (Char, Bool)
tup15 Array Int (Char, Bool)
tup16 Array Int (Int8, Bool)
tup17 Double -> c
h [[[Int8]]] -> [[Double]]
g Coeffs2
coeffs
 = Array Int (Int8, Bool)
-> Array Int (Int8, Bool)
-> Array Int (Int8, Bool)
-> Array Int (Int8, Bool)
-> Array Int ([Int8], Bool)
-> Array Int ([Int8], Int8)
-> Array Int (Int8, [Int8] -> Int8)
-> Array Int (Int8, Bool)
-> Array Int ([Int8], Bool)
-> Array Int ([Int8], Bool)
-> Array Int ([Int8], Bool)
-> Array Int (Int8, [Int8])
-> Array Int (Char, Int8)
-> Array Int (Int8, [Int8])
-> Array Int (Char, Bool)
-> Array Int (Char, Bool)
-> Array Int (Int8, Bool)
-> ([Double] -> Double)
-> (Double -> c)
-> ([[[Int8]]] -> [[Double]])
-> Coeffs2
-> FuncRep2 String Double c
forall c.
Ord c =>
Array Int (Int8, Bool)
-> Array Int (Int8, Bool)
-> Array Int (Int8, Bool)
-> Array Int (Int8, Bool)
-> Array Int ([Int8], Bool)
-> Array Int ([Int8], Int8)
-> Array Int (Int8, [Int8] -> Int8)
-> Array Int (Int8, Bool)
-> Array Int ([Int8], Bool)
-> Array Int ([Int8], Bool)
-> Array Int ([Int8], Bool)
-> Array Int (Int8, [Int8])
-> Array Int (Char, Int8)
-> Array Int (Int8, [Int8])
-> Array Int (Char, Bool)
-> Array Int (Char, Bool)
-> Array Int (Int8, Bool)
-> ([Double] -> Double)
-> (Double -> c)
-> ([[[Int8]]] -> [[Double]])
-> Coeffs2
-> FuncRep2 String Double c
procB2FGTup  Array Int (Int8, Bool)
tup1 Array Int (Int8, Bool)
tup2 Array Int (Int8, Bool)
tup3 Array Int (Int8, Bool)
tup4 Array Int ([Int8], Bool)
tup5 Array Int ([Int8], Int8)
tup6 Array Int (Int8, [Int8] -> Int8)
tup7 Array Int (Int8, Bool)
tup8 Array Int ([Int8], Bool)
tup9 Array Int ([Int8], Bool)
tup10 Array Int ([Int8], Bool)
tup11 Array Int (Int8, [Int8])
tup12 Array Int (Char, Int8)
tup13 Array Int (Int8, [Int8])
tup14 Array Int (Char, Bool)
tup15 Array Int (Char, Bool)
tup16 Array Int (Int8, Bool)
tup17 (Coeffs2 -> [Double] -> Double
eval23Coeffs Coeffs2
coeffs) Double -> c
h [[[Int8]]] -> [[Double]]
g Coeffs2
coeffs
{-# INLINE procB2FTup #-}

procB2FFTup
  :: (Ord c) => Array Int (Int8, Bool)
  -> Array Int (Int8, Bool)
  -> Array Int (Int8, Bool)
  -> Array Int (Int8, Bool)
  -> Array Int ([Int8], Bool)
  -> Array Int ([Int8], Int8)
  -> Array Int (Int8, FlowSound -> Sound8)
  -> Array Int (Int8, Bool)
  -> Array Int ([Int8], Bool)
  -> Array Int ([Int8], Bool)
  -> Array Int ([Int8], Bool)
  -> Array Int (Int8, [Int8])
  -> Array Int (Char,Int8)
  -> Array Int (Int8,[Int8])
  -> Array Int (Char, Bool)
  -> Array Int (Char, Bool)
  -> Array Int (Int8,Bool)
  -> Double
  -> (Double -> c)
  -> ([[[Sound8]]] -> [[Double]])
  -> Coeffs2
  -> FuncRep2 String Double c
procB2FFTup :: Array Int (Int8, Bool)
-> Array Int (Int8, Bool)
-> Array Int (Int8, Bool)
-> Array Int (Int8, Bool)
-> Array Int ([Int8], Bool)
-> Array Int ([Int8], Int8)
-> Array Int (Int8, [Int8] -> Int8)
-> Array Int (Int8, Bool)
-> Array Int ([Int8], Bool)
-> Array Int ([Int8], Bool)
-> Array Int ([Int8], Bool)
-> Array Int (Int8, [Int8])
-> Array Int (Char, Int8)
-> Array Int (Int8, [Int8])
-> Array Int (Char, Bool)
-> Array Int (Char, Bool)
-> Array Int (Int8, Bool)
-> Double
-> (Double -> c)
-> ([[[Int8]]] -> [[Double]])
-> Coeffs2
-> FuncRep2 String Double c
procB2FFTup Array Int (Int8, Bool)
tup1 Array Int (Int8, Bool)
tup2 Array Int (Int8, Bool)
tup3 Array Int (Int8, Bool)
tup4 Array Int ([Int8], Bool)
tup5 Array Int ([Int8], Int8)
tup6 Array Int (Int8, [Int8] -> Int8)
tup7 Array Int (Int8, Bool)
tup8 Array Int ([Int8], Bool)
tup9 Array Int ([Int8], Bool)
tup10 Array Int ([Int8], Bool)
tup11 Array Int (Int8, [Int8])
tup12 Array Int (Char, Int8)
tup13 Array Int (Int8, [Int8])
tup14 Array Int (Char, Bool)
tup15 Array Int (Char, Bool)
tup16 Array Int (Int8, Bool)
tup17  Double
k Double -> c
h [[[Int8]]] -> [[Double]]
g Coeffs2
coeffs
 = Array Int (Int8, Bool)
-> Array Int (Int8, Bool)
-> Array Int (Int8, Bool)
-> Array Int (Int8, Bool)
-> Array Int ([Int8], Bool)
-> Array Int ([Int8], Int8)
-> Array Int (Int8, [Int8] -> Int8)
-> Array Int (Int8, Bool)
-> Array Int ([Int8], Bool)
-> Array Int ([Int8], Bool)
-> Array Int ([Int8], Bool)
-> Array Int (Int8, [Int8])
-> Array Int (Char, Int8)
-> Array Int (Int8, [Int8])
-> Array Int (Char, Bool)
-> Array Int (Char, Bool)
-> Array Int (Int8, Bool)
-> ([Double] -> Double)
-> (Double -> c)
-> ([[[Int8]]] -> [[Double]])
-> Coeffs2
-> FuncRep2 String Double c
forall c.
Ord c =>
Array Int (Int8, Bool)
-> Array Int (Int8, Bool)
-> Array Int (Int8, Bool)
-> Array Int (Int8, Bool)
-> Array Int ([Int8], Bool)
-> Array Int ([Int8], Int8)
-> Array Int (Int8, [Int8] -> Int8)
-> Array Int (Int8, Bool)
-> Array Int ([Int8], Bool)
-> Array Int ([Int8], Bool)
-> Array Int ([Int8], Bool)
-> Array Int (Int8, [Int8])
-> Array Int (Char, Int8)
-> Array Int (Int8, [Int8])
-> Array Int (Char, Bool)
-> Array Int (Char, Bool)
-> Array Int (Int8, Bool)
-> ([Double] -> Double)
-> (Double -> c)
-> ([[[Int8]]] -> [[Double]])
-> Coeffs2
-> FuncRep2 String Double c
procB2FGTup Array Int (Int8, Bool)
tup1 Array Int (Int8, Bool)
tup2 Array Int (Int8, Bool)
tup3 Array Int (Int8, Bool)
tup4 Array Int ([Int8], Bool)
tup5 Array Int ([Int8], Int8)
tup6 Array Int (Int8, [Int8] -> Int8)
tup7 Array Int (Int8, Bool)
tup8 Array Int ([Int8], Bool)
tup9 Array Int ([Int8], Bool)
tup10 Array Int ([Int8], Bool)
tup11 Array Int (Int8, [Int8])
tup12 Array Int (Char, Int8)
tup13 Array Int (Int8, [Int8])
tup14 Array Int (Char, Bool)
tup15 Array Int (Char, Bool)
tup16 Array Int (Int8, Bool)
tup17 (Double -> Coeffs2 -> [Double] -> Double
eval23CoeffsF Double
k Coeffs2
coeffs) Double -> c
h [[[Int8]]] -> [[Double]]
g Coeffs2
coeffs
{-# INLINE procB2FFTup #-}

procB2InvFTup
  :: (Ord c) => Array Int (Int8, Bool)
  -> Array Int (Int8, Bool)
  -> Array Int (Int8, Bool)
  -> Array Int (Int8, Bool)
  -> Array Int ([Int8], Bool)
  -> Array Int ([Int8], Int8)
  -> Array Int (Int8, FlowSound -> Sound8)
  -> Array Int (Int8, Bool)
  -> Array Int ([Int8], Bool)
  -> Array Int ([Int8], Bool)
  -> Array Int ([Int8], Bool)
  -> Array Int (Int8, [Int8])
  -> Array Int (Char,Int8)
  -> Array Int (Int8,[Int8])
  -> Array Int (Char, Bool)
  -> Array Int (Char, Bool)
  -> Array Int (Int8,Bool)
  -> (Double -> c)
  -> ([[[Sound8]]] -> [[Double]])
  -> Coeffs2
  -> FuncRep2 String Double c
procB2InvFTup :: Array Int (Int8, Bool)
-> Array Int (Int8, Bool)
-> Array Int (Int8, Bool)
-> Array Int (Int8, Bool)
-> Array Int ([Int8], Bool)
-> Array Int ([Int8], Int8)
-> Array Int (Int8, [Int8] -> Int8)
-> Array Int (Int8, Bool)
-> Array Int ([Int8], Bool)
-> Array Int ([Int8], Bool)
-> Array Int ([Int8], Bool)
-> Array Int (Int8, [Int8])
-> Array Int (Char, Int8)
-> Array Int (Int8, [Int8])
-> Array Int (Char, Bool)
-> Array Int (Char, Bool)
-> Array Int (Int8, Bool)
-> (Double -> c)
-> ([[[Int8]]] -> [[Double]])
-> Coeffs2
-> FuncRep2 String Double c
procB2InvFTup Array Int (Int8, Bool)
tup1 Array Int (Int8, Bool)
tup2 Array Int (Int8, Bool)
tup3 Array Int (Int8, Bool)
tup4 Array Int ([Int8], Bool)
tup5 Array Int ([Int8], Int8)
tup6 Array Int (Int8, [Int8] -> Int8)
tup7 Array Int (Int8, Bool)
tup8 Array Int ([Int8], Bool)
tup9 Array Int ([Int8], Bool)
tup10 Array Int ([Int8], Bool)
tup11 Array Int (Int8, [Int8])
tup12 Array Int (Char, Int8)
tup13 Array Int (Int8, [Int8])
tup14 Array Int (Char, Bool)
tup15 Array Int (Char, Bool)
tup16 Array Int (Int8, Bool)
tup17 Double -> c
h [[[Int8]]] -> [[Double]]
g Coeffs2
coeffs
 = Array Int (Int8, Bool)
-> Array Int (Int8, Bool)
-> Array Int (Int8, Bool)
-> Array Int (Int8, Bool)
-> Array Int ([Int8], Bool)
-> Array Int ([Int8], Int8)
-> Array Int (Int8, [Int8] -> Int8)
-> Array Int (Int8, Bool)
-> Array Int ([Int8], Bool)
-> Array Int ([Int8], Bool)
-> Array Int ([Int8], Bool)
-> Array Int (Int8, [Int8])
-> Array Int (Char, Int8)
-> Array Int (Int8, [Int8])
-> Array Int (Char, Bool)
-> Array Int (Char, Bool)
-> Array Int (Int8, Bool)
-> ([Double] -> Double)
-> (Double -> c)
-> ([[[Int8]]] -> [[Double]])
-> Coeffs2
-> FuncRep2 String Double c
forall c.
Ord c =>
Array Int (Int8, Bool)
-> Array Int (Int8, Bool)
-> Array Int (Int8, Bool)
-> Array Int (Int8, Bool)
-> Array Int ([Int8], Bool)
-> Array Int ([Int8], Int8)
-> Array Int (Int8, [Int8] -> Int8)
-> Array Int (Int8, Bool)
-> Array Int ([Int8], Bool)
-> Array Int ([Int8], Bool)
-> Array Int ([Int8], Bool)
-> Array Int (Int8, [Int8])
-> Array Int (Char, Int8)
-> Array Int (Int8, [Int8])
-> Array Int (Char, Bool)
-> Array Int (Char, Bool)
-> Array Int (Int8, Bool)
-> ([Double] -> Double)
-> (Double -> c)
-> ([[[Int8]]] -> [[Double]])
-> Coeffs2
-> FuncRep2 String Double c
procB2InvFGTup Array Int (Int8, Bool)
tup1 Array Int (Int8, Bool)
tup2 Array Int (Int8, Bool)
tup3 Array Int (Int8, Bool)
tup4 Array Int ([Int8], Bool)
tup5 Array Int ([Int8], Int8)
tup6 Array Int (Int8, [Int8] -> Int8)
tup7 Array Int (Int8, Bool)
tup8 Array Int ([Int8], Bool)
tup9 Array Int ([Int8], Bool)
tup10 Array Int ([Int8], Bool)
tup11 Array Int (Int8, [Int8])
tup12 Array Int (Char, Int8)
tup13 Array Int (Int8, [Int8])
tup14 Array Int (Char, Bool)
tup15 Array Int (Char, Bool)
tup16 Array Int (Int8, Bool)
tup17 (Coeffs2 -> [Double] -> Double
eval23Coeffs Coeffs2
coeffs) Double -> c
h [[[Int8]]] -> [[Double]]
g Coeffs2
coeffs
{-# INLINE procB2InvFTup #-}

procB2InvFFTup
  :: (Ord c) => Array Int (Int8, Bool)
  -> Array Int (Int8, Bool)
  -> Array Int (Int8, Bool)
  -> Array Int (Int8, Bool)
  -> Array Int ([Int8], Bool)
  -> Array Int ([Int8], Int8)
  -> Array Int (Int8, FlowSound -> Sound8)
  -> Array Int (Int8, Bool)
  -> Array Int ([Int8], Bool)
  -> Array Int ([Int8], Bool)
  -> Array Int ([Int8], Bool)
  -> Array Int (Int8, [Int8])
  -> Array Int (Char,Int8)
  -> Array Int (Int8,[Int8])
  -> Array Int (Char, Bool)
  -> Array Int (Char, Bool)
  -> Array Int (Int8,Bool)
  -> Double
  -> (Double -> c)
  -> ([[[Sound8]]] -> [[Double]])
  -> Coeffs2
  -> FuncRep2 String Double c
procB2InvFFTup :: Array Int (Int8, Bool)
-> Array Int (Int8, Bool)
-> Array Int (Int8, Bool)
-> Array Int (Int8, Bool)
-> Array Int ([Int8], Bool)
-> Array Int ([Int8], Int8)
-> Array Int (Int8, [Int8] -> Int8)
-> Array Int (Int8, Bool)
-> Array Int ([Int8], Bool)
-> Array Int ([Int8], Bool)
-> Array Int ([Int8], Bool)
-> Array Int (Int8, [Int8])
-> Array Int (Char, Int8)
-> Array Int (Int8, [Int8])
-> Array Int (Char, Bool)
-> Array Int (Char, Bool)
-> Array Int (Int8, Bool)
-> Double
-> (Double -> c)
-> ([[[Int8]]] -> [[Double]])
-> Coeffs2
-> FuncRep2 String Double c
procB2InvFFTup Array Int (Int8, Bool)
tup1 Array Int (Int8, Bool)
tup2 Array Int (Int8, Bool)
tup3 Array Int (Int8, Bool)
tup4 Array Int ([Int8], Bool)
tup5 Array Int ([Int8], Int8)
tup6 Array Int (Int8, [Int8] -> Int8)
tup7 Array Int (Int8, Bool)
tup8 Array Int ([Int8], Bool)
tup9 Array Int ([Int8], Bool)
tup10 Array Int ([Int8], Bool)
tup11 Array Int (Int8, [Int8])
tup12 Array Int (Char, Int8)
tup13 Array Int (Int8, [Int8])
tup14 Array Int (Char, Bool)
tup15 Array Int (Char, Bool)
tup16 Array Int (Int8, Bool)
tup17 Double
k Double -> c
h [[[Int8]]] -> [[Double]]
g Coeffs2
coeffs
 = Array Int (Int8, Bool)
-> Array Int (Int8, Bool)
-> Array Int (Int8, Bool)
-> Array Int (Int8, Bool)
-> Array Int ([Int8], Bool)
-> Array Int ([Int8], Int8)
-> Array Int (Int8, [Int8] -> Int8)
-> Array Int (Int8, Bool)
-> Array Int ([Int8], Bool)
-> Array Int ([Int8], Bool)
-> Array Int ([Int8], Bool)
-> Array Int (Int8, [Int8])
-> Array Int (Char, Int8)
-> Array Int (Int8, [Int8])
-> Array Int (Char, Bool)
-> Array Int (Char, Bool)
-> Array Int (Int8, Bool)
-> ([Double] -> Double)
-> (Double -> c)
-> ([[[Int8]]] -> [[Double]])
-> Coeffs2
-> FuncRep2 String Double c
forall c.
Ord c =>
Array Int (Int8, Bool)
-> Array Int (Int8, Bool)
-> Array Int (Int8, Bool)
-> Array Int (Int8, Bool)
-> Array Int ([Int8], Bool)
-> Array Int ([Int8], Int8)
-> Array Int (Int8, [Int8] -> Int8)
-> Array Int (Int8, Bool)
-> Array Int ([Int8], Bool)
-> Array Int ([Int8], Bool)
-> Array Int ([Int8], Bool)
-> Array Int (Int8, [Int8])
-> Array Int (Char, Int8)
-> Array Int (Int8, [Int8])
-> Array Int (Char, Bool)
-> Array Int (Char, Bool)
-> Array Int (Int8, Bool)
-> ([Double] -> Double)
-> (Double -> c)
-> ([[[Int8]]] -> [[Double]])
-> Coeffs2
-> FuncRep2 String Double c
procB2InvFGTup Array Int (Int8, Bool)
tup1 Array Int (Int8, Bool)
tup2 Array Int (Int8, Bool)
tup3 Array Int (Int8, Bool)
tup4 Array Int ([Int8], Bool)
tup5 Array Int ([Int8], Int8)
tup6 Array Int (Int8, [Int8] -> Int8)
tup7 Array Int (Int8, Bool)
tup8 Array Int ([Int8], Bool)
tup9 Array Int ([Int8], Bool)
tup10 Array Int ([Int8], Bool)
tup11 Array Int (Int8, [Int8])
tup12 Array Int (Char, Int8)
tup13 Array Int (Int8, [Int8])
tup14 Array Int (Char, Bool)
tup15 Array Int (Char, Bool)
tup16 Array Int (Int8, Bool)
tup17 (Double -> Coeffs2 -> [Double] -> Double
eval23CoeffsF Double
k Coeffs2
coeffs) Double -> c
h [[[Int8]]] -> [[Double]]
g Coeffs2
coeffs
{-# INLINE procB2InvFFTup #-}