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

SCM Repository

[diderot] Annotation of /branches/pure-cfg/src/include/Diderot/inline-matrix.h
ViewVC logotype

Annotation of /branches/pure-cfg/src/include/Diderot/inline-matrix.h

Parent Directory Parent Directory | Revision Log Revision Log


Revision 727 - (view) (download) (as text)

1 : jhr 727 /*! \file inline-matrix.h
2 :     *
3 :     * \author John Reppy
4 :     */
5 :    
6 :     /*
7 :     * COPYRIGHT (c) 2011 The Diderot Project (http://diderot-language.cs.uchicago.edu)
8 :     * All rights reserved.
9 :     */
10 :    
11 :     #ifndef _DIDEROT_INLINE_MATRIX_H_
12 :     #define _DIDEROT_INLINE_MATRIX_H_
13 :    
14 :     #ifndef _DIDEROT_TYPES_H_
15 :     #include "types.h"
16 :     #endif
17 :     #ifndef _DIDEROT_INLINE_VEC2_H_
18 :     # include "inline-vec2.h"
19 :     #endif
20 :     #ifndef _DIDEROT_INLINE_VEC3_H_
21 :     # include "inline-vec3.h"
22 :     #endif
23 :     #ifndef _DIDEROT_INLINE_VEC4_H_
24 :     # include "inline-vec4.h"
25 :     #endif
26 :    
27 :    
28 :     /********** 2x2 matrix functions **********/
29 :    
30 :     STATIC_INLINE float trace2x2f (Diderot_Mat2x2_t m)
31 :     {
32 :     return m[0].r[0] + m[1].r[1];
33 :     }
34 :    
35 :     // The Frobenius norm of a matrix is the sum of the squares of the elements
36 :     STATIC_INLINE float norm2x2f (Diderot_Mat2x2_t m)
37 :     {
38 :     return dot2f(m[0].v,m[0].v) + dot2f(m[1].v,m[1].v);
39 :     }
40 :    
41 :    
42 :     /********** 3x3 matrix functions **********/
43 :    
44 :     STATIC_INLINE float trace3x3f (Diderot_Mat3x3_t m)
45 :     {
46 :     return m[0].r[0] + m[1].r[1] + m[2].r[2];
47 :     }
48 :    
49 :     // The Frobenius norm of a matrix is the sum of the squares of the elements
50 :     STATIC_INLINE float norm3x3f (Diderot_Mat3x3_t m)
51 :     {
52 :     return dot3f(m[0].v,m[0].v) + dot3f(m[1].v,m[1].v) + dot3f(m[2].v,m[2].v);
53 :     }
54 :    
55 :    
56 :     /********** 4x4 matrix functions **********/
57 :    
58 :     STATIC_INLINE float trace4x4f (Diderot_Mat4x4_t m)
59 :     {
60 :     return m[0].r[0] + m[1].r[1] + m[2].r[2] + m[3].r[3];
61 :     }
62 :    
63 :     // The Frobenius norm of a matrix is the sum of the squares of the elements
64 :     STATIC_INLINE float norm4x4f (Diderot_Mat4x4_t m)
65 :     {
66 :     return dot4f(m[0].v,m[0].v) + dot4f(m[1].v,m[1].v) + dot4f(m[2].v,m[2].v) + dot4f(m[3].v,m[3].v);
67 :     }
68 :    
69 :     #endif /* !_DIDEROT_INLINE_MATRIX_H_ */

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