hat-2.7.0.0: Hat/Complex.hs
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