tries.c File Reference

#include "xsb_config.h"
#include "xsb_debug.h"
#include <stdio.h>
#include <stdlib.h>
#include "debugs/debug_tries.h"
#include "auxlry.h"
#include "cell_xsb.h"
#include "inst_xsb.h"
#include "psc_xsb.h"
#include "heap_xsb.h"
#include "flags_xsb.h"
#include "deref.h"
#include "memory_xsb.h"
#include "register.h"
#include "binding.h"
#include "trie_internals.h"
#include "macro_xsb.h"
#include "choice.h"
#include "cinterf.h"
#include "error_xsb.h"
#include "tr_utils.h"
#include "rw_lock.h"
#include "thread_xsb.h"
#include "debug_xsb.h"
#include "subp.h"
#include "term_psc_xsb_i.h"
#include "ptoc_tag_xsb_i.h"

Defines

#define safe_assign(ArrayNam, Index, Value, ArraySz)
#define pop_addr   Addr_Stack[--addr_stack_pointer]
#define push_addr(X)
#define pop_term   term_stack[term_stackptr--]
#define push_term(T)
#define simple_table_undo_bindings
#define StandardizeAndTrailVariable(addr, n)
#define IsInsibling(wherefrom, count, Found, item, TrieType)
#define one_node_chk_ins(Found, item, TrieType)
#define rec_macro_make_heap_term(Macro_addr)
#define macro_make_heap_term(ataddr, ret_val, dummy_addr)
#define recvariant_trie(flag, TrieType)
#define recvariant_trie_ans_subsf(flag, TrieType)
#define recvariant_call(flag, TrieType, xtemp1)

Functions

void init_trie_aux_areas (CTXTdecl)
void free_trie_aux_areas (CTXTdecl)
BTNptr new_btn (CTXTdeclc int trie_t, int node_t, Cell symbol, BTNptr parent, BTNptr sibling)
TSTNptr new_tstn (CTXTdeclc int trie_t, int node_t, Cell symbol, TSTNptr parent, TSTNptr sibling)
BTNptr newBasicTrie (CTXTdeclc Cell symbol, int trie_type)
BTNptr newBasicAnswerTrie (CTXTdeclc Cell symbol, CPtr Paren, int trie_type)
void hashify_children (CTXTdeclc BTNptr parent, int trieType)
void expand_trie_ht (BTHTptr pHT)
static void follow_par_chain (CTXTdeclc BTNptr pLeaf)
BTNptr get_next_trie_solution (ALNptr *NextPtrPtr)
BTNptr variant_answer_search (CTXTdeclc int sf_size, int attv_num, CPtr cptr, VariantSF subgoal_ptr, xsbBool *flagptr)
void undo_answer_bindings (CTXTdecl)
BTNptr delay_chk_insert (CTXTdeclc int arity, CPtr cptr, CPtr *hook)
static void load_solution_from_trie (CTXTdeclc int arity, CPtr cptr)
static void bottomupunify (CTXTdeclc Cell term, BTNptr Root, BTNptr Leaf)
xsbBool bottom_up_unify (CTXTdecl)
void load_solution_trie (CTXTdeclc int arity, int attv_num, CPtr cptr, BTNptr TriePtr)
void load_delay_trie (CTXTdeclc int arity, CPtr cptr, BTNptr TriePtr)
void variant_call_search (CTXTdeclc TabledCallInfo *call_info, CallLookupResults *results)
static void remove_calls_and_returns (CTXTdeclc VariantSF CallStrPtr)
void remove_incomplete_tries (CTXTdeclc CPtr bottom_parameter)
BTNptr whole_term_chk_ins (CTXTdeclc Cell term, BTNptr *hook, int *flagptr)
BTNptr one_term_chk_ins (CTXTdeclc CPtr termptr, BTNptr root, int *flagptr)
bytetrie_get_returns (CTXTdeclc VariantSF sf, Cell retTerm)
bytetrie_get_calls (CTXTdecl)
Cell get_lastnode_cs_retskel (CTXTdeclc Cell callTerm)
ALNptr empty_return (CTXTdeclc VariantSF subgoal)

Variables

