Fix config bug with static.

This commit is contained in:
sunwen
2023-06-09 14:28:03 +08:00
parent fe84729646
commit 6053fa0ba1
2 changed files with 275 additions and 115 deletions

150
src/config/config.cpp Normal file
View File

@@ -0,0 +1,150 @@
#include "Matrix.h"
#define GLOBLE_CONFIG
#include "config.h"
namespace Recon
{
void initalizeConfig()
{
//reconParams.measurementInfo.ce
reconParams::useCEMeasured = true;
reconParams::removeOutliersFromCEMeasured = true;
reconParams::offsetFilterEnabled = 6.9e-6;
reconParams::offsetFilterDisabled = 1.2e-6;
//reconParams.measurementInfo.temp
reconParams::useTASTempComp = true;
reconParams::correctTASTemp = 1;
//reconParams.hardwareSelection
reconParams::gpuSelectionList = Aurora::Matrix::fromRawData(new double[8] {0,1,2,3,4,5,6,7},8);
//reconParams.dataInfo
reconParams::expectedAScanDataLength = 4000;
//reflectParams.dataSelection
reflectParams::senderTasList = Aurora::Matrix::fromRawData(new double[128] {1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128},128); //1~128
reflectParams::senderElementList = Aurora::Matrix::fromRawData(new double[18] {1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18},18); //1~18
reflectParams::receiverTasList = Aurora::Matrix::fromRawData(new double[128] {1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128},128); //1~128
reflectParams::receiverElementList = Aurora::Matrix::fromRawData(new double[18] {1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18},18); //1~18
reflectParams::motorPos = Aurora::Matrix::fromRawData(new double[2] {1,2}, 2);
reflectParams::constricReflectionAngles = 1;
reflectParams::angleLowerLimit = 45;
reflectParams::angleUpperLimit = 360;
reflectParams::findDefects = 1;
reflectParams::epsilon = 10;
//reflectParams.dataBlocking
reflectParams::mpSize = 1;
reflectParams::senderTASSize = 2;
reflectParams::senderElementSize = 18;
//reflectParams.qualityCheck
reflectParams::qualityCheck = true;
reflectParams::warningThreshold = 0.5;
reflectParams::errorThreshold = 0.1;
//reflectParams.dataPreparation
reflectParams::version = 2;
reflectParams::aScanReconstructionFrequency = 10000000;
reflectParams::offsetElectronic = 5.2e-7;
reflectParams::removeDCOffset = true;
reflectParams::expectedAScanDataLength = 4000;
//reflectParams.imageInfos
reflectParams::pixelResolutionX = 400;
reflectParams::pixelResolutionY = 400;
reflectParams::pixelResolutionZ = NAN;
reflectParams::imageStartpoint = Aurora::Matrix::fromRawData(new double[3] {-0.18,-0.18,-0.22}, 1, 3);
reflectParams::imageEndpoint = Aurora::Matrix::fromRawData(new double[3] {0.18,0.18,0.02}, 1, 3);
reflectParams::imageResolution = NAN;
reflectParams::imageXYZ = Aurora::Matrix();
//reflectParams.signalProcessing
reflectParams::useOptPulse = 1;
reflectParams::optPulseFactor = 48;
reflectParams::expectedPulseLength = 90;
reflectParams::limitNumPulsesTo = 100;
reflectParams::normalizePeaks = 1;
reflectParams::removeTransmissionSignal = 1;
reflectParams::suppressSameHead = 1;
reflectParams::suppressSameHeadLength = 1500;
reflectParams::useCorrelation = 1;
reflectParams::matchedFilterCeAScan = true;
reflectParams::windowLength = 10;
reflectParams::numThreads = 30;
reflectParams::expectedUSSpeedRange = Aurora::Matrix::fromRawData(new double[2] {1420,1600}, 1, 2);
//reflectParams.transmissionCorrection
reflectParams::soundSpeedCorrection = 1;
reflectParams::attenuationCorrection = 1;
reflectParams::saveTransmInReflCoords = 1;
reflectParams::resolutionTransmMap = 0.005;
//reflectParams.saft
reflectParams::debugMode = 0;
reflectParams::blockSizeReco = 60000;
reflectParams::medianWindowSize = 1;
reflectParams::saftVariant = Aurora::Matrix::fromRawData(new double[6]{1,1,1,1,0,0} , 1, 6);
reflectParams::useAscanIndex = 1;
reflectParams::attenuationCorrectionLimit = 20;
reflectParams::blockDimXYZ = Aurora::Matrix::fromRawData(new double[3]{16,16,1} , 1, 3);
//reflectParams
reflectParams::VERSION_MATLAB_MAJOR = 9;
reflectParams::OS_UNIX = 0;
reflectParams::runReflectionReco = true;
transParams::gpuSelectionList = reconParams::gpuSelectionList;
//transParams.dataSelection
transParams::verbose = 1;
transParams::saveRecon = 1;
transParams::saveDebugInfomation = 1;
//transParams.dataSelection
transParams::senderTasList = Aurora::Matrix::fromRawData(new double[128] {1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128},128); //1~128
transParams::senderElementList = Aurora::Matrix::fromRawData(new double[18] {1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18},18); //1~18
transParams::receiverTasList = Aurora::Matrix::fromRawData(new double[128] {1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128},128); //1~128
transParams::receiverElementList = Aurora::Matrix::fromRawData(new double[18] {1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18},18); //1~18
transParams::motorPos = Aurora::Matrix::fromRawData(new double[2] {1,2}, 2);
transParams::filterSensitivity = 1;
transParams::sensFilter = 0.3;
transParams::angleLowerLimit = 120;
transParams::angleUpperLimit = 180;
transParams::applyCalib = true;
transParams::snrThreshold = 10;
transParams::calibReferenceTas = Aurora::Matrix::fromRawData(new double[1] {1},1);
transParams::calibReferenceMotorPosition = Aurora::Matrix::fromRawData(new double[1] {1},1);
transParams::constrictReflectionAngles = 0;
//transParams.qualityCheck
transParams::qualityCheck = 1;
transParams::warningThreshold = 0.5;
transParams::errorThreshold = 0.1;
//transParams.dataBlocking
transParams::mpSize = 1;
transParams::senderTASSize = 2;
transParams::senderElementSize = 18;
//transParams.dataPreparation
transParams::numPixelXY = 128;
transParams::offsetElectronic = 5.2e-7;
transParams::aScanReconstructionFrequency = 10000000;
transParams::minTemperature = 15;
transParams::maxTemperature = 40;
//transParams.detection
transParams::forceRedetect = 0;
transParams::saveDetection = 0;
transParams::version = 1;
transParams::useTimeWindowing = 1;
transParams::gaussWindow = 0;
transParams::outlierOnTasDetection = 0;
transParams::resampleFactor = 1;
transParams::nThreads = 8;
transParams::minSpeedOfSound = 1450;
transParams::maxSpeedOfSound = 1550;
transParams::detectionWindowSOS = 1;
transParams::detectionWindowATT = 50;
transParams::pulseLengthSamples = 0;
transParams::pulseLengthRefSamples = 0;
//transParams.rayTracing
transParams::bentReconstruction = false;
transParams::bresenham = 1;
transParams::bentMethod = 1;
transParams::bentTol = 1;
transParams::bentIter = 1;
//transParams.solver
transParams::name = "TVAL3";
transParams::maxIter = 50;
transParams::muValues = Aurora::Matrix::fromRawData(new double[1] {100}, 1);
transParams::betaValues = Aurora::Matrix::fromRawData(new double[1] {1}, 1);
transParams::runTransmissionReco = true;
transParams::nonNeg = false;
}
}

