Loading...
Searching...
No Matches
PrefixSum.h File Reference

Multi-threaded implementations of inclusive prefix sum. More...

`#include "Range.h"`
`#include <vector>`
`#include <functional>`

Go to the source code of this file.

## Namespaces

namespace | nanovdb
| Convert a base-pointer to an openvdb grid, denoted srcGrid, to a nanovdb grid of the same type, e.g. float -> float or openvdb::Vec3f -> nanovdb::Vec3f.

## Functions

template<typename T , typename OpT = std::plus<T>>
T | prefixSum (std::vector< T > &vec, bool threaded=true, OpT op=OpT())
| Computes inclusive prefix sum of a vector.
template<typename T , typename Op >
void | inclusiveScan (T *array, size_t size, const T &identity, bool threaded, Op op)
| An inclusive scan includes in[i] when computing out[i].

## Detailed Description

Multi-threaded implementations of inclusive prefix sum.

Author
  Ken Museth

Date
  March 12, 2023

Note
  An exclusive prefix sum is simply an array starting with zero followed by the elements in the inclusive prefix sum, minus its last entry which is the sum of all the input elements.