Theano pairwise function

It is cheating by using BLAS and being less accurate than other implementations. Is that really cheating? It could be more accurate by centering data before computing all pairs, is that "enough" ? The way to express the looping algorithm from the other implementations in Theano is to write an Op for that, essentially passing the burden of speed along to cython / numba / numpy / julia.