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