v1.0.0-rc.81
This commit is contained in:
@@ -3,31 +3,38 @@
|
||||
|
||||
#include "IndexerFactory.h"
|
||||
|
||||
#ifndef JFJOCH_USE_CUDA
|
||||
|
||||
std::unique_ptr<Indexer> CreateIndexer(const DiffractionExperiment& experiment) {
|
||||
return {};
|
||||
}
|
||||
|
||||
#else
|
||||
|
||||
#ifdef JFJOCH_USE_CUDA
|
||||
#include "FFBIDXIndexer.h"
|
||||
#include "FFTIndexer.h"
|
||||
#include "FFTIndexerGPU.h"
|
||||
#endif
|
||||
|
||||
#ifdef JFJOCH_USE_FFTW
|
||||
#include "FFTIndexerCPU.h"
|
||||
#endif
|
||||
|
||||
std::unique_ptr<Indexer> CreateIndexer(const DiffractionExperiment& experiment) {
|
||||
std::unique_ptr<Indexer> indexer;
|
||||
switch (experiment.GetIndexingAlgorithm()) {
|
||||
case IndexingAlgorithmEnum::FFBIDX:
|
||||
indexer = std::make_unique<FFBIDXIndexer>();
|
||||
indexer->Setup(experiment);
|
||||
#ifdef JFJOCH_USE_CUDA
|
||||
indexer = std::make_unique<FFBIDXIndexer>();
|
||||
indexer->Setup(experiment);
|
||||
#endif
|
||||
break;
|
||||
case IndexingAlgorithmEnum::FFTW:
|
||||
#ifdef JFJOCH_USE_FFTW
|
||||
indexer = std::make_unique<FFTIndexerCPU>(experiment.GetIndexingSettings());
|
||||
indexer->Setup(experiment);
|
||||
#endif
|
||||
break;
|
||||
case IndexingAlgorithmEnum::FFT:
|
||||
indexer = std::make_unique<FFTIndexer>(experiment.GetIndexingSettings());
|
||||
indexer->Setup(experiment);
|
||||
#ifdef JFJOCH_USE_CUDA
|
||||
indexer = std::make_unique<FFTIndexerGPU>(experiment.GetIndexingSettings());
|
||||
indexer->Setup(experiment);
|
||||
#endif
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
return indexer;
|
||||
}
|
||||
#endif
|
||||
}
|
||||
Reference in New Issue
Block a user