Changeset acbabee for src/dgp/sgraph.cc


Ignore:
Timestamp:
12/17/14 12:13:11 (10 years ago)
Author:
Tomasz Obrebski <obrebski@…>
Branches:
master
Children:
854bece
Parents:
d484a32
git-author:
Tomasz Obrebski <obrebski@…> (12/17/14 12:10:45)
git-committer:
Tomasz Obrebski <obrebski@…> (12/17/14 12:13:11)
Message:

many changes, mainly dgp1 algorithm

File:
1 edited

Legend:

Unmodified
Added
Removed
  • src/dgp/sgraph.cc

    rd484a32 racbabee  
    1 #include "global.hh" 
    21#include "sgraph.hh" 
    32#include "grammar.hh" 
     
    1615  newnode.mnode=mnodeind; 
    1716 
    18   for(vector<int>::iterator pm=mgraph[newnode.mnode].pred.begin(); pm!=mgraph[newnode.mnode].pred.end(); ++pm) 
    19     for(vector<int>::iterator ps=mgraph[*pm].snodes.begin(); ps!=mgraph[*pm].snodes.end(); ++ps) 
    20       if(nodes[*ps].in_LH) 
    21       { 
    22         newnode.LV.set(*ps); 
    23         if(nodes[*ps].saturated()) newnode.LV |= nodes[*ps].LH; 
    24       } 
     17  // for(vector<int>::iterator pm=mgraph[newnode.mnode].pred.begin(); pm!=mgraph[newnode.mnode].pred.end(); ++pm) 
     18  //   for(vector<int>::iterator ps=mgraph[*pm].snodes.begin(); ps!=mgraph[*pm].snodes.end(); ++ps) 
     19  //     if(nodes[*ps].in_LH) 
     20  //     { 
     21  //       newnode.LV.set(*ps); 
     22  //       if(nodes[*ps].saturated()) newnode.LV |= nodes[*ps].LH; 
     23  //     } 
    2524 
    2625  mgraph[newnode.mnode].snodes.push_back(lastnodeind()); 
    2726 
    28   newnode.in_LH=true; 
     27  // newnode.in_LH=true; 
    2928 
    30   newnode.edge.push_back(lastnodeind()); 
     29  // newnode.edge.push_back(lastnodeind()); 
    3130 
    32   newnode.edge_contains_self = true ; 
     31  newnode.edge.insert_self(); 
    3332 
    3433  return lastnodeind(); 
     
    5554//==================================================================================================== 
    5655 
    57 int SGraph::clone(int ancind, NodeProp newprop) 
     56int SGraph::clone(int ancind, NodeProp newprop, Edge edge) 
    5857{ 
    5958  SNode &newnode=makenewnode(); 
    6059  SNode &ancnode = nodes[ancind]; 
    6160 
    62   newnode.prop=newprop; 
    63   newnode.mnode=ancnode.mnode; 
     61  newnode.prop = newprop; 
     62  newnode.edge = edge; 
     63  newnode.mnode = ancnode.mnode; 
    6464  mgraph[newnode.mnode].snodes.push_back(lastnodeind()); 
    6565 
     
    9090{ 
    9191  if(dir==0) 
    92     fprintf(f,"%s  %s:%d <-- %d\n", msg, role.str(), dep, head); 
     92    fprintf(f,"%s\t%d <-- %d\t%s\n", msg, dep, head, role.str()); 
    9393  else 
    94     fprintf(f,"%s  %s:%d --> %d\n", msg, role.str(), head, dep); 
     94    fprintf(f,"%s\t%d --> %d\t%s\n", msg, head, dep, role.str()); 
    9595} 
    9696 
     
    172172{ 
    173173  char *buf0 = buf; 
    174   buf+=sprintf(buf,"%-10s",pref); 
     174  buf+=sprintf(buf,"%-8s",pref); 
    175175  buf+=sprintf(buf,"%d.%s",n,form(n)); 
    176176  buf+=sprintf(buf,";"); 
    177177  buf+=sprintf(buf,"%s ",cat(n).str()); 
    178178  while(buf-buf0<40) buf+=sprintf(buf," "); 
    179   buf+=sprint_node(buf,n,anc,HEADS|DEPS|SETS|CONSTRAINTS); 
     179  buf+=sprint_node(buf,n,anc,HEADS|DEPS|CONSTRAINTS); 
    180180   
    181181  buf+=sprintf(buf,"/"); 
    182   for(vector<int>::iterator e = nodes[n].edge.begin(); e != nodes[n].edge.end(); e++ ) 
     182  if(nodes[n].edge.self()) 
     183    buf += sprintf(buf,"* "); 
     184  for(list<int>::iterator e = nodes[n].edge.others().begin(); e != nodes[n].edge.others().end(); e++ ) 
    183185    buf += sprintf(buf,"%d ", *e); 
    184186 
Note: See TracChangeset for help on using the changeset viewer.