module Hat.Complex
  (Complex((:+)),(+:+),grealPart,arealPart,hrealPart,gimagPart,aimagPart
    ,himagPart,gconjugate,aconjugate,hconjugate,gmkPolar,amkPolar,hmkPolar,gcis
    ,acis,hcis,gpolar,apolar,hpolar,gmagnitude,amagnitude,hmagnitude,gphase
    ,aphase,hphase) where

import qualified Hat.PreludeBasic 
import qualified Prelude 
import Hat.Hack 
import qualified Hat.Hat as T 
import Hat.Hat  (WrapVal(wrapVal))
import Hat.Prelude 

data Complex a = (:+) !(T.R a) !(T.R a)

instance T.WrapVal ((Complex a))
  where
  
  wrapVal pwrapVal (kwrapVal@((T.R _ z1wrapVal) :+ (T.R _ z2wrapVal))) p =
    T.R kwrapVal (T.mkValueApp2 p pwrapVal (+:+) z1wrapVal z2wrapVal)
  

instance Eq a => Eq ((Complex a))
  where
  
  (!==) (%==) p =
    T.ufun2 (++=%@=+=%>==) (%==) p (*==)
    where
    
    (*==) (T.R (fy1 :+ fy2) _) (T.R (fy3 :+ fy4) _) p =
      T.uwrapForward p
        (((T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos Hat.Prelude.!== p) fy1 fy3)
            Hat.Prelude.*&&
            (T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos Hat.Prelude.!== p) fy2 fy4)) p)
    (*==) _ _ p = T.con0 T.mkNoSrcPos p Hat.Prelude.False Hat.Prelude.aFalse
    
  

instance Read a => Read ((Complex a))
  where
  
  greadsPrec preadsPrec p =
    T.ufun1 a6v41v6v44readsPrec preadsPrec p hreadsPrec
    where
    
    hreadsPrec fy1 p =
      T.uwrapForward p
        (Hat.Prelude.hreadParen
          (T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos Hat.Prelude.!> p) fy1
            (T.uap1 T.mkNoSrcPos p
              (Hat.PreludeBasic.gfromInteger T.mkNoSrcPos p)
              (T.conInteger T.mkNoSrcPos p 6)))
          (T.uap2 T.mkNoSrcPos p (Hat.PreludeBasic.gthenAp T.mkNoSrcPos p)
            (T.uwrapForward p
              (Hat.PreludeBasic.hthenLex
                (T.uap2 T.mkNoSrcPos p (Hat.PreludeBasic.gthenAp T.mkNoSrcPos p)
                  (T.uap1 T.mkNoSrcPos p
                    (Hat.PreludeBasic.gyield T.mkNoSrcPos p)
                    (T.pa0 (:+) T.cn2 T.mkNoSrcPos p (+:+)))
                  (T.uap1 T.mkNoSrcPos p (Hat.Prelude.greadsPrec T.mkNoSrcPos p)
                    (T.uap1 T.mkNoSrcPos p
                      (Hat.PreludeBasic.gfromInteger T.mkNoSrcPos p)
                      (T.conInteger T.mkNoSrcPos p 7))))
                (T.fromLitString T.mkNoSrcPos p ":+") p))
            (T.uap1 T.mkNoSrcPos p (Hat.Prelude.greadsPrec T.mkNoSrcPos p)
              (T.uap1 T.mkNoSrcPos p
                (Hat.PreludeBasic.gfromInteger T.mkNoSrcPos p)
                (T.conInteger T.mkNoSrcPos p 7)))) p)
    
  

instance Show a => Show ((Complex a))
  where
  
  gshowsPrec pshowsPrec p =
    T.ufun2 a6v46v6v49showsPrec pshowsPrec p hshowsPrec
    where
    
    hshowsPrec fy1 (T.R (fy2 :+ fy3) _) p =
      T.uwrapForward p
        (Hat.Prelude.hshowParen
          (T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos Hat.Prelude.!> p) fy1
            (T.uap1 T.mkNoSrcPos p
              (Hat.PreludeBasic.gfromInteger T.mkNoSrcPos p)
              (T.conInteger T.mkNoSrcPos p 6)))
          (T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos Hat.Prelude.!. p)
            (T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos Hat.Prelude.!. p)
              (T.uap2 T.mkNoSrcPos p (Hat.Prelude.gshowsPrec T.mkNoSrcPos p)
                (T.uap1 T.mkNoSrcPos p
                  (Hat.PreludeBasic.gfromInteger T.mkNoSrcPos p)
                  (T.conInteger T.mkNoSrcPos p 7)) fy2)
              (T.uap1 T.mkNoSrcPos p (Hat.Prelude.gshowString T.mkNoSrcPos p)
                (T.fromLitString T.mkNoSrcPos p " :+ ")))
            (T.uap2 T.mkNoSrcPos p (Hat.Prelude.gshowsPrec T.mkNoSrcPos p)
              (T.uap1 T.mkNoSrcPos p
                (Hat.PreludeBasic.gfromInteger T.mkNoSrcPos p)
                (T.conInteger T.mkNoSrcPos p 7)) fy3)) p)
    hshowsPrec _ _ p = T.fatal p
    
  

grealPart,gimagPart ::
  RealFloat a => T.RefSrcPos -> T.RefExp -> T.R (T.Fun (Complex a) a)

hrealPart :: RealFloat a => (T.R (Complex a)) -> T.RefExp -> T.R a

himagPart :: RealFloat a => (T.R (Complex a)) -> T.RefExp -> T.R a

grealPart prealPart p = T.ufun1 arealPart prealPart p hrealPart

hrealPart (T.R (fx :+ fy) _) p = T.projection T.mkNoSrcPos p fx
hrealPart _ p = T.fatal p

gimagPart pimagPart p = T.ufun1 aimagPart pimagPart p himagPart

himagPart (T.R (fx :+ fy) _) p = T.projection T.mkNoSrcPos p fy
himagPart _ p = T.fatal p

gconjugate ::
  RealFloat a => T.RefSrcPos -> T.RefExp -> T.R (T.Fun (Complex a) (Complex a))