View File

@@ -1,157 +1,167 @@
#ifndef RECON_CONFIG_H #ifndef RECON_CONFIG_H
#define RECON_CONFIG_H #define RECON_CONFIG_H
#ifdef GLOBLE_CONFIG
#define EXTERN_C
#else
#define EXTERN_C extern
#endif
#include <string> #include <string>
#include "Matrix.h" #include "Matrix.h"
namespace Recon namespace Recon
{ {
namespace reconParams namespace reconParams
{ {
//reconParams.measurementInfo.ce //reconParams.measurementInfo.ce
static bool useCEMeasured = true; EXTERN_C bool useCEMeasured;
static bool removeOutliersFromCEMeasured = true; EXTERN_C bool removeOutliersFromCEMeasured;
static double offsetFilterEnabled = 6.9e-6; EXTERN_C double offsetFilterEnabled;
static double offsetFilterDisabled = 1.2e-6; EXTERN_C double offsetFilterDisabled;
//reconParams.measurementInfo.temp //reconParams.measurementInfo.temp
static bool useTASTempComp = true; EXTERN_C bool useTASTempComp;
static bool correctTASTemp = 1; EXTERN_C bool correctTASTemp;
//reconParams.hardwareSelection //reconParams.hardwareSelection
static Aurora::Matrix gpuSelectionList = Aurora::Matrix::fromRawData(new double[8]{0,1,2,3,4,5,6,7},8); EXTERN_C Aurora::Matrix gpuSelectionList;
//reconParams.dataInfo //reconParams.dataInfo
static int expectedAScanDataLength = 4000; EXTERN_C int expectedAScanDataLength;
} }
namespace reflectParams namespace reflectParams
{ {
//reflectParams.dataSelection //reflectParams.dataSelection
static Aurora::Matrix senderTasList = Aurora::Matrix::fromRawData(new double[128]{1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128},128);//1~128 EXTERN_C Aurora::Matrix senderTasList;
static Aurora::Matrix senderElementList = Aurora::Matrix::fromRawData(new double[18]{1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18},18);//1~18 EXTERN_C Aurora::Matrix senderElementList;
static Aurora::Matrix receiverTasList = Aurora::Matrix::fromRawData(new double[128]{1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128},128);//1~128 EXTERN_C Aurora::Matrix receiverTasList;
static Aurora::Matrix receiverElementList = Aurora::Matrix::fromRawData(new double[18]{1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18},18);//1~18 EXTERN_C Aurora::Matrix receiverElementList;
static Aurora::Matrix motorPos = Aurora::Matrix::fromRawData(new double[2]{1,2}, 2); EXTERN_C Aurora::Matrix motorPos;
static int constricReflectionAngles = 1; EXTERN_C int constricReflectionAngles;
static int angleLowerLimit = 45; EXTERN_C int angleLowerLimit;
static int angleUpperLimit = 360; EXTERN_C int angleUpperLimit;
static int findDefects = 1; EXTERN_C int findDefects;
static int epsilon = 10; EXTERN_C int epsilon;
//reflectParams.dataBlocking //reflectParams.dataBlocking
static int mpSize = 1; EXTERN_C int mpSize;
static int senderTASSize = 2; EXTERN_C int senderTASSize;
static int senderElementSize = 18; EXTERN_C int senderElementSize;
//reflectParams.qualityCheck //reflectParams.qualityCheck
static bool qualityCheck = true; EXTERN_C bool qualityCheck;
static double warningThreshold = 0.5; EXTERN_C double warningThreshold;
static double errorThreshold = 0.1; EXTERN_C double errorThreshold;
//reflectParams.dataPreparation //reflectParams.dataPreparation
static int version = 2; EXTERN_C int version;
static int aScanReconstructionFrequency = 10000000; EXTERN_C int aScanReconstructionFrequency;
static double offsetElectronic = 5.2e-7; EXTERN_C double offsetElectronic;
static bool removeDCOffset = true; EXTERN_C bool removeDCOffset;
static int expectedAScanDataLength = 4000; EXTERN_C int expectedAScanDataLength;
//reflectParams.imageInfos //reflectParams.imageInfos
static int pixelResolutionX = 400; EXTERN_C double pixelResolutionX;
static int pixelResolutionY = 400; EXTERN_C double pixelResolutionY;
static double imageStartpoint[3] = {-0.18,-0.18,-0.22}; EXTERN_C double pixelResolutionZ;
static double imageEndpoint[3] = {0.18,0.18,0.02}; EXTERN_C Aurora::Matrix imageStartpoint;
EXTERN_C Aurora::Matrix imageEndpoint;
EXTERN_C double imageResolution;
EXTERN_C Aurora::Matrix imageXYZ;
//reflectParams.signalProcessing //reflectParams.signalProcessing
static int useOptPulse = 1; EXTERN_C int useOptPulse;
static int optPulseFactor = 48; EXTERN_C int optPulseFactor;
static int expectedPulseLength = 90; EXTERN_C int expectedPulseLength;
static int limitNumPulsesTo = 100; EXTERN_C int limitNumPulsesTo;
static int normalizePeaks = 1; EXTERN_C int normalizePeaks;
static int removeTransmissionSignal = 1; EXTERN_C int removeTransmissionSignal;
static int suppressSameHead = 1; EXTERN_C int suppressSameHead;
static int suppressSameHeadLength = 1500; EXTERN_C int suppressSameHeadLength;
static int useCorrelation = 1; EXTERN_C int useCorrelation;
static bool matchedFilterCeAScan = true; EXTERN_C bool matchedFilterCeAScan;
static int windowLength = 10; EXTERN_C int windowLength;
static int numThreads = 30; EXTERN_C int numThreads;
static int expectedUSSpeedRange[2] = {1420,1600}; EXTERN_C Aurora::Matrix expectedUSSpeedRange;
//reflectParams.transmissionCorrection //reflectParams.transmissionCorrection
static int soundSpeedCorrection = 1; EXTERN_C int soundSpeedCorrection;
static int attenuationCorrection = 1; EXTERN_C int attenuationCorrection;
static int saveTransmInReflCoords = 1; EXTERN_C int saveTransmInReflCoords;
static double resolutionTransmMap = 0.005; EXTERN_C double resolutionTransmMap;
//reflectParams.saft //reflectParams.saft
static int debugMode = 0; EXTERN_C int debugMode;
static int blockSizeReco = 60000; EXTERN_C int blockSizeReco;
static int medianWindowSize = 1; EXTERN_C int medianWindowSize;
static int saftVariant[6] = {1,1,1,1,0,0}; EXTERN_C Aurora::Matrix saftVariant;
static int useAscanIndex = 1; EXTERN_C int useAscanIndex;
static int attenuationCorrectionLimit = 20; EXTERN_C int attenuationCorrectionLimit;
static int blockDimXYZ[3] = {16,16,1}; EXTERN_C Aurora::Matrix blockDimXYZ;
//reflectParams //reflectParams
static int VERSION_MATLAB_MAJOR = 9; EXTERN_C int VERSION_MATLAB_MAJOR;
static int OS_UNIX = 0; EXTERN_C int OS_UNIX;
static bool runReflectionReco = true; EXTERN_C bool runReflectionReco;
} }
namespace transParams namespace transParams
{ {
static Aurora::Matrix gpuSelectionList = reconParams::gpuSelectionList; EXTERN_C Aurora::Matrix gpuSelectionList;
//transParams.dataSelection //transParams.dataSelection
static int verbose = 1; EXTERN_C int verbose;
static int saveRecon = 1; EXTERN_C int saveRecon;
static int saveDebugInfomation = 1; EXTERN_C int saveDebugInfomation;
//transParams.dataSelection //transParams.dataSelection
static Aurora::Matrix senderTasList = Aurora::Matrix::fromRawData(new double[128]{1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128},128);//1~128 EXTERN_C Aurora::Matrix senderTasList;
static Aurora::Matrix senderElementList = Aurora::Matrix::fromRawData(new double[18]{1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18},18);//1~18 EXTERN_C Aurora::Matrix senderElementList;
static Aurora::Matrix receiverTasList = Aurora::Matrix::fromRawData(new double[128]{1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128},128);//1~128 EXTERN_C Aurora::Matrix receiverTasList;
static Aurora::Matrix receiverElementList = Aurora::Matrix::fromRawData(new double[18]{1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18},18);//1~18 EXTERN_C Aurora::Matrix receiverElementList;
static Aurora::Matrix motorPos = Aurora::Matrix::fromRawData(new double[2]{1,2}, 2); EXTERN_C Aurora::Matrix motorPos;
static int filterSensitivity = 1; EXTERN_C int filterSensitivity;
static double sensFilter = 0.3; EXTERN_C double sensFilter;
static int angleLowerLimit = 120; EXTERN_C int angleLowerLimit;
static int angleUpperLimit = 180; EXTERN_C int angleUpperLimit;
static bool applyCalib = true; EXTERN_C bool applyCalib;
static int snrThreshold = 10; EXTERN_C int snrThreshold;
static Aurora::Matrix calibReferenceTas = Aurora::Matrix::fromRawData(new double[1]{1},1); EXTERN_C Aurora::Matrix calibReferenceTas;
static Aurora::Matrix calibReferenceMotorPosition = Aurora::Matrix::fromRawData(new double[1]{1},1); EXTERN_C Aurora::Matrix calibReferenceMotorPosition;
static int constrictReflectionAngles = 0; EXTERN_C int constrictReflectionAngles;
//transParams.qualityCheck //transParams.qualityCheck
static int qualityCheck = 1; EXTERN_C int qualityCheck;
static double warningThreshold = 0.5; EXTERN_C double warningThreshold;
static double errorThreshold = 0.1; EXTERN_C double errorThreshold;
//transParams.dataBlocking //transParams.dataBlocking
static int mpSize = 1; EXTERN_C int mpSize;
static int senderTASSize = 2; EXTERN_C int senderTASSize;
static int senderElementSize = 18; EXTERN_C int senderElementSize;
//transParams.dataPreparation //transParams.dataPreparation
static int numPixelXY = 128; EXTERN_C int numPixelXY;
static double offsetElectronic = 5.2e-7; EXTERN_C double offsetElectronic;
static int aScanReconstructionFrequency = 10000000; EXTERN_C int aScanReconstructionFrequency;
static double minTemperature = 15; EXTERN_C double minTemperature;
static double maxTemperature = 40; EXTERN_C double maxTemperature;
//transParams.detection //transParams.detection
static int forceRedetect = 0; EXTERN_C int forceRedetect;
static int saveDetection = 0; EXTERN_C int saveDetection;
static int version = 1; EXTERN_C int version;
static int useTimeWindowing = 1; EXTERN_C int useTimeWindowing;
static int gaussWindow = 0; EXTERN_C int gaussWindow;
static int outlierOnTasDetection = 0; EXTERN_C int outlierOnTasDetection;
static int resampleFactor = 1; EXTERN_C int resampleFactor;
static int nThreads = 8; EXTERN_C int nThreads;
static int minSpeedOfSound = 1450; EXTERN_C int minSpeedOfSound;
static int maxSpeedOfSound = 1550; EXTERN_C int maxSpeedOfSound;
static int detectionWindowSOS = 1; EXTERN_C int detectionWindowSOS;
static int detectionWindowATT = 50; EXTERN_C int detectionWindowATT;
static double pulseLengthSamples = 0; EXTERN_C double pulseLengthSamples;
static double pulseLengthRefSamples = 0; EXTERN_C double pulseLengthRefSamples;
//transParams.rayTracing //transParams.rayTracing
static bool bentReconstruction = false; EXTERN_C bool bentReconstruction;
static int bresenham = 1; EXTERN_C int bresenham;
static int bentMethod = 1; EXTERN_C int bentMethod;
static int bentTol = 1; EXTERN_C int bentTol;
static int bentIter = 1; EXTERN_C int bentIter;
//transParams.solver //transParams.solver
static std::string name = "TVAL3"; EXTERN_C std::string name;
static int maxIter = 50; EXTERN_C int maxIter;
static Aurora::Matrix muValues = Aurora::Matrix::fromRawData(new double[1]{100}, 1); EXTERN_C Aurora::Matrix muValues;
static Aurora::Matrix betaValues = Aurora::Matrix::fromRawData(new double[1]{1}, 1); EXTERN_C Aurora::Matrix betaValues;
static bool runTransmissionReco = true; EXTERN_C bool runTransmissionReco;
static bool nonNeg = false; EXTERN_C bool nonNeg;
} }
void initalizeConfig();
} }
#endif //RECON_CONFIG_H #endif //RECON_CONFIG_H