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. <EOS>