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

SCM Repository

[diderot] Diff of /branches/vis12/src/include/Diderot/inline-tensor3.h
ViewVC logotype

Diff of /branches/vis12/src/include/Diderot/inline-tensor3.h

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

revision 1804, Fri Apr 6 14:06:17 2012 UTC revision 1805, Fri Apr 6 15:50:59 2012 UTC
# Line 39  Line 39 
39  // vector times tensor contraction: [v dot T]_jk = v_i * T_ijk  // vector times tensor contraction: [v dot T]_jk = v_i * T_ijk
40  STATIC_INLINE void mulVec2Ten2x2x2 (Diderot_Mat2x2_t dst, Diderot_vec2_t v, Diderot_Ten2x2x2_t T)  STATIC_INLINE void mulVec2Ten2x2x2 (Diderot_Mat2x2_t dst, Diderot_vec2_t v, Diderot_Ten2x2x2_t T)
41  {  {
42        Diderot_union2_t u;
43        u.v = v;
44        dst[0].r[0] = u.r[0] * T[0][0].r[0] + u.r[1] * T[1][0].r[0];
45        dst[0].r[1] = u.r[0] * T[0][0].r[1] + u.r[1] * T[1][0].r[1];
46        dst[1].r[0] = u.r[0] * T[0][1].r[0] + u.r[1] * T[1][1].r[0];
47        dst[1].r[1] = u.r[0] * T[0][1].r[1] + u.r[1] * T[1][1].r[1];
48  }  }
49    
50  // tensor times vector contraction: [T dot v]_ij = T_ijk * v_k  // tensor times vector contraction: [T dot v]_ij = T_ijk * v_k
# Line 67  Line 73 
73  // vector times tensor contraction  // vector times tensor contraction
74  STATIC_INLINE void mulVec3Ten3x3x3 (Diderot_Mat3x3_t dst, Diderot_vec3_t v, Diderot_Ten3x3x3_t T)  STATIC_INLINE void mulVec3Ten3x3x3 (Diderot_Mat3x3_t dst, Diderot_vec3_t v, Diderot_Ten3x3x3_t T)
75  {  {
76        Diderot_union3_t u;
77        u.v = v;
78        dst[0].r[0] = u.r[0] * T[0][0].r[0] + u.r[1] * T[1][0].r[0] + u.r[2] * T[2][0].r[0];
79        dst[0].r[1] = u.r[0] * T[0][0].r[1] + u.r[1] * T[1][0].r[1] + u.r[2] * T[2][0].r[1];
80        dst[0].r[2] = u.r[0] * T[0][0].r[2] + u.r[1] * T[1][0].r[2] + u.r[2] * T[2][0].r[2];
81        dst[1].r[0] = u.r[0] * T[0][1].r[0] + u.r[1] * T[1][1].r[0] + u.r[2] * T[2][1].r[0];
82        dst[1].r[1] = u.r[0] * T[0][1].r[1] + u.r[1] * T[1][1].r[1] + u.r[2] * T[2][1].r[1];
83        dst[1].r[2] = u.r[0] * T[0][1].r[2] + u.r[1] * T[1][1].r[2] + u.r[2] * T[2][1].r[2];
84        dst[2].r[0] = u.r[0] * T[0][2].r[0] + u.r[1] * T[1][2].r[0] + u.r[2] * T[2][2].r[0];
85        dst[2].r[1] = u.r[0] * T[0][2].r[1] + u.r[1] * T[1][2].r[1] + u.r[2] * T[2][2].r[1];
86        dst[2].r[2] = u.r[0] * T[0][2].r[2] + u.r[1] * T[1][2].r[2] + u.r[2] * T[2][2].r[2];
87  }  }
88    
89  // tensor times vector contraction  // tensor times vector contraction
# Line 93  Line 110 
110  // vector times tensor contraction  // vector times tensor contraction
111  STATIC_INLINE void mulVec4Ten4x4x4 (Diderot_Mat4x4_t dst, Diderot_vec4_t v, Diderot_Ten4x4x4_t T)  STATIC_INLINE void mulVec4Ten4x4x4 (Diderot_Mat4x4_t dst, Diderot_vec4_t v, Diderot_Ten4x4x4_t T)
112  {  {
113        Diderot_union4_t u;
114        u.v = v;
115        dst[0].r[0] = u.r[0] * T[0][0].r[0] + u.r[1] * T[1][0].r[0] + u.r[2] * T[2][0].r[0] + u.r[3] * T[3][0].r[0];
116        dst[0].r[1] = u.r[0] * T[0][0].r[1] + u.r[1] * T[1][0].r[1] + u.r[2] * T[2][0].r[1] + u.r[3] * T[3][0].r[1];
117        dst[0].r[2] = u.r[0] * T[0][0].r[2] + u.r[1] * T[1][0].r[2] + u.r[2] * T[2][0].r[2] + u.r[3] * T[3][0].r[2];
118        dst[0].r[3] = u.r[0] * T[0][0].r[3] + u.r[1] * T[1][0].r[3] + u.r[2] * T[2][0].r[3] + u.r[3] * T[3][0].r[3];
119        dst[1].r[0] = u.r[0] * T[0][1].r[0] + u.r[1] * T[1][1].r[0] + u.r[2] * T[2][1].r[0] + u.r[3] * T[3][1].r[0];
120        dst[1].r[1] = u.r[0] * T[0][1].r[1] + u.r[1] * T[1][1].r[1] + u.r[2] * T[2][1].r[1] + u.r[3] * T[3][1].r[1];
121        dst[1].r[2] = u.r[0] * T[0][1].r[2] + u.r[1] * T[1][1].r[2] + u.r[2] * T[2][1].r[2] + u.r[3] * T[3][1].r[2];
122        dst[1].r[3] = u.r[0] * T[0][1].r[3] + u.r[1] * T[1][1].r[3] + u.r[2] * T[2][1].r[3] + u.r[3] * T[3][1].r[3];
123        dst[2].r[0] = u.r[0] * T[0][2].r[0] + u.r[1] * T[1][2].r[0] + u.r[2] * T[2][2].r[0] + u.r[3] * T[3][2].r[0];
124        dst[2].r[1] = u.r[0] * T[0][2].r[1] + u.r[1] * T[1][2].r[1] + u.r[2] * T[2][2].r[1] + u.r[3] * T[3][2].r[1];
125        dst[2].r[2] = u.r[0] * T[0][2].r[2] + u.r[1] * T[1][2].r[2] + u.r[2] * T[2][2].r[2] + u.r[3] * T[3][2].r[2];
126        dst[2].r[3] = u.r[0] * T[0][2].r[3] + u.r[1] * T[1][2].r[3] + u.r[2] * T[2][2].r[3] + u.r[3] * T[3][2].r[3];
127        dst[3].r[0] = u.r[0] * T[0][3].r[0] + u.r[1] * T[1][3].r[0] + u.r[2] * T[2][3].r[0] + u.r[3] * T[3][3].r[0];
128        dst[3].r[1] = u.r[0] * T[0][3].r[1] + u.r[1] * T[1][3].r[1] + u.r[2] * T[2][3].r[1] + u.r[3] * T[3][3].r[1];
129        dst[3].r[2] = u.r[0] * T[0][3].r[2] + u.r[1] * T[1][3].r[2] + u.r[2] * T[2][3].r[2] + u.r[3] * T[3][3].r[2];
130        dst[3].r[3] = u.r[0] * T[0][3].r[3] + u.r[1] * T[1][3].r[3] + u.r[2] * T[2][3].r[3] + u.r[3] * T[3][3].r[3];
131  }  }
132    
133  // tensor times vector contraction  // tensor times vector contraction

Legend:
Removed from v.1804  
changed lines
  Added in v.1805

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