moved tensor product from numerics.tangent_linear to numerics