Reticências transmitindo em numpy.einsum

Estou tendo um problema para entender porque o seguinte não funciona:

Eu tenho um arrayprefactor que pode ser tridimensional ou tridimensional. Eu tenho um arraydipolos que tem quatro dimensões. As três primeiras dimensões dodipolos coincidir com as últimas três dimensões deprefactor.

Como eu não sei a forma deprefactor, Estou usando uma elipse para explicar as três dimensões opcionais emprefactor:

numpy.einsum('...lmn,lmno->...o', prefactor, dipoles)

(No exemplo aqui, prefactor.shape é (1, 1, 1, 160, 160, 128) e dipoles.shape é (160, 160, 128, 3). Ao executar, recebo o erro:

o operando 1 não tinha dimensões suficientes para corresponder à transmissão e não pôde ser estendido porque os índices de soma de einstein foram especificados no início e no final

Isso funciona, no entanto, quando adiciono reticências ao segundo termo também:

numpy.einsum('...lmn,...lmno->...o', prefactor, dipoles)

Só que eu não entendo porque, porque não deveria haver necessidade de reticências. Alguém sabe o que está acontecendo aqui?

A mesma pergunta foi feita emhttp://comments.gmane.org/gmane.comp.python.numeric.general/53705 mas não há resposta satisfatória ainda.

questionAnswers(1)

yourAnswerToTheQuestion