hconjugate :: RealFloat a => (T.R (Complex a)) -> T.RefExp -> T.R (Complex a)

gconjugate pconjugate p = T.ufun1 aconjugate pconjugate p hconjugate

hconjugate (T.R (fx :+ fy) _) p =
  T.con2 T.mkNoSrcPos p (:+) (+:+) fx
    (T.uap1 T.mkNoSrcPos p (gnegate T.mkNoSrcPos p) fy)
hconjugate _ p = T.fatal p

gmkPolar ::
  RealFloat a => T.RefSrcPos -> T.RefExp -> T.R (T.Fun a (T.Fun a (Complex a)))

hmkPolar :: RealFloat a => (T.R a) -> (T.R a) -> T.RefExp -> T.R (Complex a)

gmkPolar pmkPolar p = T.ufun2 amkPolar pmkPolar p hmkPolar

hmkPolar fr ftheta p =
  T.con2 T.mkNoSrcPos p (:+) (+:+)
    (T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !* p) fr
      (T.uap1 T.mkNoSrcPos p (gcos T.mkNoSrcPos p) ftheta))
    (T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !* p) fr
      (T.uap1 T.mkNoSrcPos p (gsin T.mkNoSrcPos p) ftheta))

gcis :: RealFloat a => T.RefSrcPos -> T.RefExp -> T.R (T.Fun a (Complex a))

hcis :: RealFloat a => (T.R a) -> T.RefExp -> T.R (Complex a)

gcis pcis p = T.ufun1 acis pcis p hcis

hcis ftheta p =
  T.con2 T.mkNoSrcPos p (:+) (+:+)
    (T.uap1 T.mkNoSrcPos p (gcos T.mkNoSrcPos p) ftheta)
    (T.uap1 T.mkNoSrcPos p (gsin T.mkNoSrcPos p) ftheta)

gpolar ::
  RealFloat a =>
  T.RefSrcPos -> T.RefExp -> T.R (T.Fun (Complex a) (T.Tuple2 a a))

hpolar :: RealFloat a => (T.R (Complex a)) -> T.RefExp -> T.R (T.Tuple2 a a)

gpolar ppolar p = T.ufun1 apolar ppolar p hpolar

hpolar fz p =
  T.con2 T.mkNoSrcPos p T.Tuple2 T.aTuple2 (T.uwrapForward p (hmagnitude fz p))
    (T.uwrapForward p (hphase fz p))

gmagnitude ::
  RealFloat a => T.RefSrcPos -> T.RefExp -> T.R (T.Fun (Complex a) a)

hmagnitude :: RealFloat a => (T.R (Complex a)) -> T.RefExp -> T.R a

gmagnitude pmagnitude p = T.ufun1 amagnitude pmagnitude p hmagnitude

hmagnitude (T.R (fx :+ fy) _) p =
  T.uap2 T.mkNoSrcPos p (gscaleFloat T.mkNoSrcPos p) (gk T.mkNoSrcPos p)
    (T.uap1 T.mkNoSrcPos p (gsqrt T.mkNoSrcPos p)
      (T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !+ p)
        (T.uwrapForward p
          (((T.uap2 T.mkNoSrcPos p (gscaleFloat T.mkNoSrcPos p)
                (gmk T.mkNoSrcPos p) fx)
              *^
              (T.uap1 T.mkNoSrcPos p
                  (Hat.PreludeBasic.gfromInteger T.mkNoSrcPos p)
                  (T.conInteger T.mkNoSrcPos p 2)
                :: T.R Integer)) p))
        (T.uwrapForward p
          (((T.uap2 T.mkNoSrcPos p (gscaleFloat T.mkNoSrcPos p)
                (gmk T.mkNoSrcPos p) fy)
              *^
              (T.uap1 T.mkNoSrcPos p
                  (Hat.PreludeBasic.gfromInteger T.mkNoSrcPos p)
                  (T.conInteger T.mkNoSrcPos p 2)
                :: T.R Integer)) p))))
  where
  
  gk pk p = T.uconstUse pk p sk
  
  sk =
    T.uconstDef p a28v11v28v43k
      (\ p ->
        T.uap2 T.mkNoSrcPos p (gmax T.mkNoSrcPos p)
          (T.uap1 T.mkNoSrcPos p (gexponent T.mkNoSrcPos p) fx)
          (T.uap1 T.mkNoSrcPos p (gexponent T.mkNoSrcPos p) fy))
  
  gmk pmk p = T.uconstUse pmk p smk
  
  smk =
    T.uconstDef p a29v11v29v18mk
      (\ p ->
        T.uap1 T.mkNoSrcPos p (gnegate T.mkNoSrcPos p) (gk T.mkNoSrcPos p))
  
hmagnitude _ p = T.fatal p

gphase :: RealFloat a => T.RefSrcPos -> T.RefExp -> T.R (T.Fun (Complex a) a)

hphase :: RealFloat a => (T.R (Complex a)) -> T.RefExp -> T.R a

gphase pphase p = T.ufun1 aphase pphase p hphase

hphase (z1phase@(T.R (fv32v8v32v8n :+ v32v13v32v13n) _)) p =
  T.ucguard
    (T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos Hat.Prelude.!== p) fv32v8v32v8n
      (T.uap1 T.mkNoSrcPos p (Hat.PreludeBasic.gfromInteger T.mkNoSrcPos p)
        (T.conInteger T.mkNoSrcPos p 0))) (h v32v13v32v13n p)
    (y1phase z1phase p)
  where
  
  h fv32v13v32v13n p =
    T.ucguard
      (T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos Hat.Prelude.!== p) fv32v13v32v13n
        (T.uap1 T.mkNoSrcPos p (Hat.PreludeBasic.gfromInteger T.mkNoSrcPos p)
          (T.conInteger T.mkNoSrcPos p 0))) (h p) (y1phase z1phase p)
    where
    
    h p =
      T.uap1 T.mkNoSrcPos p (Hat.PreludeBasic.gfromInteger T.mkNoSrcPos p)
        (T.conInteger T.mkNoSrcPos p 0)
    h p = y1phase z1phase p
    
  h _ p = y1phase z1phase p
  
