title: The dot product of int32 and float32 produces float64 in Theano
body: <p>When I compile the function</p>
  
  <pre><code>x = theano.tensor.imatrix('x')
  y = theano.tensor.fmatrix('y')
  z = x.dot(y)
  f = theano.function([x, y], z)
  </code></pre>
  
  <p>the resulting output is a float64, even when x is of type int32 and y is of type float32. When I compute the same operation where x is a Theano fmatrix of type float32, the resulting matrix is a float32. Why is the smaller bit size not preserved in the former case? In other words, why is the dot product of an int32 and a float32 equal to a float64 instead of float32 in Theano?</p>
  
  <p>I'm using Theano version 0.9.0</p>