array cross product