hphase z1phase p = y1phase z1phase p

y1phase (T.R (fx :+ fy) _) p =
  T.uap2 T.mkNoSrcPos p (gatan2 T.mkNoSrcPos p) fy fx
y1phase _ p = T.fatal p

instance RealFloat a => Num ((Complex a))
  where
  
  (!+) (%+) p =
    T.ufun2 (+%^=#$=%^=#$+) (%+) p (*+)
    where
    
    (*+) (T.R (fx :+ fy) _) (T.R (fx' :+ fy') _) p =
      T.con2 T.mkNoSrcPos p (:+) (+:+)
        (T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !+ p) fx fx')
        (T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !+ p) fy fy')
    (*+) _ _ p = T.fatal p
    
  
  (!-) (%-) p =
    T.ufun2 (+%@=#$=%@=#$-) (%-) p (*-)
    where
    
    (*-) (T.R (fx :+ fy) _) (T.R (fx' :+ fy') _) p =
      T.con2 T.mkNoSrcPos p (:+) (+:+)
        (T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !- p) fx fx')
        (T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !- p) fy fy')
    (*-) _ _ p = T.fatal p
    
  
  (!*) (%*) p =
    T.ufun2 (+%>=#$=%>=#$*) (%*) p (**)
    where
    
    (**) (T.R (fx :+ fy) _) (T.R (fx' :+ fy') _) p =
      T.con2 T.mkNoSrcPos p (:+) (+:+)
        (T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !- p)
          (T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !* p) fx fx')
          (T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !* p) fy fy'))
        (T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !+ p)
          (T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !* p) fx fy')
          (T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !* p) fy fx'))
    (**) _ _ p = T.fatal p
    
  
  gnegate pnegate p =
    T.ufun1 a40v5v40v41negate pnegate p hnegate
    where
    
    hnegate (T.R (fx :+ fy) _) p =
      T.con2 T.mkNoSrcPos p (:+) (+:+)
        (T.uap1 T.mkNoSrcPos p (gnegate T.mkNoSrcPos p) fx)
        (T.uap1 T.mkNoSrcPos p (gnegate T.mkNoSrcPos p) fy)
    hnegate _ p = T.fatal p
    
  
  gabs pabs p =
    T.ufun1 a41v5v41v29abs pabs p habs
    where
    
    habs fz p =
      T.con2 T.mkNoSrcPos p (:+) (+:+) (T.uwrapForward p (hmagnitude fz p))
        (T.uap1 T.mkNoSrcPos p (Hat.PreludeBasic.gfromInteger T.mkNoSrcPos p)
          (T.conInteger T.mkNoSrcPos p 0))
    
  
  gsignum psignum p =
    T.ufun1 a42v5v43v56signum psignum p hsignum
    where
    
    hsignum fv42v12v42v12n p =
      T.ucguard
        (T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos Hat.Prelude.!== p) fv42v12v42v12n
          (T.uap1 T.mkNoSrcPos p (Hat.PreludeBasic.gfromInteger T.mkNoSrcPos p)
            (T.conInteger T.mkNoSrcPos p 0))) (h p) (y1signum fv42v12v42v12n p)
      where
      
      h p =
        T.uap1 T.mkNoSrcPos p (Hat.PreludeBasic.gfromInteger T.mkNoSrcPos p)
          (T.conInteger T.mkNoSrcPos p 0)
      h p = y1signum fv42v12v42v12n p
      
    hsignum fv42v12v42v12n p = y1signum fv42v12v42v12n p
    
    y1signum (fz@(T.R (fx :+ fy) _)) p =
      T.con2 T.mkNoSrcPos p (:+) (+:+)
        (T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !/ p) fx (gr T.mkNoSrcPos p))
        (T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !/ p) fy (gr T.mkNoSrcPos p))
      where
      
      gr pr p = T.uconstUse pr p sr
      
      sr =
        T.uconstDef p a43v42v43v56r (\ p -> T.uwrapForward p (hmagnitude fz p))
      
    y1signum _ p = T.fatal p
    
  
  gfromInteger pfromInteger p =
    T.ufun1 a44v5v44v39fromInteger pfromInteger p hfromInteger
    where
    
    hfromInteger fn p =
      T.con2 T.mkNoSrcPos p (:+) (+:+)
        (T.uap1 T.mkNoSrcPos p (gfromInteger T.mkNoSrcPos p) fn)
        (T.uap1 T.mkNoSrcPos p (Hat.PreludeBasic.gfromInteger T.mkNoSrcPos p)
          (T.conInteger T.mkNoSrcPos p 0))
    
  

