       c*Math.atan2(y,x),
       c*Math.asin z/r]
 
-  angles.map(stepFunc)
+  return angles.map(stepFunc)
 
 combinedErrors = (sv, ax, opts={})->
   func = (type)->

  # Get a single level of planar errors (or the
  # plane's nominal value) as a girdle
  n = opts.n or 100
  sheet = opts.sheet or 'nominal'
  degrees = opts.degrees or false
  axes = identity unless axes?
  opts.traditionalLayout ?= true
  upperHemisphere = opts.upperHemisphere or true

  step = 2*Math.PI/(n-1)
  angles = (i*step for i in [0...n])

  v = axesCovariance.map Math.sqrt
  s = (v[2]/i for i in v)
  axes = transpose(axes)

  sdot = (a,b)->

  c = if degrees then 180/Math.PI else 1

  c1 = 1
  if upperHemisphere
    c1 *= -1

  stepFunc = (angle)->

    f = [Math.cos(angle)*s[0],
         Math.sin(angle)*s[1],
         c1*s[2]]

    e = [
      -f[2]*Math.cos(angle)
      -f[2]*Math.sin(angle)
      norm([f[0],f[1]])
    ]

    d = (sdot(e,i) for i in axes)
    r = norm(d)
