code: def AraiCurvature(x=x,y=y):
      
      # makes sure all values are floats, then norms them by largest value
      X = numpy.array(list(map(float, x)))
      X = old_div(X, max(X))
      Y = numpy.array(list(map(float, y)))
      Y = old_div(Y, max(Y))
      XY = numpy.array(list(zip(X, Y)))
                    
      #Provide the intitial estimate
      E1=TaubinSVD(XY);
  
      #Determine the iterative solution
      E2=LMA(XY, E1);
  
      estimates=[E2[2], E2[0], E2[1]];
      
      best_a = E2[0]
      best_b = E2[1]
      best_r = E2[2]
  
      if best_a <= numpy.mean(X) and best_b <= numpy.mean(Y):
          k = old_div(-1.,best_r)
      else:
          k = old_div(1.,best_r)
  
      SSE = get_SSE(best_a, best_b, best_r, X, Y)
      return k, best_a, best_b, SSE
docs: input: list of x points, list of y points
      output: k, a, b, SSE.  curvature, circle center, and SSE
      Function for calculating the radius of the best fit circle to a set of 
      x-y coordinates.
      Paterson, G. A., (2011), A simple test for the presence of multidomain
      behaviour during paleointensity experiments, J. Geophys. Res., in press,
      doi: 10.1029/2011JB008369