A computing device, comprising: a magnetic sensor configured to collect sensor output data; a heading computation engine configured to compute a magnetic heading based on the sensor output data, the heading computation engine comprising: logic configured to measure a level of noise in the sensor output data; logic to determine whether to average the sensor output data based on the level of noise and a desired heading accuracy; logic configured to determine an applied sensor output to be a single sample of the sensor output data, if the logic to determine whether to average the sensor output data determines that the sensor output data is not to be averaged, and to determine a number of samples of the sensor output data based on the level of noise, the desired heading accuracy and a desired confidence level, and also to determine the applied sensor output to be an average sensor output computed based on the number of samples of the sensor output data, if the logic to determine whether to average the sensor output data determines that the sensor output data is to be averaged; and logic configured to compute the magnetic heading based on the applied sensor output determined by said logic configured to determine an applied sensor output. a magnetic sensor configured to collect sensor output data; a heading computation engine configured to compute a magnetic heading based on the sensor output data, the heading computation engine comprising: logic configured to measure a level of noise in the sensor output data; logic to determine whether to average the sensor output data based on the level of noise and a desired heading accuracy; logic configured to determine an applied sensor output to be a single sample of the sensor output data, if the logic to determine whether to average the sensor output data determines that the sensor output data is not to be averaged, and to determine a number of samples of the sensor output data based on the level of noise, the desired heading accuracy and a desired confidence level, and also to determine the applied sensor output to be an average sensor output computed based on the number of samples of the sensor output data, if the logic to determine whether to average the sensor output data determines that the sensor output data is to be averaged; and logic configured to compute the magnetic heading based on the applied sensor output determined by said logic configured to determine an applied sensor output. logic configured to measure a level of noise in the sensor output data; logic to determine whether to average the sensor output data based on the level of noise and a desired heading accuracy; logic configured to determine an applied sensor output to be a single sample of the sensor output data, if the logic to determine whether to average the sensor output data determines that the sensor output data is not to be averaged, and to determine a number of samples of the sensor output data based on the level of noise, the desired heading accuracy and a desired confidence level, and also to determine the applied sensor output to be an average sensor output computed based on the number of samples of the sensor output data, if the logic to determine whether to average the sensor output data determines that the sensor output data is to be averaged; and logic configured to compute the magnetic heading based on the applied sensor output determined by said logic configured to determine an applied sensor output.