Template Function exafmm_t::build_tree(Bodies<T>&, Bodies<T>&, NodePtrs<T>&, NodePtrs<T>&, FmmBase<T>&, const Keys&)

Function Documentation

template<typename T>
Nodes<T> exafmm_t::build_tree(Bodies<T> &sources, Bodies<T> &targets, NodePtrs<T> &leafs, NodePtrs<T> &nonleafs, FmmBase<T> &fmm, const Keys &leafkeys = Keys())

Recursively build the tree and return the tree as a vector of nodes.

Template Parameters

T – Target’s value type (real or complex)

Parameters
  • sources – Vector of sources

  • targets – Vector of targets

  • leafs – Vector of pointers of leaf nodes

  • nonleafs – Vector of pointers of nonleaf nodes

  • fmm – FMM instance

  • leafkeys – Vector of leaf Hilbert keys of each level, only used during 2:1 tree balancing

Returns

Vector of nodes that represents the tree