def cross_of(A):
''' n-dimensional cross product on (n-1) vectors in list A '''
D = len(A[0])
N = len(A)
v_res = [0.] * D
for i in xrange(0, D):
for jk in xrange(0, D ** N):
v_ijk = [i] + [(jk/(D ** (N-j-1))) % D for j in xrange(0, N)]
t_res = v__E(v_ijk)
if t_res != 0:
for k in xrange(0, N):
t_res *= A[k][v_ijk[k + 1]]
v_res[i] += t_res
return v_res
def solution_for(A, B):
p = [0. for each in B]
for i in xrange(len(A)):
plane_n = A[i]
plane_d = -B[i]
other_planes_ns = A[:i] + A[i+1:]
projection_vector = cross_of(other_planes_ns)
p = project_by_vector(p, projection_vector, plane_n, plane_d)
return p