libflame  revision_anchor
FLA_Apply_GT_2x2.h
Go to the documentation of this file.
00001 /*
00002 
00003     Copyright (C) 2014, The University of Texas at Austin
00004 
00005     This file is part of libflame and is available under the 3-Clause
00006     BSD license, which can be found in the LICENSE file at the top-level
00007     directory, or at http://opensource.org/licenses/BSD-3-Clause
00008 
00009 */
00010 
00011 #define MAC_Apply_GT_2x2_ops( gamma, sigma, epsilon1, delta2, beta, epsilon2 ) \
00012 { \
00013     float g, s; \
00014     float e1, d2, e2; \
00015 \
00016     g = *(gamma); \
00017     s = *(sigma); \
00018 \
00019     e1 = *(epsilon1); \
00020     d2 = *(delta2); \
00021     e2 = *(epsilon2); \
00022 \
00023     *(epsilon1)  =  g * e1 + s * d2; \
00024     *(delta2)    = -s * e1 + g * d2; \
00025 \
00026     *(beta)      = s * e2; \
00027     *(epsilon2)  = g * e2; \
00028 }
00029 
00030 #define MAC_Apply_GT_2x2_opd( gamma, sigma, epsilon1, delta2, beta, epsilon2 ) \
00031 { \
00032     double g, s; \
00033     double e1, d2, e2; \
00034 \
00035     g = *(gamma); \
00036     s = *(sigma); \
00037 \
00038     e1 = *(epsilon1); \
00039     d2 = *(delta2); \
00040     e2 = *(epsilon2); \
00041 \
00042     *(epsilon1)  =  g * e1 + s * d2; \
00043     *(delta2)    = -s * e1 + g * d2; \
00044 \
00045     *(beta)      = s * e2; \
00046     *(epsilon2)  = g * e2; \
00047 }
00048 
00049 #define MAC_Apply_GT_2x1_ops( gamma, sigma, epsilon1, delta2 ) \
00050 { \
00051     float g, s; \
00052     float e1, d2; \
00053 \
00054     g = *(gamma); \
00055     s = *(sigma); \
00056 \
00057     e1 = *(epsilon1); \
00058     d2 = *(delta2); \
00059 \
00060     *(epsilon1)  =  g * e1 + s * d2; \
00061     *(delta2)    = -s * e1 + g * d2; \
00062 }
00063 
00064 #define MAC_Apply_GT_2x1_opd( gamma, sigma, epsilon1, delta2 ) \
00065 { \
00066     double g, s; \
00067     double e1, d2; \
00068 \
00069     g = *(gamma); \
00070     s = *(sigma); \
00071 \
00072     e1 = *(epsilon1); \
00073     d2 = *(delta2); \
00074 \
00075     *(epsilon1)  =  g * e1 + s * d2; \
00076     *(delta2)    = -s * e1 + g * d2; \
00077 }
00078