NEURON
cellorder1.cpp File Reference
#include <cstdio>
#include <map>
#include <set>
#include <algorithm>
#include <cstring>
#include "oc/nrnassrt.h"
#include "coreneuron/permute/cellorder.hpp"
#include "coreneuron/network/tnode.hpp"
#include "node_order_optim/node_order_optim.h"

Go to the source code of this file.

Namespaces

 neuron
 In mechanism libraries, cannot use auto const token = nrn_ensure_model_data_are_sorted(); because the return type is incomplete (from include/neuron/model_data.hpp).
 

Typedefs

using neuron::TNI = std::pair< TNode *, int >
 
using neuron::HashCnt = std::map< size_t, std::pair< TNode *, int > >
 
using neuron::TNIVec = std::vector< TNI >
 

Functions

static bool neuron::tnode_earlier (TNode *a, TNode *b)
 Function to order trees by size, hash and nodeindex. More...
 
static bool neuron::ptr_tnode_earlier (TNode *a, TNode *b)
 
static void neuron::tree_analysis (int *parent, int nnode, int ncell, VecTNode &nodevec)
 Perform tree preparation for interleaving strategies. More...
 
static void neuron::node_interleave_order (int ncell, VecTNode &nodevec)
 Naive interleaving strategy (interleave_permute_type == 1) More...
 
static void neuron::admin1 (int ncell, VecTNode &nodevec, int &nwarp, int &nstride, int *&stride, int *&firstnode, int *&lastnode, int *&cellsize)
 
static void neuron::admin2 (int ncell, VecTNode &nodevec, int &nwarp, int &nstride, int *&stridedispl, int *&strides, int *&rootbegin, int *&nodebegin, int *&ncycles)
 Prepare for solve_interleaved2. More...
 
static void neuron::check (VecTNode &)
 
static void neuron::quality (VecTNode &nodevec, size_t max=32)
 
size_t neuron::level_from_root (VecTNode &)
 
size_t neuron::level_from_leaf (VecTNode &)
 
static void neuron::set_cellindex (int ncell, VecTNode &nodevec)
 Set the cellindex to distinguish the different cells. More...
 
static void neuron::set_groupindex (VecTNode &nodevec)
 Initialization of the groupindex (groups) More...
 
static void neuron::ident_statistic (VecTNode &nodevec, size_t ncell)
 
std::vector< int > neuron::node_order (int ncell, int nnode, int *parents, int &nwarp, int &nstride, int *&stride, int *&firstnode, int *&lastnode, int *&cellsize, int *&stridedispl)
 Function that returns a permutation of length nnode. More...
 
static bool neuron::interleave_comp (TNode *a, TNode *b)
 
static size_t neuron::stride_length (size_t begin, size_t end, VecTNode &nodevec)
 

Variables

static size_t neuron::groupsize = 32