Next: , Previous: , Up: Arithmetic   [Contents][Index]

17.4 Sums and Products

: sum (x)
: sum (x, dim)
: sum (…, "native")
: sum (…, "double")
: sum (…, "extra")

Sum of elements along dimension dim.

If dim is omitted, it defaults to the first non-singleton dimension.

The optional "type" input determines the class of the variable used for calculations. If the argument "native" is given, then the operation is performed in the same type as the original argument, rather than the default double type.

For example:

sum ([true, true])
⇒ 2
sum ([true, true], "native")
⇒ true

On the contrary, if "double" is given, the sum is performed in double precision even for single precision inputs.

For double precision inputs, the "extra" option will use a more accurate algorithm than straightforward summation. For single precision inputs, "extra" is the same as "double". Otherwise, "extra" has no effect.

: prod (x)
: prod (x, dim)
: prod (…, "native")
: prod (…, "double")

Product of elements along dimension dim.

If dim is omitted, it defaults to the first non-singleton dimension.

The optional "type" input determines the class of the variable used for calculations. If the argument "native" is given, then the operation is performed in the same type as the original argument, rather than the default double type.

For example:

prod ([true, true])
⇒ 1
prod ([true, true], "native")
⇒ true

On the contrary, if "double" is given, the operation is performed in double precision even for single precision inputs.

: cumsum (x)
: cumsum (x, dim)
: cumsum (…, "native")
: cumsum (…, "double")
: cumsum (…, "extra")

Cumulative sum of elements along dimension dim.

If dim is omitted, it defaults to the first non-singleton dimension. For example:

cumsum ([1, 2; 3, 4; 5, 6])
⇒  1   2
4   6
9  12

See sum for an explanation of the optional parameters "native", "double", and "extra".

: cumprod (x)
: cumprod (x, dim)

Cumulative product of elements along dimension dim.

If dim is omitted, it defaults to the first non-singleton dimension. For example:

cumprod ([1, 2; 3, 4; 5, 6])
⇒  1   2
3   8
15  48

: sumsq (x)
: sumsq (x, dim)

Sum of squares of elements along dimension dim.

If dim is omitted, it defaults to the first non-singleton dimension.

This function is conceptually equivalent to computing

sum (x .* conj (x), dim)

but it uses less memory and avoids calling conj if x is real.