code: function hilbertIndexInverse(dim, index, options) { // :: Int -> Int -> [Int, Int, ..]
      options = options || {}
      var entry = options.entry || 0,
          direction = options.direction || 0,
          m = curvePrecision(index, dim),
          p = Array.apply(null, new Array(dim)).map(Number.prototype.valueOf, 0)
  
      for (var i = m - 1; i >= 0; i--) {
          var mask = 1 << (i * dim), bits = 0, code
  
          for (var k = dim - 1; k >= 0; k--) {
              if (index & (mask << k)) {
                  bits |= (1 << k)
              }
          }
  
          code = grayInverseTransform(entry, direction, grayCode(bits), dim)
          for (var k = 0; k < dim; k++) {
              if (code & (1 << k)) {
                  p[k] |= (1 << i)
              }
          }
  
          entry = entry ^ bitwise.rotateLeft(entrySequence(bits), dim, 0, direction + 1)
          direction = (direction + directionSequence(bits, dim) + 1) % dim
      }
      return p
  }
docs: Returns cardinal point given Hilbert index