FDTD: fix sse/sse_compressed engine creation

ref. 6353c70a

Signed-off-by: Thorsten Liebig <Thorsten.Liebig@gmx.de>
This commit is contained in:
Thorsten Liebig 2018-01-04 10:06:29 +01:00
parent 6133dea5b0
commit a8c0d0bede
4 changed files with 10 additions and 12 deletions

View File

@ -41,11 +41,11 @@ Operator_sse::~Operator_sse()
Delete();
}
Engine* Operator_sse::CreateEngine() const
Engine* Operator_sse::CreateEngine()
{
//! create a special sse-engine
Engine_sse* eng = Engine_sse::New(this);
return eng;
m_Engine = Engine_sse::New(this);
return m_Engine;
}
void Operator_sse::Init()

View File

@ -29,7 +29,7 @@ public:
static Operator_sse* New();
virtual ~Operator_sse();
virtual Engine* CreateEngine() const;
virtual Engine* CreateEngine();
inline virtual FDTD_FLOAT GetVV( unsigned int n, unsigned int x, unsigned int y, unsigned int z ) const { return f4_vv[n][x][y][z%numVectors].f[z/numVectors]; }
inline virtual FDTD_FLOAT GetVI( unsigned int n, unsigned int x, unsigned int y, unsigned int z ) const { return f4_vi[n][x][y][z%numVectors].f[z/numVectors]; }

View File

@ -42,16 +42,14 @@ Operator_SSE_Compressed::~Operator_SSE_Compressed()
Delete();
}
Engine* Operator_SSE_Compressed::CreateEngine() const
Engine* Operator_SSE_Compressed::CreateEngine()
{
if (!m_Use_Compression)
{
//! create a default sse-engine
Engine_sse* eng = Engine_sse::New(this);
return eng;
}
Engine_SSE_Compressed* eng = Engine_SSE_Compressed::New(this);
return eng;
m_Engine = Engine_sse::New(this);
else
m_Engine = Engine_SSE_Compressed::New(this);
return m_Engine;
}
int Operator_SSE_Compressed::CalcECOperator( DebugFlags debugFlags )

View File

@ -43,7 +43,7 @@ public:
static Operator_SSE_Compressed* New();
virtual ~Operator_SSE_Compressed();
virtual Engine* CreateEngine() const;
virtual Engine* CreateEngine();
inline virtual FDTD_FLOAT GetVV( unsigned int n, unsigned int x, unsigned int y, unsigned int z ) const { if (m_Use_Compression) return f4_vv_Compressed[n][m_Op_index[x][y][z%numVectors]].f[z/numVectors]; else return Operator_sse::GetVV(n,x,y,z);}
inline virtual FDTD_FLOAT GetVI( unsigned int n, unsigned int x, unsigned int y, unsigned int z ) const { if (m_Use_Compression) return f4_vi_Compressed[n][m_Op_index[x][y][z%numVectors]].f[z/numVectors]; else return Operator_sse::GetVI(n,x,y,z);}