libflame
revision_anchor
|
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