Improve performSignalProcessing performance

This commit is contained in:
kradchen
2023-06-19 17:02:53 +08:00
parent e9aaa0953d
commit a5ecf49433

View File

@@ -362,12 +362,16 @@ namespace Recon {
help(0,Aurora::$) = 0;
help.setBlock(0, 1, help.getDimSize(0)-1, _blockOp(_blockedAScans, 1));
{
auto help_bbegin = help.block(0, 0, help.getDimSize(0)-2);
auto help_bend = help.block(0, 1, help.getDimSize(0)-1);
help_bend = (help_bend>0)*(help_bbegin<0);
auto tempBlock = Aurora::zeros(_blockedAScans.getDimSize(0),_blockedAScans.getDimSize(1),_blockedAScans.getDimSize(2));
tempBlock.setBlock(0, 0, tempBlock.getDimSize(0)-2, help_bend);
blockedAScans(Aurora::$,i) = _blockedAScans*tempBlock;
size_t loopCount = help.getDimSize(0)-1;
auto ptr_b = help.getData();
auto ptr_e = ptr_b+1;
for (size_t k = 0; k < loopCount; k++)
{
if(ptr_b[k]>=0 || ptr_e[k]<=0) _blockedAScans[k]=0;
// if(ptr_b[k]<0 && ptr_e[k]>0) continue;
// _blockedAScans[k]=0;
}
_blockedAScans[loopCount]=0;
}
help = _blockedAScans.deepCopy();
Aurora::compareSet(help,0,0,Aurora::LT);