function _cross(x, y) {
    var highestDimension = Math.max(array.size(x).length, array.size(y).length);
    x = array.squeeze(x);
    y = array.squeeze(y);
    var xSize = array.size(x);
    var ySize = array.size(y);

    if (xSize.length !== 1 || ySize.length !== 1 || xSize[0] !== 3 || ySize[0] !== 3) {
      throw new RangeError('Vectors with length 3 expected ' + '(Size A = [' + xSize.join(', ') + '], B = [' + ySize.join(', ') + '])');
    }

    var product = [subtract(multiply(x[1], y[2]), multiply(x[2], y[1])), subtract(multiply(x[2], y[0]), multiply(x[0], y[2])), subtract(multiply(x[0], y[1]), multiply(x[1], y[0]))];

    if (highestDimension > 1) {
      return [product];
    } else {
      return product;
    }
  }
Calculate the cross product for two arrays
@param {Array} x  First vector
@param {Array} y  Second vector
@returns {Array} Returns the cross product of x and y
@private