Tenncor
Classes | Typedefs | Functions
ccur Namespace Reference

Classes

struct  Session
 

Typedefs

using PartGroupsT = std::vector< std::vector< teq::iFunctor * > >
 Groups of functors. More...
 
using OpWeightT = std::unordered_map< size_t, double >
 Map functor opcode to the operation's weight value. More...
 
using SessReqsT = std::vector< std::pair< teq::iOperableFunc *, size_t > >
 
using LSessReqsT = std::list< std::pair< teq::iOperableFunc *, size_t > >
 Same as SessReqsT except as a list. More...
 
using AtomicFulfilMapT = std::unordered_map< teq::iOperableFunc *, std::atomic< long > >
 

Functions

PartGroupsT k_partition (teq::TensptrsT roots, size_t k, OpWeightT weights=OpWeightT())
 Return k groups of graphs under roots given some weight. More...
 

Detailed Description

session.hpp ccur

Purpose: Implement session that runs functor updates concurrently

Typedef Documentation

◆ AtomicFulfilMapT

using ccur::AtomicFulfilMapT = typedef std::unordered_map< teq::iOperableFunc*,std::atomic<long> >

Map operable functors to the number of children updated in any update/update_target call

◆ LSessReqsT

using ccur::LSessReqsT = typedef std::list<std::pair<teq::iOperableFunc*,size_t> >

Same as SessReqsT except as a list.

◆ OpWeightT

using ccur::OpWeightT = typedef std::unordered_map<size_t,double>

Map functor opcode to the operation's weight value.

◆ PartGroupsT

using ccur::PartGroupsT = typedef std::vector<std::vector<teq::iFunctor*> >

Groups of functors.

◆ SessReqsT

using ccur::SessReqsT = typedef std::vector<std::pair<teq::iOperableFunc*,size_t> >

Vector of operable functors and number of unique non-leaf children Functors are ordered by dependency, such that parents of any node always appears after the node in this vector

Function Documentation

◆ k_partition()

PartGroupsT ccur::k_partition ( teq::TensptrsT  roots,
size_t  k,
OpWeightT  weights = OpWeightT() 
)

Return k groups of graphs under roots given some weight.