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

SCM Repository

[diderot] Diff of /trunk/src/compiler/basis/basis.sml
ViewVC logotype

Diff of /trunk/src/compiler/basis/basis.sml

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

revision 67, Fri May 14 14:11:21 2010 UTC revision 68, Tue May 18 16:51:30 2010 UTC
# Line 41  Line 41 
41    
42      in      in
43    
44      val basis = [    (* overloaded operators *)
45          (* operators *)      val overloads = [
           (N.op_at, all([NK, NK, SK],  
             fn [k, d, dd] => let  
                 val k = Ty.NatVar k  
                 val d = Ty.NatVar d  
                 val dd = Ty.ShapeVar dd  
                 in  
                   [field(k, d, dd), tensor[d]] --> Ty.T_Tensor dd  
                 end)),  
46  (*  (*
47      val op_add = Atom.atom "+"      val op_add = Atom.atom "+"
48      val op_sub = Atom.atom "-"      val op_sub = Atom.atom "-"
# Line 63  Line 55 
55      val op_gte = Atom.atom ">="      val op_gte = Atom.atom ">="
56      val op_gt = Atom.atom ">"      val op_gt = Atom.atom ">"
57  *)  *)
58            ]
59    
60      (* non-overloaded operators, etc. *)
61        val basis = [
62            (* operators *)
63              (N.op_at, all([NK, NK, SK],
64                fn [k, d, dd] => let
65                    val k = Ty.NatVar k
66                    val d = Ty.NatVar d
67                    val dd = Ty.ShapeVar dd
68                    in
69                      [field(k, d, dd), tensor[d]] --> Ty.T_Tensor dd
70                    end)),
71            (N.op_at, all([NK, NK, SK],            (N.op_at, all([NK, NK, SK],
72              fn [k, d, dd] => let              fn [k, d, dd] => let
73                  val k = Ty.NatVar k                  val k = Ty.NatVar k
# Line 72  Line 77 
77                    [field(k, d, dd), tensor[d]]                    [field(k, d, dd), tensor[d]]
78                      --> field(Ty.NatExp(k, ~1), d, Ty.ShapeExt(dd, d))                      --> field(Ty.NatExp(k, ~1), d, Ty.ShapeExt(dd, d))
79                  end)),                  end)),
 (*  
     val op_orelse = Atom.atom "||"  
     val op_andalso = Atom.atom "&&"  
 *)  
80            (N.op_norm, all([SK],            (N.op_norm, all([SK],
81              fn [dd] => [Ty.T_Tensor(Ty.ShapeVar dd)] --> Ty.realTy)),              fn [dd] => [Ty.T_Tensor(Ty.ShapeVar dd)] --> Ty.realTy)),
82          (* functions *)          (* functions *)
# Line 92  Line 93 
93            (N.fn_cos,    ty([Ty.realTy] --> Ty.realTy)),            (N.fn_cos,    ty([Ty.realTy] --> Ty.realTy)),
94            (N.fn_dot,    allNK(fn tv => [tensor[Ty.NatVar tv]]            (N.fn_dot,    allNK(fn tv => [tensor[Ty.NatVar tv]]
95                            --> tensor[Ty.NatVar tv])),                            --> tensor[Ty.NatVar tv])),
96  (*            (N.fn_inside, all([NK, NK, SK],
97      val fn_inside = Atom.atom "inside"              fn [k, d, dd] => let
98  *)                  val k = Ty.NatVar k
99                    val d = Ty.NatVar d
100                    val dd = Ty.ShapeVar dd
101                    in
102                      [Ty.T_Tensor(Ty.Shape[d]), field(k, d, dd)]
103                        --> Ty.T_Bool
104                    end)),
105            (N.fn_load,   all([NK, SK],            (N.fn_load,   all([NK, SK],
106              fn [d, dd] => let              fn [d, dd] => let
107                  val d = Ty.NatVar d                  val d = Ty.NatVar d

Legend:
Removed from v.67  
changed lines
  Added in v.68

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