long subg_chk_ins
long subg_inserts
long ans_chk_ins
long ans_inserts
int num_heap_term_vars
CPtrvar_addr
int var_addr_arraysz
Cell VarEnumerator [NUM_TRIEVARS]
Cell TrieVarBindings [NUM_TRIEVARS]
int global_num_vars
static CPtr VarEnumerator_trail [NUM_TRIEVARS]
static CPtrVarEnumerator_trail_top
char * trie_node_type_table []
char * trie_trie_type_table []
static int addr_stack_pointer = 0
static CPtrAddr_Stack
static int addr_stack_size = DEFAULT_ARRAYSIZ
static int term_stackptr = -1
static Cellterm_stack
static long term_stacksize = DEFAULT_ARRAYSIZ
static BasicTrieNode dummy_ans_node = {{0,1,0,0},NULL,NULL,NULL,0}
static int AnsVarCtr
char * TrieSMNameTable []
Structure_Manager smTableBTN
Structure_Manager smTableBTHT
Structure_Manager smAssertBTN
Structure_Manager smAssertBTHT
Structure_Manager smTSTN
Structure_Manager smTSTHT
Structure_Manager smTSIN
Structure_ManagersmBTN = &smTableBTN
Structure_ManagersmBTHT = &smTableBTHT
BTNptrSet_ArrayPtr

Define Documentation

#define IsInsibling wherefrom,
count,
Found,
item,
TrieType   ) 
 

Value:

{                                                                       \
  LocalNodePtr = wherefrom;                                             \
  while (LocalNodePtr && (BTN_Symbol(LocalNodePtr) != item)) {          \
    LocalNodePtr = BTN_Sibling(LocalNodePtr);                           \
    count++;                                                            \
  }                                                                     \
  if ( IsNULL(LocalNodePtr) ) {                                         \
    Found = 0;                                                          \
    New_BTN(LocalNodePtr,TrieType,INTERIOR_NT,item,Paren,wherefrom);    \
    count++;                                                            \
    wherefrom = LocalNodePtr;  /* hook the new node into the trie */    \
  }                                                                     \
  Paren = LocalNodePtr;                                                 \
}

#define macro_make_heap_term ataddr,
ret_val,
dummy_addr   ) 
 

#define one_node_chk_ins Found,
item,
TrieType   ) 
 

#define pop_addr   Addr_Stack[--addr_stack_pointer]
 

#define pop_term   term_stack[term_stackptr--]
 

#define push_addr X   ) 
 

Value:

#define push_term  ) 
 

Value:

#define rec_macro_make_heap_term Macro_addr   ) 
 

#define recvariant_call flag,
TrieType,
xtemp1   ) 
 

#define recvariant_trie flag,
TrieType   ) 
 

#define recvariant_trie_ans_subsf flag,
TrieType   ) 
 

#define safe_assign ArrayNam,
Index,
Value,
ArraySz   ) 
 

Value:

{\
   if (Index >= ArraySz) {\
     trie_expand_array(CPtr,ArrayNam,ArraySz,Index,"var_addr");\
   }\
   ArrayNam[Index] = Value;\
}

#define simple_table_undo_bindings
 

Value:

#define StandardizeAndTrailVariable addr,
 ) 
 

Value:


Function Documentation

xsbBool bottom_up_unify CTXTdecl   ) 
 

static void bottomupunify CTXTdeclc Cell  term,
BTNptr  Root,
BTNptr  Leaf
[static]
 

BTNptr delay_chk_insert CTXTdeclc int  arity,
CPtr  cptr,
CPtr hook
 

ALNptr empty_return CTXTdeclc VariantSF  subgoal  ) 
 

void expand_trie_ht BTHTptr  pHT  ) 
 

static void follow_par_chain CTXTdeclc BTNptr  pLeaf  )  [static]
 

void free_trie_aux_areas CTXTdecl   ) 
 

Cell get_lastnode_cs_retskel CTXTdeclc Cell  callTerm  ) 
 

BTNptr get_next_trie_solution ALNptr NextPtrPtr  ) 
 

void hashify_children CTXTdeclc BTNptr  parent,
int  trieType
 

void init_trie_aux_areas CTXTdecl   ) 
 

void load_delay_trie CTXTdeclc int  arity,
CPtr  cptr,
BTNptr  TriePtr
 

static void load_solution_from_trie CTXTdeclc int  arity,
CPtr  cptr
[static]
 

void load_solution_trie CTXTdeclc int  arity,
int  attv_num,
CPtr  cptr,
BTNptr  TriePtr
 

BTNptr new_btn CTXTdeclc int  trie_t,
int  node_t,
Cell  symbol,
BTNptr  parent,
BTNptr  sibling
 