instance RealFloat a => Fractional ((Complex a))
  where
  
  (!/) (%/) p =
    T.ufun2 (+&^=#!=&^=#!/) (%/) p (*/)
    where
    
    (*/) (T.R (fx :+ fy) _) (T.R (fx' :+ fy') _) p =
      T.con2 T.mkNoSrcPos p (:+) (+:+)
        (T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !/ p)
          (T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !+ p)
            (T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !* p) fx (gx'' T.mkNoSrcPos p))
            (T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !* p) fy
              (gy'' T.mkNoSrcPos p))) (gd T.mkNoSrcPos p))
        (T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !/ p)
          (T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !- p)
            (T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !* p) fy (gx'' T.mkNoSrcPos p))
            (T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !* p) fx
              (gy'' T.mkNoSrcPos p))) (gd T.mkNoSrcPos p))
      where
      
      gx'' px'' p = T.uconstUse px'' p sx''
      
      sx'' =
        T.uconstDef p a49v5v49v25x''
          (\ p ->
            T.uap2 T.mkNoSrcPos p (gscaleFloat T.mkNoSrcPos p)
              (gk T.mkNoSrcPos p) fx')
      
      gy'' py'' p = T.uconstUse py'' p sy''
      
      sy'' =
        T.uconstDef p a50v5v50v25y''
          (\ p ->
            T.uap2 T.mkNoSrcPos p (gscaleFloat T.mkNoSrcPos p)
              (gk T.mkNoSrcPos p) fy')
      
      gk pk p = T.uconstUse pk p sk
      
      sk =
        T.uconstDef p a51v5v51v42k
          (\ p ->
            T.uap1 T.mkNoSrcPos p (gnegate T.mkNoSrcPos p)
              (T.uap2 T.mkNoSrcPos p (gmax T.mkNoSrcPos p)
                (T.uap1 T.mkNoSrcPos p (gexponent T.mkNoSrcPos p) fx')
                (T.uap1 T.mkNoSrcPos p (gexponent T.mkNoSrcPos p) fy')))
      
      gd pd p = T.uconstUse pd p sd
      
      sd =
        T.uconstDef p a52v5v52v25d
          (\ p ->
            T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !+ p)
              (T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !* p) fx'
                (gx'' T.mkNoSrcPos p))
              (T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !* p) fy'
                (gy'' T.mkNoSrcPos p)))
      
    (*/) _ _ p = T.fatal p
    
  
  gfromRational pfromRational p =
    T.ufun1 a54v3v54v39fromRational pfromRational p hfromRational
    where
    
    hfromRational fa p =
      T.con2 T.mkNoSrcPos p (:+) (+:+)
        (T.uap1 T.mkNoSrcPos p (gfromRational T.mkNoSrcPos p) fa)
        (T.uap1 T.mkNoSrcPos p (Hat.PreludeBasic.gfromInteger T.mkNoSrcPos p)
          (T.conInteger T.mkNoSrcPos p 0))
    
  

instance RealFloat a => Floating ((Complex a))
  where
  
  gpi ppi p = T.uconstUse ppi p spi
  
  spi =
    T.uconstDef T.mkRoot a57v5v57v29pi
      (\ p ->
        T.con2 T.mkNoSrcPos p (:+) (+:+) (gpi T.mkNoSrcPos p)
          (T.uap1 T.mkNoSrcPos p (Hat.PreludeBasic.gfromInteger T.mkNoSrcPos p)
            (T.conInteger T.mkNoSrcPos p 0)))
  
  gexp pexp p =
    T.ufun1 a58v5v59v40exp pexp p hexp
    where
    
    hexp (T.R (fx :+ fy) _) p =
      T.con2 T.mkNoSrcPos p (:+) (+:+)
        (T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !* p) (gexpx T.mkNoSrcPos p)
          (T.uap1 T.mkNoSrcPos p (gcos T.mkNoSrcPos p) fy))
        (T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !* p) (gexpx T.mkNoSrcPos p)
          (T.uap1 T.mkNoSrcPos p (gsin T.mkNoSrcPos p) fy))
      where
      
      gexpx pexpx p = T.uconstUse pexpx p sexpx
      
      sexpx =
        T.uconstDef p a59v29v59v40expx
          (\ p -> T.uap1 T.mkNoSrcPos p (gexp T.mkNoSrcPos p) fx)
      
    hexp _ p = T.fatal p
    
  
  glog plog p =
    T.ufun1 a60v5v60v50log plog p hlog
    where
    
    hlog fz p =
      T.con2 T.mkNoSrcPos p (:+) (+:+)
        (T.uap1 T.mkNoSrcPos p (glog T.mkNoSrcPos p)
          (T.uwrapForward p (hmagnitude fz p))) (T.uwrapForward p (hphase fz p))
    
  
  gsqrt psqrt p =
    T.ufun1 a62v5v66v67sqrt psqrt p hsqrt
    where
    
    hsqrt fv62v10v62v10n p =
      T.ucguard
        (T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos Hat.Prelude.!== p) fv62v10v62v10n
          (T.uap1 T.mkNoSrcPos p (Hat.PreludeBasic.gfromInteger T.mkNoSrcPos p)
            (T.conInteger T.mkNoSrcPos p 0))) (h p) (y1sqrt fv62v10v62v10n p)
      where
      
      h p =
        T.uap1 T.mkNoSrcPos p (Hat.PreludeBasic.gfromInteger T.mkNoSrcPos p)
          (T.conInteger T.mkNoSrcPos p 0)
      h p = y1sqrt fv62v10v62v10n p
      
    hsqrt fv62v10v62v10n p = y1sqrt fv62v10v62v10n p
    
    y1sqrt (fz@(T.R (fx :+ fy) _)) p =
      T.con2 T.mkNoSrcPos p (:+) (+:+) (gu T.mkNoSrcPos p)
        (T.ucif p
          (T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !< p) fy
            (T.uap1 T.mkNoSrcPos p
              (Hat.PreludeBasic.gfromInteger T.mkNoSrcPos p)
              (T.conInteger T.mkNoSrcPos p 0)))
          (T.uap1 T.mkNoSrcPos p (gnegate T.mkNoSrcPos p) (gv T.mkNoSrcPos p))
          (gv T.mkNoSrcPos p))
      where
      
      gu pu p = T.uconstUse pu p su
      
      gv pu p = T.uconstUse pu p sv
      
      j64v29v64v33u =
        case
          T.ucif p
            (T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !< p) fx
              (T.uap1 T.mkNoSrcPos p
                (Hat.PreludeBasic.gfromInteger T.mkNoSrcPos p)
                (T.conInteger T.mkNoSrcPos p 0)))
            (T.con2 T.mkNoSrcPos p T.Tuple2 T.aTuple2 (gv' T.mkNoSrcPos p)
              (gu' T.mkNoSrcPos p))
            (T.con2 T.mkNoSrcPos p T.Tuple2 T.aTuple2 (gu' T.mkNoSrcPos p)
              (gv' T.mkNoSrcPos p)) of
          T.R (T.Tuple2 fu fv) ku -> (ku,fu,fv)
          _ -> T.fatal p
      
      su =
        T.uconstDef p a64v30v64v30u
          (\ _ -> case j64v29v64v33u of (ku,fu,fv) -> fu)
      
      sv =
        T.uconstDef p a64v32v64v32v
          (\ _ -> case j64v29v64v33u of (ku,fu,fv) -> fv)
      
      gv' pv' p = T.uconstUse pv' p sv'
      
      sv' =
        T.uconstDef p a65v29v65v49v'
          (\ p ->
            T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !/ p)
              (T.uap1 T.mkNoSrcPos p (gabs T.mkNoSrcPos p) fy)
              (T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !* p) (gu' T.mkNoSrcPos p)
                (T.uap1 T.mkNoSrcPos p
                  (Hat.PreludeBasic.gfromInteger T.mkNoSrcPos p)
                  (T.conInteger T.mkNoSrcPos p 2))))
      
      gu' pu' p = T.uconstUse pu' p su'
      
      su' =
        T.uconstDef p a66v29v66v67u'
          (\ p ->
            T.uap1 T.mkNoSrcPos p (gsqrt T.mkNoSrcPos p)
              (T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !/ p)
                (T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !+ p)
                  (T.uwrapForward p (hmagnitude fz p))
                  (T.uap1 T.mkNoSrcPos p (gabs T.mkNoSrcPos p) fx))
                (T.uap1 T.mkNoSrcPos p
                  (Hat.PreludeBasic.gfromInteger T.mkNoSrcPos p)
                  (T.conInteger T.mkNoSrcPos p 2))))
      
    y1sqrt _ p = T.fatal p
    
  
  gsin psin p =
    T.ufun1 a68v5v68v54sin psin p hsin
    where
    
    hsin (T.R (fx :+ fy) _) p =
      T.con2 T.mkNoSrcPos p (:+) (+:+)
        (T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !* p)
          (T.uap1 T.mkNoSrcPos p (gsin T.mkNoSrcPos p) fx)
          (T.uap1 T.mkNoSrcPos p (gcosh T.mkNoSrcPos p) fy))
        (T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !* p)
          (T.uap1 T.mkNoSrcPos p (gcos T.mkNoSrcPos p) fx)
          (T.uap1 T.mkNoSrcPos p (gsinh T.mkNoSrcPos p) fy))
    hsin _ p = T.fatal p
    
  
  gcos pcos p =
    T.ufun1 a69v5v69v57cos pcos p hcos
    where
    
    hcos (T.R (fx :+ fy) _) p =
      T.con2 T.mkNoSrcPos p (:+) (+:+)
        (T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !* p)
          (T.uap1 T.mkNoSrcPos p (gcos T.mkNoSrcPos p) fx)
          (T.uap1 T.mkNoSrcPos p (gcosh T.mkNoSrcPos p) fy))
        (T.uap1 T.mkNoSrcPos p (gnegate T.mkNoSrcPos p)
          (T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !* p)
            (T.uap1 T.mkNoSrcPos p (gsin T.mkNoSrcPos p) fx)
            (T.uap1 T.mkNoSrcPos p (gsinh T.mkNoSrcPos p) fy)))
    hcos _ p = T.fatal p
    
  
  gtan ptan p =
    T.ufun1 a70v5v74v42tan ptan p htan
    where
    
    htan (T.R (fx :+ fy) _) p =
      T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !/ p)
        (T.con2 T.mkNoSrcPos p (:+) (+:+)
          (T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !* p) (gsinx T.mkNoSrcPos p)
            (gcoshy T.mkNoSrcPos p))
          (T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !* p) (gcosx T.mkNoSrcPos p)
            (gsinhy T.mkNoSrcPos p)))
        (T.con2 T.mkNoSrcPos p (:+) (+:+)
          (T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !* p) (gcosx T.mkNoSrcPos p)
            (gcoshy T.mkNoSrcPos p))
          (T.uap1 T.mkNoSrcPos p (gnegate T.mkNoSrcPos p)
            (T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !* p) (gsinx T.mkNoSrcPos p)
              (gsinhy T.mkNoSrcPos p))))
      where
      
      gsinx psinx p = T.uconstUse psinx p ssinx
      
      ssinx =
        T.uconstDef p a71v29v71v41sinx
          (\ p -> T.uap1 T.mkNoSrcPos p (gsin T.mkNoSrcPos p) fx)
      
      gcosx pcosx p = T.uconstUse pcosx p scosx
      
      scosx =
        T.uconstDef p a72v29v72v41cosx
          (\ p -> T.uap1 T.mkNoSrcPos p (gcos T.mkNoSrcPos p) fx)
      
      gsinhy psinhy p = T.uconstUse psinhy p ssinhy
      
      ssinhy =
        T.uconstDef p a73v29v73v42sinhy
          (\ p -> T.uap1 T.mkNoSrcPos p (gsinh T.mkNoSrcPos p) fy)
      
      gcoshy pcoshy p = T.uconstUse pcoshy p scoshy
      
      scoshy =
        T.uconstDef p a74v29v74v42coshy
          (\ p -> T.uap1 T.mkNoSrcPos p (gcosh T.mkNoSrcPos p) fy)
      
    htan _ p = T.fatal p
    
  
  gsinh psinh p =
    T.ufun1 a76v5v76v55sinh psinh p hsinh
    where
    
    hsinh (T.R (fx :+ fy) _) p =
      T.con2 T.mkNoSrcPos p (:+) (+:+)
        (T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !* p)
          (T.uap1 T.mkNoSrcPos p (gcos T.mkNoSrcPos p) fy)
          (T.uap1 T.mkNoSrcPos p (gsinh T.mkNoSrcPos p) fx))
        (T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !* p)
          (T.uap1 T.mkNoSrcPos p (gsin T.mkNoSrcPos p) fy)
          (T.uap1 T.mkNoSrcPos p (gcosh T.mkNoSrcPos p) fx))
    hsinh _ p = T.fatal p
    
  
  gcosh pcosh p =
    T.ufun1 a77v5v77v54cosh pcosh p hcosh
    where
    
    hcosh (T.R (fx :+ fy) _) p =
      T.con2 T.mkNoSrcPos p (:+) (+:+)
        (T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !* p)
          (T.uap1 T.mkNoSrcPos p (gcos T.mkNoSrcPos p) fy)
          (T.uap1 T.mkNoSrcPos p (gcosh T.mkNoSrcPos p) fx))
        (T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !* p)
          (T.uap1 T.mkNoSrcPos p (gsin T.mkNoSrcPos p) fy)
          (T.uap1 T.mkNoSrcPos p (gsinh T.mkNoSrcPos p) fx))
    hcosh _ p = T.fatal p
    
  
  gtanh ptanh p =
    T.ufun1 a78v5v82v42tanh ptanh p htanh
    where
    
    htanh (T.R (fx :+ fy) _) p =
      T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !/ p)
        (T.con2 T.mkNoSrcPos p (:+) (+:+)
          (T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !* p) (gcosy T.mkNoSrcPos p)
            (gsinhx T.mkNoSrcPos p))
          (T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !* p) (gsiny T.mkNoSrcPos p)
            (gcoshx T.mkNoSrcPos p)))
        (T.con2 T.mkNoSrcPos p (:+) (+:+)
          (T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !* p) (gcosy T.mkNoSrcPos p)
            (gcoshx T.mkNoSrcPos p))
          (T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !* p) (gsiny T.mkNoSrcPos p)
            (gsinhx T.mkNoSrcPos p)))
      where
      
      gsiny psiny p = T.uconstUse psiny p ssiny
      
      ssiny =
        T.uconstDef p a79v29v79v41siny
          (\ p -> T.uap1 T.mkNoSrcPos p (gsin T.mkNoSrcPos p) fy)
      
      gcosy pcosy p = T.uconstUse pcosy p scosy
      
      scosy =
        T.uconstDef p a80v29v80v41cosy
          (\ p -> T.uap1 T.mkNoSrcPos p (gcos T.mkNoSrcPos p) fy)
      
      gsinhx psinhx p = T.uconstUse psinhx p ssinhx
      
      ssinhx =
        T.uconstDef p a81v29v81v42sinhx
          (\ p -> T.uap1 T.mkNoSrcPos p (gsinh T.mkNoSrcPos p) fx)
      
      gcoshx pcoshx p = T.uconstUse pcoshx p scoshx
      
      scoshx =
        T.uconstDef p a82v29v82v42coshx
          (\ p -> T.uap1 T.mkNoSrcPos p (gcosh T.mkNoSrcPos p) fx)
      
    htanh _ p = T.fatal p
    
  
  gasin pasin p =
    T.ufun1 a84v5v85v70asin pasin p hasin
    where
    
    hasin (fz@(T.R (fx :+ fy) _)) p =
      T.con2 T.mkNoSrcPos p (:+) (+:+) (gy' T.mkNoSrcPos p)
        (T.uap1 T.mkNoSrcPos p (gnegate T.mkNoSrcPos p) (gx' T.mkNoSrcPos p))
      where
      
      gx' px' p = T.uconstUse px' p sx'
      
      gy' px' p = T.uconstUse px' p sy'
      
      j85v31v85v36x' =
        case
          T.uap1 T.mkNoSrcPos p (glog T.mkNoSrcPos p)
            (T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !+ p)
              (T.con2 T.mkNoSrcPos p (:+) (+:+)
                (T.uap1 T.mkNoSrcPos p (gnegate T.mkNoSrcPos p) fy) fx)
              (T.uap1 T.mkNoSrcPos p (gsqrt T.mkNoSrcPos p)
                (T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !- p)
                  (T.uap1 T.mkNoSrcPos p
                    (Hat.PreludeBasic.gfromInteger T.mkNoSrcPos p)
                    (T.conInteger T.mkNoSrcPos p 1))
                  (T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !* p) fz fz)))) of
          T.R (fx' :+ fy') kx' -> (kx',fx',fy')
          _ -> T.fatal p
      
      sx' =
        T.uconstDef p a85v31v85v32x'
          (\ _ -> case j85v31v85v36x' of (kx',fx',fy') -> fx')
      
      sy' =
        T.uconstDef p a85v35v85v36y'
          (\ _ -> case j85v31v85v36x' of (kx',fx',fy') -> fy')
      
    hasin _ p = T.fatal p
    
  
  gacos pacos p =
    T.ufun1 a86v5v88v54acos pacos p hacos
    where
    
    hacos (fz@(T.R (fx :+ fy) _)) p =
      T.con2 T.mkNoSrcPos p (:+) (+:+) (gy'' T.mkNoSrcPos p)
        (T.uap1 T.mkNoSrcPos p (gnegate T.mkNoSrcPos p) (gx'' T.mkNoSrcPos p))
      where
      
      gx'' px'' p = T.uconstUse px'' p sx''
      
      gy'' px'' p = T.uconstUse px'' p sy''
      
      j87v30v87v37x'' =
        case
          T.uap1 T.mkNoSrcPos p (glog T.mkNoSrcPos p)
            (T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !+ p) fz
              (T.con2 T.mkNoSrcPos p (:+) (+:+)
                (T.uap1 T.mkNoSrcPos p (gnegate T.mkNoSrcPos p)
                  (gy' T.mkNoSrcPos p)) (gx' T.mkNoSrcPos p))) of
          T.R (fx'' :+ fy'') kx'' -> (kx'',fx'',fy'')
          _ -> T.fatal p
      
      sx'' =
        T.uconstDef p a87v30v87v32x''
          (\ _ -> case j87v30v87v37x'' of (kx'',fx'',fy'') -> fx'')
      
      sy'' =
        T.uconstDef p a87v35v87v37y''
          (\ _ -> case j87v30v87v37x'' of (kx'',fx'',fy'') -> fy'')
      
      gx' px' p = T.uconstUse px' p sx'
      
      gy' px' p = T.uconstUse px' p sy'
      
      j88v30v88v35x' =
        case
          T.uap1 T.mkNoSrcPos p (gsqrt T.mkNoSrcPos p)
            (T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !- p)
              (T.uap1 T.mkNoSrcPos p
                (Hat.PreludeBasic.gfromInteger T.mkNoSrcPos p)
                (T.conInteger T.mkNoSrcPos p 1))
              (T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !* p) fz fz)) of
          T.R (fx' :+ fy') kx' -> (kx',fx',fy')
          _ -> T.fatal p
      
      sx' =
        T.uconstDef p a88v30v88v31x'
          (\ _ -> case j88v30v88v35x' of (kx',fx',fy') -> fx')
      
      sy' =
        T.uconstDef p a88v34v88v35y'
          (\ _ -> case j88v30v88v35x' of (kx',fx',fy') -> fy')
      
    hacos _ p = T.fatal p
    
  
  gatan patan p =
    T.ufun1 a89v5v90v68atan patan p hatan
    where
    
    hatan (fz@(T.R (fx :+ fy) _)) p =
      T.con2 T.mkNoSrcPos p (:+) (+:+) (gy' T.mkNoSrcPos p)
        (T.uap1 T.mkNoSrcPos p (gnegate T.mkNoSrcPos p) (gx' T.mkNoSrcPos p))
      where
      
      gx' px' p = T.uconstUse px' p sx'
      
      gy' px' p = T.uconstUse px' p sy'
      
      j90v30v90v35x' =
        case
          T.uap1 T.mkNoSrcPos p (glog T.mkNoSrcPos p)
            (T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !/ p)
              (T.con2 T.mkNoSrcPos p (:+) (+:+)
                (T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !- p)
                  (T.uap1 T.mkNoSrcPos p
                    (Hat.PreludeBasic.gfromInteger T.mkNoSrcPos p)
                    (T.conInteger T.mkNoSrcPos p 1)) fy) fx)
              (T.uap1 T.mkNoSrcPos p (gsqrt T.mkNoSrcPos p)
                (T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !+ p)
                  (T.uap1 T.mkNoSrcPos p
                    (Hat.PreludeBasic.gfromInteger T.mkNoSrcPos p)
                    (T.conInteger T.mkNoSrcPos p 1))
                  (T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !* p) fz fz)))) of
          T.R (fx' :+ fy') kx' -> (kx',fx',fy')
          _ -> T.fatal p
      
      sx' =
        T.uconstDef p a90v30v90v31x'
          (\ _ -> case j90v30v90v35x' of (kx',fx',fy') -> fx')
      
      sy' =
        T.uconstDef p a90v34v90v35y'
          (\ _ -> case j90v30v90v35x' of (kx',fx',fy') -> fy')
      
    hatan _ p = T.fatal p
    
  
  gasinh pasinh p =
    T.ufun1 a92v5v92v42asinh pasinh p hasinh
    where
    
    hasinh fz p =
      T.uap1 T.mkNoSrcPos p (glog T.mkNoSrcPos p)
        (T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !+ p) fz
          (T.uap1 T.mkNoSrcPos p (gsqrt T.mkNoSrcPos p)
            (T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !+ p)
              (T.uap1 T.mkNoSrcPos p
                (Hat.PreludeBasic.gfromInteger T.mkNoSrcPos p)
                (T.conInteger T.mkNoSrcPos p 1))
              (T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !* p) fz fz))))
    
  
  gacosh pacosh p =
    T.ufun1 a93v5v93v55acosh pacosh p hacosh
    where
    
    hacosh fz p =
      T.uap1 T.mkNoSrcPos p (glog T.mkNoSrcPos p)
        (T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !+ p) fz
          (T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !* p)
            (T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !+ p) fz
              (T.uap1 T.mkNoSrcPos p
                (Hat.PreludeBasic.gfromInteger T.mkNoSrcPos p)
                (T.conInteger T.mkNoSrcPos p 1)))
            (T.uap1 T.mkNoSrcPos p (gsqrt T.mkNoSrcPos p)
              (T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !/ p)
                (T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !- p) fz
                  (T.uap1 T.mkNoSrcPos p
                    (Hat.PreludeBasic.gfromInteger T.mkNoSrcPos p)
                    (T.conInteger T.mkNoSrcPos p 1)))
                (T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !+ p) fz
                  (T.uap1 T.mkNoSrcPos p
                    (Hat.PreludeBasic.gfromInteger T.mkNoSrcPos p)
                    (T.conInteger T.mkNoSrcPos p 1)))))))
    
  
  gatanh patanh p =
    T.ufun1 a94v5v94v46atanh patanh p hatanh
    where
    
    hatanh fz p =
      T.uap1 T.mkNoSrcPos p (glog T.mkNoSrcPos p)
        (T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !/ p)
          (T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !+ p)
            (T.uap1 T.mkNoSrcPos p
              (Hat.PreludeBasic.gfromInteger T.mkNoSrcPos p)
              (T.conInteger T.mkNoSrcPos p 1)) fz)
          (T.uap1 T.mkNoSrcPos p (gsqrt T.mkNoSrcPos p)
            (T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !- p)
              (T.uap1 T.mkNoSrcPos p
                (Hat.PreludeBasic.gfromInteger T.mkNoSrcPos p)
                (T.conInteger T.mkNoSrcPos p 1))
              (T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !* p) fz fz))))
    
  

