libflame  revision_anchor
FLA_Apply_GT_2x2.h
Go to the documentation of this file.
1 /*
2 
3  Copyright (C) 2014, The University of Texas at Austin
4 
5  This file is part of libflame and is available under the 3-Clause
6  BSD license, which can be found in the LICENSE file at the top-level
7  directory, or at http://opensource.org/licenses/BSD-3-Clause
8 
9 */
10 
11 #define MAC_Apply_GT_2x2_ops( gamma, sigma, epsilon1, delta2, beta, epsilon2 ) \
12 { \
13  float g, s; \
14  float e1, d2, e2; \
15 \
16  g = *(gamma); \
17  s = *(sigma); \
18 \
19  e1 = *(epsilon1); \
20  d2 = *(delta2); \
21  e2 = *(epsilon2); \
22 \
23  *(epsilon1) = g * e1 + s * d2; \
24  *(delta2) = -s * e1 + g * d2; \
25 \
26  *(beta) = s * e2; \
27  *(epsilon2) = g * e2; \
28 }
29 
30 #define MAC_Apply_GT_2x2_opd( gamma, sigma, epsilon1, delta2, beta, epsilon2 ) \
31 { \
32  double g, s; \
33  double e1, d2, e2; \
34 \
35  g = *(gamma); \
36  s = *(sigma); \
37 \
38  e1 = *(epsilon1); \
39  d2 = *(delta2); \
40  e2 = *(epsilon2); \
41 \
42  *(epsilon1) = g * e1 + s * d2; \
43  *(delta2) = -s * e1 + g * d2; \
44 \
45  *(beta) = s * e2; \
46  *(epsilon2) = g * e2; \
47 }
48 
49 #define MAC_Apply_GT_2x1_ops( gamma, sigma, epsilon1, delta2 ) \
50 { \
51  float g, s; \
52  float e1, d2; \
53 \
54  g = *(gamma); \
55  s = *(sigma); \
56 \
57  e1 = *(epsilon1); \
58  d2 = *(delta2); \
59 \
60  *(epsilon1) = g * e1 + s * d2; \
61  *(delta2) = -s * e1 + g * d2; \
62 }
63 
64 #define MAC_Apply_GT_2x1_opd( gamma, sigma, epsilon1, delta2 ) \
65 { \
66  double g, s; \
67  double e1, d2; \
68 \
69  g = *(gamma); \
70  s = *(sigma); \
71 \
72  e1 = *(epsilon1); \
73  d2 = *(delta2); \
74 \
75  *(epsilon1) = g * e1 + s * d2; \
76  *(delta2) = -s * e1 + g * d2; \
77 }
78