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

# SCM Repository

[diderot] Diff of /branches/chiw17/src/compiler/basis/basis-vars.sml
 [diderot] / branches / chiw17 / src / compiler / basis / basis-vars.sml

# Diff of /branches/chiw17/src/compiler/basis/basis-vars.sml

revision 5029, Tue Jul 11 22:38:23 2017 UTC revision 5030, Tue Jul 11 22:53:10 2017 UTC
# Line 39  Line 39
39                ([Ty.DIM tv], mkTy tv)                ([Ty.DIM tv], mkTy tv)
40              end              end
41
42        fun poly (k, d, dd) = Ty.T_Poly{diff=k, dim=d, shape=dd}        fun poly (k, d, dd) = Ty.T_OField{diff=k, dim=d, shape=dd}
43        fun poly' (k, d, dd) = poly(k, Ty.DimConst d, Ty.Shape(List.map Ty.DimConst dd))        fun poly' (k, d, dd) = poly(k, Ty.DimConst d, Ty.Shape(List.map Ty.DimConst dd))
44
45        fun field (k, d, dd) = Ty.T_Field{diff=k, dim=d, shape=dd}        fun field (k, d, dd) = Ty.T_Field{diff=k, dim=d, shape=dd}
# Line 1074  Line 1074
1074              val t1 = Ty.T_Tensor(Ty.ShapeVar dd0)              val t1 = Ty.T_Tensor(Ty.ShapeVar dd0)
1075              val t2 = Ty.T_Tensor(Ty.ShapeVar dd1)              val t2 = Ty.T_Tensor(Ty.ShapeVar dd1)
1076              (*  val t1 = Ty.T_Tensor(Ty.Shape[Ty.DimVar d])              (*  val t1 = Ty.T_Tensor(Ty.Shape[Ty.DimVar d])
1077                  val f1 = Ty.T_Poly{diff = Ty.DiffConst k, dim = Ty.DimVar d, shape = Ty.ShapeVar dd2}                  val f1 = Ty.T_OField{diff = Ty.DiffConst k, dim = Ty.DimVar d, shape = Ty.ShapeVar dd2}
1078              *)              *)
1079              val f1 = Ty.T_Poly{diff = k0, dim = Ty.DimVar d, shape = Ty.ShapeVar dd2}              val f1 = Ty.T_OField{diff = k0, dim = Ty.DimVar d, shape = Ty.ShapeVar dd2}
1080          in          in
1081              [t1, t2] --> f1              [t1, t2] --> f1
1082          end          end
# Line 1089  Line 1089
1089  val k0 = Ty.DiffVar(k, 0)  val k0 = Ty.DiffVar(k, 0)
1090  val t1 = Ty.T_Tensor(Ty.Shape[Ty.DimVar d])  val t1 = Ty.T_Tensor(Ty.Shape[Ty.DimVar d])
1091  val t2 = Ty.T_Tensor(Ty.ShapeVar dd1)  val t2 = Ty.T_Tensor(Ty.ShapeVar dd1)
1092  (* val f1 = Ty.T_Poly{diff = Ty.DiffConst k, dim = Ty.DimVar d, shape = Ty.ShapeVar dd2}*)  (* val f1 = Ty.T_OField{diff = Ty.DiffConst k, dim = Ty.DimVar d, shape = Ty.ShapeVar dd2}*)
1093  val f1 = Ty.T_Poly{diff = k0, dim = Ty.DimVar d, shape = Ty.ShapeVar dd2}  val f1 = Ty.T_OField{diff = k0, dim = Ty.DimVar d, shape = Ty.ShapeVar dd2}
1094  in  in
1095  [t1, t2] --> f1  [t1, t2] --> f1
1096  end  end
# Line 1103  Line 1103
1103              val d = Ty.DimVar d              val d = Ty.DimVar d
1104              val d2 = Ty.ShapeVar dd2              val d2 = Ty.ShapeVar dd2
1105              val d1 = Ty.ShapeVar dd1              val d1 = Ty.ShapeVar dd1
1106              val f =  Ty.T_Poly{diff=k, dim=d, shape=d2}              val f =  Ty.T_OField{diff=k, dim=d, shape=d2}
1107          in          in
1108              [f, Ty.T_Tensor d1] --> Ty.T_Tensor d2              [f, Ty.T_Tensor d1] --> Ty.T_Tensor d2
1109          end))          end))
# Line 1131  Line 1131
1131  end))  end))
1132
1133
1134    (* fem () *)
1135    val fn_fem = polyVar (N.fn_fem, all([DK, NK, SK],
1136    fn [Ty.DIFF k, Ty.DIM d, Ty.SHAPE dd] => let
1137    val k = Ty.DiffVar(k, 0)
1138    val d = Ty.DimVar d
1139    val dd = Ty.ShapeVar dd
1140    val f = poly(k, d, dd)
1141    in
1142    [tensor[]] --> f
1143    end))
1144
1145
1146      end (* local *)      end (* local *)
1147
1148    end    end

Legend:
 Removed from v.5029 changed lines Added in v.5030

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