SecreC 2 language  2.8.0 (2023.09)
Language and standard library reference
Functions

Functions

template<domain D :shared3p >
D uint sum (D bool[[1]] vec)
 
template<domain D :shared3p >
D uint8 sum (D uint8[[1]] vec)
 
template<domain D :shared3p >
D uint16 sum (D uint16[[1]] vec)
 
template<domain D :shared3p >
D uint32 sum (D uint32[[1]] vec)
 
template<domain D :shared3p >
D uint sum (D uint[[1]] vec)
 
template<domain D :shared3p >
D int8 sum (D int8[[1]] vec)
 
template<domain D :shared3p >
D int16 sum (D int16[[1]] vec)
 
template<domain D :shared3p >
D int32 sum (D int32[[1]] vec)
 
template<domain D :shared3p >
D int sum (D int[[1]] vec)
 
template<domain D :shared3p >
D float32 sum (D float32[[1]] vec)
 
template<domain D :shared3p >
D float64 sum (D float64[[1]] vec)
 
template<domain D :shared3p >
D fix32 sum (D fix32[[1]] vec)
 
template<domain D :shared3p >
D fix64 sum (D fix64[[1]] vec)
 

Detailed Description

Function for finding the sum of all the elements in a vector.

Note
D - shared3p protection domain
Supported types - bool / uint8 / uint16 / uint32 / uint / int8 / int16 / int32 / int / float32 / float64
We are using a system call for summing vectors as it's very common operation, and the performance overhead of manually summing is in the range of 100 to 200 times slower.
Parameters
vec- a 1-dimensional array
Returns
the sum of all input vector elements
Leakage
None

Function Documentation

◆ sum() [1/13]

D uint sum ( D bool[[1]]  vec)
Note
boolean values are converted to numerical values and then added, for more info click here
Returns
returns the sum of all the elements in the input vector as an uint64 type value

◆ sum() [2/13]

D fix32 sum ( D fix32[[1]]  vec)

◆ sum() [3/13]

D fix64 sum ( D fix64[[1]]  vec)

◆ sum() [4/13]

D float32 sum ( D float32[[1]]  vec)

◆ sum() [5/13]

D float64 sum ( D float64[[1]]  vec)

◆ sum() [6/13]

D int16 sum ( D int16[[1]]  vec)

◆ sum() [7/13]

D int32 sum ( D int32[[1]]  vec)

◆ sum() [8/13]

D int8 sum ( D int8[[1]]  vec)

◆ sum() [9/13]

D int sum ( D int[[1]]  vec)

◆ sum() [10/13]

D uint16 sum ( D uint16[[1]]  vec)

◆ sum() [11/13]

D uint32 sum ( D uint32[[1]]  vec)

◆ sum() [12/13]

D uint8 sum ( D uint8[[1]]  vec)

◆ sum() [13/13]

D uint sum ( D uint[[1]]  vec)