dot product, nice pointer conversion