tComplex = T.mkModule "Complex" "Complex.hs" Prelude.False

(+:+) = T.mkConstructor tComplex 60021 60022 24 2 ":+"

arealPart = T.mkVariable tComplex 100001 100021 3 1 "realPart" Prelude.False

aimagPart = T.mkVariable tComplex 110001 110021 3 1 "imagPart" Prelude.False

aconjugate = T.mkVariable tComplex 140001 140028 3 1 "conjugate" Prelude.False

amkPolar = T.mkVariable tComplex 170001 170050 3 2 "mkPolar" Prelude.False

acis = T.mkVariable tComplex 200001 200036 3 1 "cis" Prelude.False

apolar = T.mkVariable tComplex 230001 230034 3 1 "polar" Prelude.False

amagnitude = T.mkVariable tComplex 260001 290018 3 1 "magnitude" Prelude.False

aphase = T.mkVariable tComplex 320001 330026 3 1 "phase" Prelude.False

(++=%@=+=%>==) = T.mkVariable tComplex 60038 60039 3 2 "==" Prelude.False

a6v41v6v44readsPrec =
  T.mkVariable tComplex 60041 60044 3 1 "readsPrec" Prelude.False

a6v46v6v49showsPrec =
  T.mkVariable tComplex 60046 60049 3 2 "showsPrec" Prelude.False