TSTNptr new_tstn CTXTdeclc int  trie_t,
int  node_t,
Cell  symbol,
TSTNptr  parent,
TSTNptr  sibling
 

BTNptr newBasicAnswerTrie CTXTdeclc Cell  symbol,
CPtr  Paren,
int  trie_type
 

BTNptr newBasicTrie CTXTdeclc Cell  symbol,
int  trie_type
 

BTNptr one_term_chk_ins CTXTdeclc CPtr  termptr,
BTNptr  root,
int flagptr
 

static void remove_calls_and_returns CTXTdeclc VariantSF  CallStrPtr  )  [static]
 

void remove_incomplete_tries CTXTdeclc CPtr  bottom_parameter  ) 
 

byte* trie_get_calls CTXTdecl   ) 
 

byte* trie_get_returns CTXTdeclc VariantSF  sf,
Cell  retTerm
 

void undo_answer_bindings CTXTdecl   ) 
 

BTNptr variant_answer_search CTXTdeclc int  sf_size,
int  attv_num,
CPtr  cptr,
VariantSF  subgoal_ptr,
xsbBool flagptr
 

void variant_call_search CTXTdeclc TabledCallInfo call_info,
CallLookupResults results
 

BTNptr whole_term_chk_ins CTXTdeclc Cell  term,
BTNptr hook,
int flagptr
 


Variable Documentation

CPtr* Addr_Stack [static]
 

int addr_stack_pointer = 0 [static]
 

int addr_stack_size = DEFAULT_ARRAYSIZ [static]
 

long ans_chk_ins
 

long ans_inserts
 

int AnsVarCtr [static]
 

BasicTrieNode dummy_ans_node = {{0,1,0,0},NULL,NULL,NULL,0} [static]
 

int global_num_vars
 

int num_heap_term_vars
 

BTNptr* Set_ArrayPtr
 

Structure_Manager smAssertBTHT
 

Initial value:

 SM_InitDecl(BasicTrieHT, BTHTs_PER_BLOCK,
                                             "Basic Trie Hash Table")

Structure_Manager smAssertBTN
 

Initial value:

Structure_Manager* smBTHT = &smTableBTHT
 

Structure_Manager* smBTN = &smTableBTN
 

Structure_Manager smTableBTHT
 

Initial value:

 SM_InitDecl(BasicTrieHT, BTHTs_PER_BLOCK,
                                            "Basic Trie Hash Table")

Structure_Manager smTableBTN
 

Initial value:

Structure_Manager smTSIN
 

Initial value:

 SM_InitDecl(TS_IndexNode, TSINs_PER_BLOCK,
                                            "Time-Stamp Indexing Node")

Structure_Manager smTSTHT
 

Initial value:

 SM_InitDecl(TST_HashTable, TSTHTs_PER_BLOCK,
                                            "Time-Stamped Trie Hash Table")

Structure_Manager smTSTN
 

Initial value:

 SM_InitDecl(TS_TrieNode, TSTNs_PER_BLOCK,
                                            "Time-Stamped Trie Node")

long subg_chk_ins
 

long subg_inserts
 

Cell* term_stack [static]
 

int term_stackptr = -1 [static]
 

long term_stacksize = DEFAULT_ARRAYSIZ [static]
 

char* trie_node_type_table[]
 

Initial value:

 {"interior_nt","hashed_interior_nt","leaf_nt",
                           "hashed_leaf_nt","hash_header_nt","undefined",
                           "undefined","undefined","trie_root_nt"}

char* trie_trie_type_table[]
 

Initial value:

 {"call_trie_tt","basic_answer_trie_tt",
                                "ts_answer_trie_tt","delay_trie_tt",
                                "assert_trie_tt","intern_trie_tt"
}

char* TrieSMNameTable[]
 

Initial value:

 {"Basic Trie Node (Private)",
                   "Basic Trie Hash Table (Private)"}

Cell TrieVarBindings[NUM_TRIEVARS]
 

CPtr* var_addr
 

int var_addr_arraysz
 

Cell VarEnumerator[NUM_TRIEVARS]
 

CPtr VarEnumerator_trail[NUM_TRIEVARS] [static]
 

CPtr* VarEnumerator_trail_top [static]
 


Generated on Wed Jul 26 13:26:54 2006 for XSB by  doxygen 1.4.5