version 16.0 mata: real matrix blncdtree(real scalar nnode) { /* Return a balanced search tree with n nnode nodes, defined as a nnodes*2 matrix temporarily named tree, such that tree[i,1] is the left daughter row index of row i and tree[i,2] is the right daughter index of row i. nnode is the number of nodes. *! Author: Roger Newson *! Date: 11 August 2005 */ real matrix tree /* Conformability checks */ if(nnode<0) { exit(error(3200)) } /* Create and return tree using _blncdtree */ tree=J(trunc(nnode),2,0) if(rows(tree)>=1) { _blncdtree(tree,1,rows(tree)) } return(tree) } end