Skip to content

Commit 7db38ac

Browse files
committed
Merge branch 'master' into feature/add_CI
2 parents 85fc492 + 910342f commit 7db38ac

1 file changed

Lines changed: 18 additions & 9 deletions

File tree

src/DualAnalysisPlugin.cpp

Lines changed: 18 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -116,26 +116,35 @@ void DualAnalysisPlugin::transposeData()
116116
qDebug() << "input dataset: " << inputPoints->getGuiName();
117117

118118
// Retrieve the number of points and dimensions
119-
const auto numPoints = inputPoints->getNumPoints();
120-
const auto numDimensions = inputPoints->getNumDimensions();
119+
const int64_t numPoints = inputPoints->getNumPoints();
120+
const int64_t numDimensions = inputPoints->getNumDimensions();
121121
qDebug() << "numPoints: " << numPoints << " numDimensions: " << numDimensions;
122122

123+
if (numPoints*numDimensions > std::numeric_limits<int64_t>::max())
124+
{
125+
throw std::overflow_error("ERROR: numPoints * numDimensions overflows int64_t");
126+
}
127+
123128
// Create a vector to store the transposed data
124-
QVector<float> transposedData(numPoints * numDimensions);
129+
QVector<float> transposedData(numPoints * numDimensions);//float
130+
//QVector<biovault::bfloat16_t> transposedData(numPoints * numDimensions);//bfloat
131+
125132
qDebug() << "transposedData vector initialized";
126133

127134
// Transposing the data
128135
#pragma omp parallel for
129-
for (int i = 0; i < numPoints; ++i)
136+
for (int64_t i = 0; i < numPoints; ++i)
130137
{
131-
for (int j = 0; j < numDimensions; ++j)
138+
for (int64_t j = 0; j < numDimensions; ++j)
132139
{
133-
// Correct indexing for the transposed data
134-
transposedData[j * numPoints + i] = inputPoints->getValueAt(i * numDimensions + j);
140+
const size_t idxInput = static_cast<size_t>(i) * static_cast<size_t>(numDimensions)+ static_cast<size_t>(j);
141+
142+
transposedData[j * numPoints + i] = inputPoints->getValueAt(idxInput);//float
143+
//transposedData[j * numPoints + i] = static_cast<biovault::bfloat16_t>(inputPoints->getValueAt(idxInput));//bfloat
135144
}
136145

137146
// Progress reporting
138-
if (i % 100 == 0)
147+
if (i % 10000 == 0)
139148
{
140149
qDebug() << "Transposing data: " << i << " / " << numPoints;
141150
}
@@ -325,7 +334,7 @@ void DualAnalysisPlugin::setup2DTsneForDataset(mv::Dataset<Points>& inputDataset
325334
dataPreparationTask.setParentTask(&embeddingDataset->getTask());
326335

327336
embeddingDataset->addAction(tsneSettingsAction->getGeneralTsneSettingsAction());
328-
//embeddingDataset->addAction(tsneSettingsAction->getInitalEmbeddingSettingsAction());
337+
embeddingDataset->addAction(tsneSettingsAction->getInitalEmbeddingSettingsAction());
329338
//embeddingDataset->addAction(tsneSettingsAction->getGradientDescentSettingsAction());
330339
//embeddingDataset->addAction(tsneSettingsAction->getKnnSettingsAction());
331340
//auto dimensionsGroupAction = new GroupAction(this, "Dimensions", true);

0 commit comments

Comments
 (0)