force larger output dtype to avoid overflow on 32 bit