In computer science, the prefix sum, cumulative sum, inclusive scan, or simply scan of a sequence of numbers x0, x1, x2, ... is a second sequence of numbers y0, y1, y2, ..., the sums of prefixes (running totals) of the input sequence:
y0 = x0
y1 = x0 + x1
y2 = x0 + x1+ x2
...
For instance, the prefix sums of the natural numbers are the triangular numbers:
input numbers
1
2
3
4
5
6
...
prefix sums
1
3
6
10
15
21
...
Prefix sums are trivial to compute in sequential models of computation, by using the formula yi = yi − 1 + xi to compute each output value in sequence order. However, despite their ease of computation, prefix sums are a useful primitive in certain algorithms such as counting sort,[1][2]
and they form the basis of the scan higher-order function in functional programming languages. Prefix sums have also been much studied in parallel algorithms, both as a test problem to be solved and as a useful primitive to be used as a subroutine in other parallel algorithms.[3][4][5]
Abstractly, a prefix sum requires only a binary associative operator ⊕, making it useful for many applications from calculating well-separated pair decompositions of points to string processing.[6][7]
Mathematically, the operation of taking prefix sums can be generalized from finite to infinite sequences; in that context, a prefix sum is known as a partial sum of a series. Prefix summation or partial summation form linear operators on the vector spaces of finite or infinite sequences; their inverses are finite difference operators.
^Cormen, Thomas H.; Leiserson, Charles E.; Rivest, Ronald L.; Stein, Clifford (2001), "8.2 Counting Sort", Introduction to Algorithms (2nd ed.), MIT Press and McGraw-Hill, pp. 168–170, ISBN 0-262-03293-7.
^Cole, Richard; Vishkin, Uzi (1986), "Deterministic coin tossing with applications to optimal parallel list ranking", Information and Control, 70 (1): 32–53, doi:10.1016/S0019-9958(86)80023-7
^Cite error: The named reference lf80 was invoked but never defined (see the help page).
^Cite error: The named reference tv85 was invoked but never defined (see the help page).
^Lakshmivarahan, S.; Dhall, S.K. (1994), Parallelism in the Prefix Problem, Oxford University Press, ISBN 0-19508849-2.
^Blelloch, Guy (2011), Prefix Sums and Their Applications (Lecture Notes)(PDF), Carnegie Mellon University.
^Callahan, Paul; Kosaraju, S. Rao (1995), "A Decomposition of Multi-Dimensional Point Sets with Applications to k-Nearest-Neighbors and n-Body Potential Fields", Journal of the ACM, 42 (1): 67–90, doi:10.1145/200836.200853, S2CID 1818562.
In computer science, the prefixsum, cumulative sum, inclusive scan, or simply scan of a sequence of numbers x0, x1, x2, ... is a second sequence of numbers...
with a butterfly algorithm achieves the same asymptotic runtime. The prefix-sum or scan operation is used to collect data or partial results from different...
is a data structure that can efficiently update values and calculate prefixsums in an array of values. This structure was proposed by Boris Ryabko in...
algebra Minkowski addition, a sum of two subsets of a vector space Power sum symmetric polynomial, in commutative algebra Prefixsum, in computing Pushout (category...
the number of objects that possess distinct key values, and applying prefixsum on those counts to determine the positions of each key value in the output...
do global build prefixsum over size of Q // get offsets and total number of vertices in this step offset = nrOfVerticesProcessed + sum(Qi, i = 0 to j...
A prefix code is a type of code system distinguished by its possession of the "prefix property", which requires that there is no whole code word in the...
In computer science, a segmented scan is a modification of the prefixsum with an equal-sized array of flag bits to denote segment boundaries on which...
of the following problems can be solved in O(Prefixsum(n)) (the time it takes to solve the prefixsum problem in parallel for a list of n items): Classifying...
Särkkä (2021). The filter solution can then be retrieved by the use of a prefixsum algorithm which can be efficiently implemented on GPU. This reduces the...
printed text or printed sheet music Port scanner, in computer networking Prefixsum, an operation on lists that is also known as the scan operator Raster...
The partitioning step is accomplished through the use of a parallel prefixsum algorithm to compute an index for each array element in its section of...
series Card Sorters Other distribution sorts Kirkpatrick-Reisch sorting Prefixsum US 395781 and UK 327 Donald Knuth. The Art of Computer Programming,...
including his work on the carpenter's rule problem, hinged dissection, prefixsum data structures, competitive analysis of binary search trees, graph minors...
product of the outcomes of several bets in sequence. Running average Prefixsum Programmed Data Processor-1 Manual (PDF). Maynard, Massachusetts: Digital...
partitioning algorithm (PEM_DIST_SORT) uses a PEM prefixsum algorithm to calculate the prefixsum with the optimal O(NPB+logP){\displaystyle O\left({\frac...
ISO 2108 (the 9-digit SBN code can be converted to a 10-digit ISBN by prefixing it with a zero). Privately published books sometimes appear without an...
turning all prefixes into suffixes: mu-na-an-sum "he gave (something) to him", mu-na-e-sum-mu-un-ze2-en "you (plur.) gave (something) to him" – sum-mu-na-ab...
cyclic prefix refers to the prefixing of a symbol with a repetition of the end. The receiver is typically configured to discard the cyclic prefix samples...
mol/L = 10−3 M = 1 mM = 1 mmol/L. The SI prefix "mega" (symbol M) has the same symbol. However, the prefix is never used alone, so "M" unambiguously...
operations ensures that the operation can be parallelized by employing a prefixsum or similar algorithm, in order to utilize multiple cores or processors...