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

SCM Repository

[diderot] Diff of /branches/vis15/src/compiler/ein/mk-operators.sml
ViewVC logotype

Diff of /branches/vis15/src/compiler/ein/mk-operators.sml

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

revision 3498, Sat Dec 12 20:00:25 2015 UTC revision 3512, Fri Dec 18 18:52:06 2015 UTC
# Line 305  Line 305 
305              E.EIN{              E.EIN{
306                  params = [E.FLD dim, E.FLD dim],                  params = [E.FLD dim, E.FLD dim],
307                  index = shape,                  index = shape,
308                  body = E.Opn(E.Prod, [E.Field(0, expindex), E.Op2(E.Div, E.B(E.Const 1), E.Field(1, []))])                  body = E.Opn(E.Prod, [E.Field(0, expindex), E.Op2(E.Div, E.Const 1, E.Field(1, []))])
309                }                }
310            end            end
311    
# Line 337  Line 337 
337               params = [E.TEN(subst_flag, [2]), E.TEN(subst_flag, [2])],               params = [E.TEN(subst_flag, [2]), E.TEN(subst_flag, [2])],
338               index = [],               index = [],
339               body = E.Sum([(E. V 0, 0, 1), (E.V 1, 0, 1)],               body = E.Sum([(E. V 0, 0, 1), (E.V 1, 0, 1)],
340               E.Opn(E.Prod, [E.G(E.Eps2(0, 1)), E.Tensor(0, [E.V 0]), E.Tensor(1, [E.V 1])]))               E.Opn(E.Prod, [E.Eps2(0, 1), E.Tensor(0, [E.V 0]), E.Tensor(1, [E.V 1])]))
341            }            }
342    
343    (* crossProduct is on 3D vectors ..vec3 t8=t0 × t1; *)    (* crossProduct is on 3D vectors ..vec3 t8=t0 × t1; *)
# Line 346  Line 346 
346               index = [3],               index = [3],
347               body = E.Sum([(E.V 1, 0, 2), (E.V 2, 0, 2)],               body = E.Sum([(E.V 1, 0, 2), (E.V 2, 0, 2)],
348                  E.Opn(E.Prod, [                  E.Opn(E.Prod, [
349                      E.G(E.Epsilon(0, 1, 2)),                      E.Epsilon(0, 1, 2),
350                      E.Tensor(0, [E.V 1]),                      E.Tensor(0, [E.V 1]),
351                      E.Tensor(1, [E.V 2])                      E.Tensor(1, [E.V 2])
352                    ]))                    ]))
# Line 356  Line 356 
356      val cross2FF = E.EIN{      val cross2FF = E.EIN{
357              params = [E.FLD(2), E.FLD(2)], index = [],              params = [E.FLD(2), E.FLD(2)], index = [],
358              body = E.Sum([(E.V 0, 0, 1), (E.V 1, 0, 1)],              body = E.Sum([(E.V 0, 0, 1), (E.V 1, 0, 1)],
359                  E.Opn(E.Prod, [E.G(E.Eps2(0, 1)), E.Field(0, [E.V 0]), E.Field(1, [E.V 1])]))                  E.Opn(E.Prod, [E.Eps2(0, 1), E.Field(0, [E.V 0]), E.Field(1, [E.V 1])]))
360            }            }
361    
362    (* Field Cross Product *)    (* Field Cross Product *)
363      val cross3FF = E.EIN{      val cross3FF = E.EIN{
364              params = [E.FLD(3), E.FLD(3)],index= [3],              params = [E.FLD(3), E.FLD(3)],index= [3],
365              body = E.Sum([(E.V 1, 0, 2), (E.V 2, 0, 2)],              body = E.Sum([(E.V 1, 0, 2), (E.V 2, 0, 2)],
366                  E.Opn(E.Prod, [E.G(E.Epsilon(0, 1, 2)),                  E.Opn(E.Prod, [E.Epsilon(0, 1, 2),
367                  E.Field(0, [E.V 1]), E.Field(1, [E.V 2])]))                  E.Field(0, [E.V 1]), E.Field(1, [E.V 2])]))
368            }            }
369    
# Line 601  Line 601 
601                  params = [E.TEN(subst_flag, alpha), E.TEN(subst_flag, alpha)],                  params = [E.TEN(subst_flag, alpha), E.TEN(subst_flag, alpha)],
602                  index = alpha,                  index = alpha,
603                  body = E.Opn(E.Prod, [                  body = E.Opn(E.Prod, [
604                      f, E.Op2(E.Div, E.B(E.Const 1), E.Op1(E.Sqrt, E.Sum(sx, E.Opn(E.Prod, [g, g]))))                      f, E.Op2(E.Div, E.Const 1, E.Op1(E.Sqrt, E.Sum(sx, E.Opn(E.Prod, [g, g]))))
605                    ])                    ])
606                }                }
607            end            end
# Line 618  Line 618 
618                  params = [E.FLD dim, E.FLD dim],                  params = [E.FLD dim, E.FLD dim],
619                  index = [dim],                  index = [dim],
620                  body = E.Opn(E.Prod, [                  body = E.Opn(E.Prod, [
621                      f, E.Op2(E.Div, E.B(E.Const 1), E.Op1(E.Sqrt, E.Sum(sx, E.Opn(E.Prod, [g, g]))))                      f, E.Op2(E.Div, E.Const 1, E.Op1(E.Sqrt, E.Sum(sx, E.Opn(E.Prod, [g, g]))))
622                    ])                    ])
623                }                }
624            end            end
# Line 729  Line 729 
729              index = [],              index = [],
730              body = E.Sum([(E.V 0, 0, 2), (E.V 1, 0, 2), (E.V 2, 0, 2)],              body = E.Sum([(E.V 0, 0, 2), (E.V 1, 0, 2), (E.V 2, 0, 2)],
731                E.Opn(E.Prod, [                E.Opn(E.Prod, [
732                    E.G(E.Epsilon(0, 1, 2)),                    E.Epsilon(0, 1, 2),
733                    E.Field(0, [E.C 0, E. V 0]),                    E.Field(0, [E.C 0, E. V 0]),
734                    E.Field(0, [E.C 1, E. V 1]),                    E.Field(0, [E.C 1, E. V 1]),
735                    E.Field(0, [E.C 2, E. V 2])                    E.Field(0, [E.C 2, E. V 2])
# Line 746  Line 746 
746                      E.Opn(E.Prod, [                      E.Opn(E.Prod, [
747                          E.Field(0, [E.C 1, E. V 1]),                          E.Field(0, [E.C 1, E. V 1]),
748                          E.Sum([(E.V 2, 0, 2)],                          E.Sum([(E.V 2, 0, 2)],
749                            E.Opn(E.Prod, [E.G(E.Epsilon(0, 1, 2)), E.Field(0, [E.C 2, E. V 2])]))                            E.Opn(E.Prod, [E.Epsilon(0, 1, 2), E.Field(0, [E.C 2, E. V 2])]))
750                        ]))                        ]))
751                  ]))                  ]))
752            }            }
# Line 796  Line 796 
796            }            }
797    
798      fun identity dim = E.EIN{      fun identity dim = E.EIN{
799              params = [], index = [dim, dim], body = E.G(E.Delta(E.V(0), E.V(1)))              params = [], index = [dim, dim], body = E.Delta(E.V(0), E.V(1))
800            }            }
801    
802      fun zeros shape = E.EIN{      fun zeros shape = E.EIN{
803              params = [], index = shape, body = E.B(E.Const 0)              params = [], index = shape, body = E.Const 0
804            }            }
805    
806  (* QUESTION: why do we need the const list?  The indices are implicit in the position of  (* QUESTION: why do we need the const list?  The indices are implicit in the position of
# Line 851  Line 851 
851              index = [],              index = [],
852              body = E.Sum([(E.V 0, 0, 1), (E.V 1, 0, 1)],              body = E.Sum([(E.V 0, 0, 1), (E.V 1, 0, 1)],
853                E.Opn(E.Prod, [                E.Opn(E.Prod, [
854                    E.G(E.Eps2(0, 1)),                    E.Eps2(0, 1),
855                    E.Apply(E.Partial[E.V 0], E.Field(0, [E.V 1]))                    E.Apply(E.Partial[E.V 0], E.Field(0, [E.V 1]))
856                  ]))                  ]))
857            }            }
# Line 861  Line 861 
861              index = [3],              index = [3],
862              body = E.Sum([(E.V 1, 0, 2), (E.V 2, 0, 2)],              body = E.Sum([(E.V 1, 0, 2), (E.V 2, 0, 2)],
863                E.Opn(E.Prod, [                E.Opn(E.Prod, [
864                    E.G(E.Epsilon(0, 1, 2)),                    E.Epsilon(0, 1, 2),
865                    E.Apply(E.Partial[E.V 1], E.Field(0, [E.V 2]))                    E.Apply(E.Partial[E.V 1], E.Field(0, [E.V 2]))
866                  ]))                  ]))
867            }            }

Legend:
Removed from v.3498  
changed lines
  Added in v.3512

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