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

SCM Repository

[diderot] Diff of /branches/ein16/src/compiler/basis/basis-vars.sml
ViewVC logotype

Diff of /branches/ein16/src/compiler/basis/basis-vars.sml

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

revision 4235, Tue Jul 19 22:26:44 2016 UTC revision 4236, Wed Jul 20 03:02:00 2016 UTC
# Line 793  Line 793 
793                  [f] --> h                  [f] --> h
794                end))                end))
795    
796        (* generalized dimension *)
797        val fn_trace_fd = polyVar (N.fn_trace, all([DK,NK, NK,SK],
798            fn [Ty.DIFF k, Ty.DIM d1, Ty.DIM d2, Ty.SHAPE shape] => let
799            val k' = Ty.DiffVar(k, 0)
800            val dim = Ty.DimVar d1
801            val dd2 = Ty.DimVar d2
802            val dshape = Ty.ShapeVar shape
803            val f = field(k', dim, Ty.ShapeExt(Ty.ShapeExt(dshape, dd2), dd2))
804            val h = field(k', dim, dshape)
805            in
806            [f] --> h
807            end))
808    
809    
810      val fn_transpose_t = polyVar (N.fn_transpose, all([NK, NK],      val fn_transpose_t = polyVar (N.fn_transpose, all([NK, NK],
811            fn [Ty.DIM d1, Ty.DIM d2] =>            fn [Ty.DIM d1, Ty.DIM d2] =>
812                [tensor[Ty.DimVar d1, Ty.DimVar d2]] --> tensor[Ty.DimVar d2, Ty.DimVar d1]))                [tensor[Ty.DimVar d1, Ty.DimVar d2]] --> tensor[Ty.DimVar d2, Ty.DimVar d1]))
# Line 833  Line 847 
847              val fn_det_t3 = monoVar (N.fn_det, detT3)              val fn_det_t3 = monoVar (N.fn_det, detT3)
848          end          end
849    
850          val fn_det_f2  = polyVar (N.fn_det, all([DK],          (* generalized dimension *)
851              fn [Ty.DIFF k] => let          val fn_det_f2  = polyVar (N.fn_det, all([DK, NK],
852                  fun field' (k, d, dd) = field(k, Ty.DimConst d, Ty.Shape(List.map Ty.DimConst dd))              fn [Ty.DIFF k, Ty.DIM dim] => let
853                    fun field' (k, d, dd) = field(k,  Ty.DimVar  d, Ty.Shape(List.map Ty.DimConst dd))
854                  val k0 = Ty.DiffVar(k, 0)                  val k0 = Ty.DiffVar(k, 0)
855                  val f = field' (k0, 2, [2,2])                  val f = field' (k0, dim, [2,2])
856                  val s = field' (k0, 2, [])                  val s = field' (k0, dim, [])
857                  in                  in
858                      [f] --> s                      [f] --> s
859                  end))                  end))
860    
861          val fn_det_f3  = polyVar (N.fn_det, all([DK],          val fn_det_f3  = polyVar (N.fn_det, all([DK,NK],
862              fn [Ty.DIFF k] => let              fn [Ty.DIFF k, Ty.DIM dim] => let
863                  fun field' (k, d, dd) = field(k, Ty.DimConst d, Ty.Shape(List.map Ty.DimConst dd))                  fun field' (k, d, dd) = field(k, Ty.DimVar  d, Ty.Shape(List.map Ty.DimConst dd))
864                  val k0 = Ty.DiffVar(k, 0)                  val k0 = Ty.DiffVar(k, 0)
865                  val f = field' (k0, 3, [3,3])                  val f = field' (k0, dim, [3,3])
866                  val s = field' (k0, 3, [])                  val s = field' (k0, dim, [])
867                  in                  in
868                      [f] --> s                      [f] --> s
869                  end))                  end))

Legend:
Removed from v.4235  
changed lines
  Added in v.4236

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