All three implements the scan algorithm. The difference between partial_sum and inclusive_scan is that partial_sum guarantee evaluation order, so it can get deterministic result even with non-associative binary operator. On the other hand, partial_sum is not parallelable because of this property.