[clfft] 95/107: fixing imaginary part sign issues
Ghislain Vaillant
ghisvail-guest at moszumanska.debian.org
Thu Jul 30 18:06:41 UTC 2015
This is an automated email from the git hooks/post-receive script.
ghisvail-guest pushed a commit to branch master
in repository clfft.
commit 49fbb5bda821aa6969ecd92a55b1a4adc59ccf5c
Author: bragadeesh <bragadeesh.natarajan at amd>
Date: Mon Jun 22 16:01:00 2015 -0500
fixing imaginary part sign issues
---
src/library/generator.stockham.cpp | 69 ++++++++++++++++++++++++++++++++------
1 file changed, 58 insertions(+), 11 deletions(-)
diff --git a/src/library/generator.stockham.cpp b/src/library/generator.stockham.cpp
index b14ca8c..4016acc 100644
--- a/src/library/generator.stockham.cpp
+++ b/src/library/generator.stockham.cpp
@@ -956,19 +956,62 @@ namespace StockhamGenerator
}
passStr += rType; passStr += " TR, TI;\n\t\t";
- if(fwd)
+
+ if(realSpecial)
{
- passStr += "TR = (W.x * "; passStr += regRealIndex; passStr += ") - (W.y * ";
- passStr += regImagIndex; passStr += ");\n\t\t";
- passStr += "TI = (W.y * "; passStr += regRealIndex; passStr += ") + (W.x * ";
- passStr += regImagIndex; passStr += ");\n\t\t";
+ if(fwd)
+ {
+ passStr += "if(t==0)\n\t\t{\n\t\t";
+
+ passStr += "TR = (W.x * "; passStr += regRealIndex; passStr += ") - (W.y * ";
+ passStr += regImagIndex; passStr += ");\n\t\t";
+ passStr += "TI = (W.y * "; passStr += regRealIndex; passStr += ") + (W.x * ";
+ passStr += regImagIndex; passStr += ");\n\t\t";
+
+ passStr += "}\n\t\telse\n\t\t{\n\t\t";
+
+ passStr += "TR = (W.x * "; passStr += regRealIndex; passStr += ") + (W.y * ";
+ passStr += regImagIndex; passStr += ");\n\t\t";
+ passStr += "TI = -(W.y * "; passStr += regRealIndex; passStr += ") + (W.x * ";
+ passStr += regImagIndex; passStr += ");\n\t\t";
+
+ passStr += "}\n\t\t";
+ }
+ else
+ {
+ passStr += "if(t==0)\n\t\t{\n\t\t";
+
+ passStr += "TR = (W.x * "; passStr += regRealIndex; passStr += ") + (W.y * ";
+ passStr += regImagIndex; passStr += ");\n\t\t";
+ passStr += "TI = -(W.y * "; passStr += regRealIndex; passStr += ") + (W.x * ";
+ passStr += regImagIndex; passStr += ");\n\t\t";
+
+ passStr += "}\n\t\telse\n\t\t{\n\t\t";
+
+ passStr += "TR = (W.x * "; passStr += regRealIndex; passStr += ") - (W.y * ";
+ passStr += regImagIndex; passStr += ");\n\t\t";
+ passStr += "TI = (W.y * "; passStr += regRealIndex; passStr += ") + (W.x * ";
+ passStr += regImagIndex; passStr += ");\n\t\t";
+
+ passStr += "}\n\t\t";
+ }
}
else
{
- passStr += "TR = (W.x * "; passStr += regRealIndex; passStr += ") + (W.y * ";
- passStr += regImagIndex; passStr += ");\n\t\t";
- passStr += "TI = -(W.y * "; passStr += regRealIndex; passStr += ") + (W.x * ";
- passStr += regImagIndex; passStr += ");\n\t\t";
+ if(fwd)
+ {
+ passStr += "TR = (W.x * "; passStr += regRealIndex; passStr += ") - (W.y * ";
+ passStr += regImagIndex; passStr += ");\n\t\t";
+ passStr += "TI = (W.y * "; passStr += regRealIndex; passStr += ") + (W.x * ";
+ passStr += regImagIndex; passStr += ");\n\t\t";
+ }
+ else
+ {
+ passStr += "TR = (W.x * "; passStr += regRealIndex; passStr += ") + (W.y * ";
+ passStr += regImagIndex; passStr += ");\n\t\t";
+ passStr += "TI = -(W.y * "; passStr += regRealIndex; passStr += ") + (W.x * ";
+ passStr += regImagIndex; passStr += ");\n\t\t";
+ }
}
passStr += regRealIndex; passStr += " = TR;\n\t\t";
@@ -1526,7 +1569,9 @@ namespace StockhamGenerator
// Function arguments
passStr += "(";
- passStr += "uint rw, uint b, uint me, uint inOffset, uint outOffset, ";
+ passStr += "uint rw, uint b, ";
+ if(realSpecial) passStr += "uint t, ";
+ passStr += "uint me, uint inOffset, uint outOffset, ";
if(r2c || c2r)
{
@@ -3180,7 +3225,9 @@ namespace StockhamGenerator
else { if(ldsInterleaved) { ldsArgs += "lds"; }
else { ldsArgs += "lds, lds + "; ldsArgs += SztToStr(length*numTrans); } }
- str += rw; str += me;
+ str += rw;
+ if(params.fft_realSpecial) str += "t, ";
+ str += me;
if(p == passes.begin()) // beginning pass
{
str += blockCompute ? ldsOff : "0";
--
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/debian-science/packages/clfft.git
More information about the debian-science-commits
mailing list