mirror of
https://github.com/UpsilonNumworks/Upsilon.git
synced 2026-03-24 16:20:49 +01:00
[apps\shared] Create a folder shared/
Change-Id: I94e4474ff5ab3bf9db7afd5b3be57b985755ecdf
This commit is contained in:
67
apps/shared/float_pair_store.cpp
Normal file
67
apps/shared/float_pair_store.cpp
Normal file
@@ -0,0 +1,67 @@
|
||||
#include "float_pair_store.h"
|
||||
#include <math.h>
|
||||
#include <assert.h>
|
||||
#include <stddef.h>
|
||||
#include <ion.h>
|
||||
|
||||
FloatPairStore::FloatPairStore() :
|
||||
m_numberOfPairs(0)
|
||||
{
|
||||
}
|
||||
|
||||
float FloatPairStore::get(int i, int j) {
|
||||
assert(j < m_numberOfPairs);
|
||||
return m_data[i][j];
|
||||
}
|
||||
|
||||
void FloatPairStore::set(float f, int i, int j) {
|
||||
if (j >= k_maxNumberOfPairs) {
|
||||
return;
|
||||
}
|
||||
m_data[i][j] = f;
|
||||
if (j >= m_numberOfPairs) {
|
||||
int otherI = i == 0 ? 1 : 0;
|
||||
m_data[otherI][j] = defaultValue(otherI);
|
||||
m_numberOfPairs++;
|
||||
}
|
||||
}
|
||||
|
||||
int FloatPairStore::numberOfPairs() {
|
||||
return m_numberOfPairs;
|
||||
}
|
||||
|
||||
void FloatPairStore::deletePairAtIndex(int i) {
|
||||
m_numberOfPairs--;
|
||||
for (int k = i; k < m_numberOfPairs; k++) {
|
||||
m_data[0][k] = m_data[0][k+1];
|
||||
m_data[1][k] = m_data[1][k+1];
|
||||
}
|
||||
}
|
||||
|
||||
void FloatPairStore::deleteAllPairs() {
|
||||
m_numberOfPairs = 0;
|
||||
}
|
||||
|
||||
void FloatPairStore::resetColumn(int i) {
|
||||
for (int k = 0; k < m_numberOfPairs; k++) {
|
||||
m_data[i][k] = defaultValue(i);
|
||||
}
|
||||
}
|
||||
|
||||
float FloatPairStore::sumOfColumn(int i) {
|
||||
float result = 0;
|
||||
for (int k = 0; k < m_numberOfPairs; k++) {
|
||||
result += m_data[i][k];
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
uint32_t FloatPairStore::storeChecksum() {
|
||||
size_t dataLengthInBytes = m_numberOfPairs*2*sizeof(float);
|
||||
assert((dataLengthInBytes & 0x3) == 0); // Assert that dataLengthInBytes is a multiple of 4
|
||||
return Ion::crc32((uint32_t *)m_data, dataLengthInBytes>>2);
|
||||
}
|
||||
|
||||
float FloatPairStore::defaultValue(int i) {
|
||||
return 0.0f;
|
||||
}
|
||||
Reference in New Issue
Block a user