Home My Page Projects Code Snippets Project Openings diderot
Summary Activity Tracker Tasks SCM

SCM Repository

[diderot] Diff of /branches/vis15/src/compiler/high-opt/normalize-ein.sml
ViewVC logotype

Diff of /branches/vis15/src/compiler/high-opt/normalize-ein.sml

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 3977, Wed Jun 15 19:06:30 2016 UTC revision 3978, Wed Jun 15 19:07:40 2016 UTC
# Line 73  Line 73 
73                | E.Value _          => err "Value used before expand"                | E.Value _          => err "Value used before expand"
74                | E.Img _            => err "Probe used before expand"                | E.Img _            => err "Probe used before expand"
75                | E.Krn _            => err "Krn used before expand"                | E.Krn _            => err "Krn used before expand"
76                  | E.Epsilon _        => return fld
77                  | E.Eps2 _           => return fld
78                  | E.Const _          => return fld
79                  | E.Delta _          => return fld
80                | E.Sum(sx1, e)      => return (E.Sum(sx1, E.Probe(e, x)))                | E.Sum(sx1, e)      => return (E.Sum(sx1, E.Probe(e, x)))
81                | E.Op1(op1, e)      => return (E.Op1(op1, E.Probe(e, x)))                | E.Op1(op1, e)      => return (E.Op1(op1, E.Probe(e, x)))
82                | E.Op2(op2, e1, e2) => return (E.Op2(op2, E.Probe(e1, x), E.Probe(e2, x)))                | E.Op2(op2, e1, e2) => return (E.Op2(op2, E.Probe(e1, x), E.Probe(e2, x)))
# Line 152  Line 156 
156                          else filterProd [rewrite e1, rewrite e2]                          else filterProd [rewrite e1, rewrite e2]
157                  (************* Product EPS **************)                  (************* Product EPS **************)
158                    | E.Opn(E.Prod, (eps1 as E.Epsilon(i,j,k))::ps) => (case ps                    | E.Opn(E.Prod, (eps1 as E.Epsilon(i,j,k))::ps) => (case ps
159                         of ((p1 as E.Apply(E.Partial d, e)) :: es) => (                          of ((p1 as E.Apply(E.Partial (d as (_::_::_)), e)) :: es) => (
160                              case (EpsUtil.matchEps (d, [i,j,k]), es)                              case (EpsUtil.matchEps ([i,j,k], d), es)
161                               of (true, _) => (ST.tick cntEpsElim; zero)                               of (true, _) => (ST.tick cntEpsElim; zero)
162                                | (_, []) => mkProd[eps1, rewrite p1]                                | (_, []) => mkProd[eps1, rewrite p1]
163                                | _ => filterProd [eps1, rewrite (mkProd (p1 :: es))]                                | _ => filterProd [eps1, rewrite (mkProd (p1 :: es))]
164                              (* end case *))                              (* end case *))
165                          | ((p1 as E.Conv(_, _, _, d)) :: es) => (                          | ((p1 as E.Conv(_, _, _, (d as (_::_::_)))) :: es) => (
166                              case (EpsUtil.matchEps (d, [i,j,k]), es)                              case (EpsUtil.matchEps ([i,j,k], d), es)
167                               of (true, _) => (ST.tick cntEpsElim; E.Lift zero)                               of (true, _) => (ST.tick cntEpsElim; E.Lift zero)
168                                | (_, []) => mkProd[eps1, p1]                                | (_, []) => mkProd[eps1, p1]
169                                | _ => (case rewrite (mkProd(p1 :: es))                                | _ => (case rewrite (mkProd(p1 :: es))

Legend:
Removed from v.3977  
changed lines
  Added in v.3978

root@smlnj-gforge.cs.uchicago.edu
ViewVC Help
Powered by ViewVC 1.0.0