From: Francis Russell Date: Thu, 1 Nov 2012 18:22:46 +0000 (+0000) Subject: Add analytic_to_psinc operator to second-level AST. X-Git-Url: https://git.unchartedbackwaters.co.uk/w/?a=commitdiff_plain;h=8874157746332f042450be719eeb6e9dfb41e715;p=francis%2Fofc.git Add analytic_to_psinc operator to second-level AST. --- diff --git a/OFC/SecondLevel.hs b/OFC/SecondLevel.hs index 3f28048..1c9a1a0 100644 --- a/OFC/SecondLevel.hs +++ b/OFC/SecondLevel.hs @@ -103,6 +103,7 @@ data Expression e where Integrate :: Expression PsincE -> Expression ScalarE AnalyticMomentum :: OperatorExpr (Complex Double) MomentumTerminal -> Expression PsincReciprocalE AnalyticPosition :: OperatorExpr Double PositionTerminal -> Expression PsincE + AnalyticToPsinc :: Expression PsincE -> Integer -> Expression PsincE Sum :: Expression e -> String -> Expression e Add :: Expression e -> Expression e -> Expression e Sub :: Expression e -> Expression e -> Expression e @@ -136,6 +137,7 @@ instance PrettyPrintable (Expression e) where Sub a b -> binaryToDoc "-" a b AnalyticPosition e -> text "position_operator" <> (parens $ toDoc e) AnalyticMomentum e -> text "momentum_operator" <> (parens $ toDoc e) + AnalyticToPsinc e i -> functionToDoc "analytic_to_psinc" [toDoc e, toDoc i] MulScalar a b -> binaryToDoc "*" a b DivScalar a b -> binaryToDoc "/" a b Power a b -> binaryToDoc "^" a b