(+%^=#$=%^=#$+) = T.mkVariable tComplex 370012 370012 26 2 "+" Prelude.False

(+%@=#$=%@=#$-) = T.mkVariable tComplex 380012 380012 26 2 "-" Prelude.False

(+%>=#$=%>=#$*) = T.mkVariable tComplex 390012 390012 30 2 "*" Prelude.False

a40v5v40v41negate =
  T.mkVariable tComplex 400005 400041 3 1 "negate" Prelude.False

a41v5v41v29abs = T.mkVariable tComplex 410005 410029 3 1 "abs" Prelude.False

a42v5v43v56signum =
  T.mkVariable tComplex 420005 430056 3 1 "signum" Prelude.False

a44v5v44v39fromInteger =
  T.mkVariable tComplex 440005 440039 3 1 "fromInteger" Prelude.False

(+&^=#!=&^=#!/) = T.mkVariable tComplex 470010 470010 30 2 "/" Prelude.False

a54v3v54v39fromRational =
  T.mkVariable tComplex 540003 540039 3 1 "fromRational" Prelude.False

a57v5v57v29pi = T.mkVariable tComplex 570005 570029 3 0 "pi" Prelude.False

a58v5v59v40exp = T.mkVariable tComplex 580005 590040 3 1 "exp" Prelude.False

a60v5v60v50log = T.mkVariable tComplex 600005 600050 3 1 "log" Prelude.False

a62v5v66v67sqrt = T.mkVariable tComplex 620005 660067 3 1 "sqrt" Prelude.False

a68v5v68v54sin = T.mkVariable tComplex 680005 680054 3 1 "sin" Prelude.False

a69v5v69v57cos = T.mkVariable tComplex 690005 690057 3 1 "cos" Prelude.False

a70v5v74v42tan = T.mkVariable tComplex 700005 740042 3 1 "tan" Prelude.False

a76v5v76v55sinh = T.mkVariable tComplex 760005 760055 3 1 "sinh" Prelude.False

a77v5v77v54cosh = T.mkVariable tComplex 770005 770054 3 1 "cosh" Prelude.False

a78v5v82v42tanh = T.mkVariable tComplex 780005 820042 3 1 "tanh" Prelude.False

a84v5v85v70asin = T.mkVariable tComplex 840005 850070 3 1 "asin" Prelude.False

a86v5v88v54acos = T.mkVariable tComplex 860005 880054 3 1 "acos" Prelude.False

a89v5v90v68atan = T.mkVariable tComplex 890005 900068 3 1 "atan" Prelude.False

a92v5v92v42asinh = T.mkVariable tComplex 920005 920042 3 1 "asinh" Prelude.False

a93v5v93v55acosh = T.mkVariable tComplex 930005 930055 3 1 "acosh" Prelude.False

a94v5v94v46atanh = T.mkVariable tComplex 940005 940046 3 1 "atanh" Prelude.False

a28v11v28v43k = T.mkVariable tComplex 280011 280043 3 0 "k" Prelude.True

a29v11v29v18mk = T.mkVariable tComplex 290011 290018 3 0 "mk" Prelude.True

a43v42v43v56r = T.mkVariable tComplex 430042 430056 3 0 "r" Prelude.True

a49v5v49v25x'' = T.mkVariable tComplex 490005 490025 3 0 "x''" Prelude.True

a50v5v50v25y'' = T.mkVariable tComplex 500005 500025 3 0 "y''" Prelude.True

a51v5v51v42k = T.mkVariable tComplex 510005 510042 3 0 "k" Prelude.True

a52v5v52v25d = T.mkVariable tComplex 520005 520025 3 0 "d" Prelude.True

a59v29v59v40expx = T.mkVariable tComplex 590029 590040 3 0 "expx" Prelude.True

a64v30v64v30u = T.mkVariable tComplex 640030 640030 3 0 "u" Prelude.True

a64v32v64v32v = T.mkVariable tComplex 640032 640032 3 0 "v" Prelude.True

a65v29v65v49v' = T.mkVariable tComplex 650029 650049 3 0 "v'" Prelude.True

a66v29v66v67u' = T.mkVariable tComplex 660029 660067 3 0 "u'" Prelude.True

a71v29v71v41sinx = T.mkVariable tComplex 710029 710041 3 0 "sinx" Prelude.True

a72v29v72v41cosx = T.mkVariable tComplex 720029 720041 3 0 "cosx" Prelude.True

a73v29v73v42sinhy = T.mkVariable tComplex 730029 730042 3 0 "sinhy" Prelude.True

a74v29v74v42coshy = T.mkVariable tComplex 740029 740042 3 0 "coshy" Prelude.True

a79v29v79v41siny = T.mkVariable tComplex 790029 790041 3 0 "siny" Prelude.True

a80v29v80v41cosy = T.mkVariable tComplex 800029 800041 3 0 "cosy" Prelude.True

a81v29v81v42sinhx = T.mkVariable tComplex 810029 810042 3 0 "sinhx" Prelude.True

a82v29v82v42coshx = T.mkVariable tComplex 820029 820042 3 0 "coshx" Prelude.True

a85v31v85v32x' = T.mkVariable tComplex 850031 850032 3 0 "x'" Prelude.True

a85v35v85v36y' = T.mkVariable tComplex 850035 850036 3 0 "y'" Prelude.True

a87v30v87v32x'' = T.mkVariable tComplex 870030 870032 3 0 "x''" Prelude.True

a87v35v87v37y'' = T.mkVariable tComplex 870035 870037 3 0 "y''" Prelude.True

a88v30v88v31x' = T.mkVariable tComplex 880030 880031 3 0 "x'" Prelude.True

a88v34v88v35y' = T.mkVariable tComplex 880034 880035 3 0 "y'" Prelude.True

a90v30v90v31x' = T.mkVariable tComplex 900030 900031 3 0 "x'" Prelude.True

a90v34v90v35y' = T.mkVariable tComplex 900034 900035 3 0 "y'" Prelude.True