do not block in AsyncTask
inline dot product