private bool isUniqueVector(double accX, double accY, double accZ)
{
int i;
bool unique_data = true;
for (i = 0; i < next_data_index; i++)
{
double dot_product = loggedData[i, 0] * accX + loggedData[i, 1] * accY + loggedData[i, 2] * accZ;
double norm1 = Math.Sqrt(accX * accX + accY * accY + accZ * accZ);
double norm2 = Math.Sqrt(loggedData[i, 0] * loggedData[i, 0] + loggedData[i, 1] * loggedData[i, 1] + loggedData[i, 2] * loggedData[i, 2]);
double angle = Math.Acos(dot_product / (norm1 * norm2));
if (Math.Abs(angle) < threshold)
{
unique_data = false;
}
}
return unique_data;
}