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

SCM Repository

[diderot] Diff of /branches/vis15/src/compiler/mid-to-low/ein-to-scalar.sml
ViewVC logotype

Diff of /branches/vis15/src/compiler/mid-to-low/ein-to-scalar.sml

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

revision 3742, Mon Apr 11 04:53:02 2016 UTC revision 3745, Tue Apr 12 10:40:01 2016 UTC
# Line 42  Line 42 
42            fun gen (mapp, body) = let            fun gen (mapp, body) = let
43                (*********sumexpression ********)                (*********sumexpression ********)
44                  fun tb n =  List.tabulate (n, fn e => e)                  fun tb n =  List.tabulate (n, fn e => e)
45                  fun sumCheck (mappOrig, (E.V v, lb, ub) :: sumx, e) = let                  fun sumCheck (mapp, (E.V v, lb, ub) :: sumx, e) = let
46                        fun sumloop mapp = gen (mapp, e)                        fun sumloop mapp = gen (mapp, e)
47                        fun sumI1 (left, (v, [i], lb1), [], rest) = let                        fun sumI1 (left, (v, [i], lb1), [], rest) = let
48                  (*val _ = print (concat["\ninsert: last item overll", Int.toString v, " to ",Int.toString (lb1+i)]) *)                  (*val _ = print (concat["\ninsert: last item overll", Int.toString v, " to ",Int.toString (lb1+i)]) *)
# Line 58  Line 58 
58                              in                              in
59                                sumI1 (mapp, (v, es, lb1), [], rest@[vD])                                sumI1 (mapp, (v, es, lb1), [], rest@[vD])
60                              end                              end
61                          | sumI1 (left, (v, [i], lb1), (E.V a, lb2, ub2) ::sx, rest) = let                          | sumI1 (left, (v, [i], lb1), (E.V a, lb2, ub2) ::sx, rest) =
                     (* val _ = print( concat["\n insert- last item in list for item ", Int.toString v, " to ",Int.toString( i+lb1)])*)  
                     in  
62                          sumI1 (IMap.insert (left, v, lb1+i), (a, tb (ub2-lb2+1), lb2), sx, rest)                          sumI1 (IMap.insert (left, v, lb1+i), (a, tb (ub2-lb2+1), lb2), sx, rest)
                     end  
63                          | sumI1 (left, (v, s::es, lb1), (E.V a, lb2, ub2) ::sx, rest) = let                          | sumI1 (left, (v, s::es, lb1), (E.V a, lb2, ub2) ::sx, rest) = let
64                      (*val _ = print( concat["\ninsertd ", Int.toString v, " to ",Int.toString (s+lb1)])*)                      (*val _ = print( concat["\ninsertd ", Int.toString v, " to ",Int.toString (s+lb1)])*)
65                              val mapp = IMap.insert (left, v, s+lb1)                              val mapp = IMap.insert (left, v, s+lb1)
# Line 74  Line 71 
71                              end                              end
72                          | sumI1 _ = raise Fail "None Variable-index in summation"                          | sumI1 _ = raise Fail "None Variable-index in summation"
73                        in                        in
74                  sumI1 (mappOrig, (v, tb (ub-lb+1), lb), sumx, [])                          sumI1 (mapp, (v, tb (ub-lb+1), lb), sumx, [])
75                        end                        end
76                  in                  in
77                    case body                    case body
# Line 117  Line 114 
114                          FieldToLow.expand {                          FieldToLow.expand {
115                              avail = avail, mapp = mapp,                              avail = avail, mapp = mapp,
116                              sx = sx, prod = prod,                              sx = sx, prod = prod,
117                              lowArgs = lowArgs                              args = lowArgs
118                            }                            }
119                      | E.Sum(sumx, e) =>                      | E.Sum(sumx, e) =>
120                          Mk.reduce (avail, Mk.realAdd, sumCheck (mapp, sumx, e))                          Mk.reduce (avail, Mk.realAdd, sumCheck (mapp, sumx, e))

Legend:
Removed from v.3742  
changed lines
  Added in v.3745

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