51 * Merged from branch SPHINX3_5_2_RCI_IRII_BRANCH: 1, Fixed bugs from last check in, lw should be * instead of +, 2, Moved most of the functions from flat_fwd.c and s3_dag.c to here. Things that required specified will be prefixed.
60 * srch.c now support lattice rescoring by rereading the generated lattice in a file. When it is operated, silence cannot be unlinked from the dictionary. This is a hack and its reflected in the code of dag, kbcore and srch. code
69 * Added dag_write_header so that DAG header writer could be shared between 3.x and 3.0. However, because the backtrack pointer structure is different in 3.x and 3.0. The DAG writer still can't be shared yet.
72 * Build a stand-alone wrapper for direct acyclic graph, it is now shared across dag/astar and decode_anytopo. This eliminate about 500 lines of code in decode_anytopo/dag and astar. However, its existence still can't exterminate code duplication between dag/decode_anytopo. That effectively means we have many refactoring to do. Things that are still pretty difficult to merge include dag_search(decode_anytopo/dag) and dag_read (dag/astar).
73 *
74 * Revision 1.2 2005/06/03 06:45:28 archan
75 * 1, Fixed compilation of dag_destroy, dag_dump and dag_build. 2, Changed RARG to REQARG.
76 *
77 * Revision 1.1 2005/06/03 05:46:19 archan
78 * Refactoring across dag/astar/decode_anytopo. Code is not fully tested.
79 * There are several changes I have done to refactor the code across
80 * dag/astar/decode_anyptop. A new library called dag.c is now created
81 * to include all routines that are shared by the three applications that
82 * required graph operations.
83 * 1, dag_link is now shared between dag and decode_anytopo. Unfortunately, astar was using a slightly different version of dag_link. At this point, I could only rename astar'dag_link to be astar_dag_link.
84 * 2, dag_update_link is shared by both dag and decode_anytopo.
85 * 3, hyp_free is now shared by misc.c, dag and decode_anytopo
86 * 4, filler_word will not exist anymore, dict_filler_word was used instead.
87 * 5, dag_param_read were shared by both dag and astar.
88 * 6, dag_destroy are now shared by dag/astar/decode_anytopo. Though for some reasons, even the function was not called properly, it is still compiled in linux. There must be something wrong at this point.
89 * 7, dag_bestpath and dag_backtrack are now shared by dag and decode_anytopo. One important thing to notice here is that decode_anytopo's version of the two functions actually multiply the LM score or filler penalty by the language weight. At this point, s3_dag is always using lwf=1.
90 * 8, dag_chk_linkscr is shared by dag and decode_anytopo.
91 * 9, decode_anytopo nows supports another three options -maxedge, -maxlmop and -maxlpf. Their usage is similar to what one could find dag.
92 *
93 * Notice that the code of the best path search in dag and that of 2-nd
94 * stage of decode_anytopo could still have some differences. It could
95 * be the subtle difference of handling of the option -fudge. I am yet
96 * to know what the true cause is.
97 *
98 * Some other small changes include
99 * -removal of startwid and finishwid asstatic variables in s3_dag.c. dict.c now hide these two variables.
100 *
101 * There are functions I want to merge but I couldn't and it will be
102 * important to say the reasons.
103 * i, dag_remove_filler_nodes. The version in dag and decode_anytopo
104 * work slightly differently. The decode_anytopo's one attached a dummy
105 * predecessor after removal of the filler nodes.
106 * ii, dag_search.(s3dag_dag_search and s3flat_fwd_dag_search) The handling of fudge is differetn. Also, decode_anytopo's one now depend on variable lattice.
107 * iii, dag_load, (s3dag_dag_load and s3astar_dag_load) astar and dag seems to work in a slightly different, one required removal of arcs, one required bypass the arcs. Don't understand them yet.
108 * iv, dag_dump, it depends on the variable lattice.