AHRSInterface.MagCal.isUniqueVector C# (CSharp) Method

isUniqueVector() private method

private isUniqueVector ( double magX, double magY, double magZ ) : bool
magX double
magY double
magZ double
return bool
        private bool isUniqueVector(double magX, double magY, double magZ)
        {
            int i;

            bool unique_data = true;

            for (i = 0; i < next_data_index; i++)
            {
                double dot_product = loggedData[i, 0] * magX + loggedData[i, 1] * magY + loggedData[i, 2] * magZ;
                double norm1 = Math.Sqrt(magX * magX + magY * magY + magZ * magZ);
                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;
        }