blob: 89b2082732139673884a1a9105cc88b6365d0d96 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
|
{-# LANGUAGE DataKinds #-}
module Example where
import AST
import CHAD
bin :: SOp (TPair a b) c -> Ex env a -> Ex env b -> Ex env c
bin op a b = EOp ext op (EPair ext a b)
-- x y |- x * y + x
ex1 :: Ex [TScal TF32, TScal TF32] (TScal TF32)
ex1 =
bin (OAdd STF32)
(bin (OMul STF32)
(EVar ext (STScal STF32) (IS IZ))
(EVar ext (STScal STF32) IZ))
(EVar ext (STScal STF32) (IS IZ))
-- -- x y |- let z = x + y in z * (z + x)
-- ex2 :: Ex [TScal TF32, TScal TF32] (TScal TF32)
-- ex2 = _
|