import numpy
a = numpy.random.rand(100, 30)*10
b = numpy.random.rand(30, 50)
out1 = numpy.exp(numpy.matmul(numpy.log(a), b))
out = numpy.ones((100, 50))
for i in range(100):
for j in range(50):
for k in range(30):
out[i, j] *= a[i, k]**b[k, j]
print(numpy.abs(out1-out).max())
aW1wb3J0IG51bXB5CgphID0gbnVtcHkucmFuZG9tLnJhbmQoMTAwLCAzMCkqMTAKYiA9IG51bXB5LnJhbmRvbS5yYW5kKDMwLCA1MCkKCm91dDEgPSBudW1weS5leHAobnVtcHkubWF0bXVsKG51bXB5LmxvZyhhKSwgYikpCm91dCA9IG51bXB5Lm9uZXMoKDEwMCwgNTApKQpmb3IgaSBpbiByYW5nZSgxMDApOgogICAgZm9yIGogaW4gcmFuZ2UoNTApOgogICAgICAgIGZvciBrIGluIHJhbmdlKDMwKToKICAgICAgICAgICAgb3V0W2ksIGpdICo9IGFbaSwga10qKmJbaywgal0KCnByaW50KG51bXB5LmFicyhvdXQxLW91dCkubWF4KCkp