static void local_fillParticleDataFromStais(float *partData, uint64_t pos, stai_t *data) { for (int i = 0; i < 6; i++) { if (data[i] != NULL) { if (stai_getSizeOfElementInBytes(data[i]) == sizeof(float)) { stai_getElement(data[i], pos, partData + i); } else if (stai_getSizeOfElementInBytes(data[i]) == sizeof(double)) { double d; stai_getElement(data[i], pos, &d); partData[i] = (float)d; } } else { partData[i] = NAN; } } }
static void local_fillBufferFromStai(float *buffer, stai_t stai, int numValues) { if (stai_getSizeOfElementInBytes(stai) == sizeof(float)) { stai_getElementsMulti(stai, 0, buffer, numValues); } else if (stai_getSizeOfElementInBytes(stai) == sizeof(double)) { double d; for (int i = 0; i < numValues; i++) { stai_getElement(stai, i, &d); buffer[i] = (float)d; } } else { diediedie(EXIT_FAILURE); } }