Data Structures
gfsmArcIndex.h File Reference

Arc (transition) index utilities. More...

#include <gfsmArcIter.h>
#include <gfsmArcIndex.hi>
Include dependency graph for gfsmArcIndex.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Data Structures

struct  gfsmArcTableIndex
 Basic type for dedicated arc storage state-based arc index. More...
struct  gfsmArcRange
 Type for searching and iterating over arcs in a gfsmArcTable. More...

Functions

gfsmArcTableIndex
static gfsmArcTableIndexgfsm_arc_table_index_new (void)
static gfsmArcTableIndexgfsm_arc_table_index_sized_new (gfsmStateId n_states, guint n_arcs)
static void gfsm_arc_table_index_resize (gfsmArcTableIndex *tab, gfsmStateId n_states, guint n_arcs)
static gfsmStateId gfsm_arc_table_index_n_states (gfsmArcTableIndex *tabx)
static guint gfsm_arc_table_index_n_arcs (gfsmArcTableIndex *tabx)
gfsmArcTableIndexgfsm_arc_table_index_copy (gfsmArcTableIndex *dst, gfsmArcTableIndex *src)
static gfsmArcTableIndexgfsm_arc_table_index_clone (gfsmArcTableIndex *src)
static void gfsm_arc_table_index_free (gfsmArcTableIndex *tabx)
gfsmArcTableIndexgfsm_automaton_to_arc_table_index (gfsmAutomaton *fsm, gfsmArcTableIndex *tabx)
void gfsm_arc_table_index_sort_with_data (gfsmArcTableIndex *tabx, GCompareDataFunc compare_func, gpointer data)
static void gfsm_arc_table_index_sort_bymask (gfsmArcTableIndex *tabx, gfsmArcCompMask m, gfsmSemiring *sr)
static guint gfsm_arc_table_index_out_degree (gfsmArcTableIndex *tabx, gfsmStateId qid)
gboolean gfsm_arc_table_index_write_bin_handle (gfsmArcTableIndex *tabx, gfsmIOHandle *ioh, gfsmError **errp)
gboolean gfsm_arc_table_index_read_bin_handle (gfsmArcTableIndex *tabx, gfsmIOHandle *ioh, gfsmError **errp)
gfsmArcRange
static void gfsm_arcrange_open_table_index (gfsmArcRange *range, gfsmArcTableIndex *tabx, gfsmStateId qid)
static void gfsm_arcrange_close (gfsmArcRange *range)
static gboolean gfsm_arcrange_ok (gfsmArcRange *range)
static gfsmArcgfsm_arcrange_arc (gfsmArcRange *range)
static void gfsm_arcrange_next (gfsmArcRange *range)

gfsmReverseArcIndex

#define gfsm_automaton_reverse_arc_index   gfsm_automaton_to_reverse_arc_index
typedef GPtrArray gfsmReverseArcIndex
 Reverse arc-index type.
static gfsmReverseArcIndexgfsm_reverse_arc_index_new (void)
static gfsmReverseArcIndexgfsm_reverse_arc_index_sized_new (gfsmStateId n_states)
gfsmReverseArcIndexgfsm_automaton_to_reverse_arc_index (gfsmAutomaton *fsm, gfsmReverseArcIndex *rarcs)
void gfsm_reverse_arc_index_free (gfsmReverseArcIndex *rarcs, gboolean free_lists)

gfsmFinalWeightIndex

typedef GArray gfsmWeightVector
static gfsmWeightVectorgfsm_weight_vector_new (void)
static gfsmWeightVectorgfsm_weight_vector_sized_new (guint size)
static gfsmWeightVectorgfsm_weight_vector_copy (gfsmWeightVector *dst, gfsmWeightVector *src)
static gfsmWeightVectorgfsm_weight_vector_clone (gfsmWeightVector *src)
static void gfsm_weight_vector_resize (gfsmWeightVector *wv, guint size)
gfsmWeightVectorgfsm_automaton_to_final_weight_vector (gfsmAutomaton *fsm, gfsmWeightVector *wv)
static void gfsm_weight_vector_free (gfsmWeightVector *wv)
gboolean gfsm_weight_vector_write_bin_handle (gfsmWeightVector *wv, gfsmIOHandle *ioh, gfsmError **errp)
gboolean gfsm_weight_vector_read_bin_handle (gfsmWeightVector *wv, gfsmIOHandle *ioh, gfsmError **errp)

gfsmArcTable

typedef GArray gfsmArcTable
 Type for dedicated block-wise storage of gfsmArc data: GArray of gfsmArc.
static gfsmArcTablegfsm_arc_table_new (void)
static gfsmArcTablegfsm_arc_table_sized_new (guint n_arcs)
static void gfsm_arc_table_resize (gfsmArcTable *tab, guint n_arcs)
static gfsmArcTablegfsm_arc_table_copy (gfsmArcTable *dst, gfsmArcTable *src)
static gfsmArcTablegfsm_arc_table_clone (gfsmArcTable *src)
static void gfsm_arc_table_free (gfsmArcTable *tab)
gfsmArcTablegfsm_automaton_to_arc_table (gfsmAutomaton *fsm, gfsmArcTable *tab)
gfsmArcTablegfsm_arc_table_append_arclist (gfsmArcTable *tab, gfsmArcList *arcs)
static gfsmArcTablegfsm_arc_table_append_arciter (gfsmArcTable *tab, gfsmArcIter *ai)
static gfsmArcTablegfsm_arc_table_append_state (gfsmArcTable *tab, gfsmAutomaton *fsm, gfsmStateId qid)
static void gfsm_arc_table_sort_with_data (gfsmArcTable *tab, GCompareDataFunc compare_func, gpointer data)
static void gfsm_arc_table_sort_bymask (gfsmArcTable *tab, gfsmArcCompMask m, gfsmSemiring *sr)
static gfsmArcgfsm_arc_table_seek (gfsmArcTable *tab, const gfsmArc *key, GCompareDataFunc compare_func, gpointer data)
static gfsmArcgfsm_arc_table_seek_bymask (gfsmArcTable *tab, const gfsmArc *key, gfsmArcCompMask m, gfsmSemiring *sr)
gboolean gfsm_arc_table_write_bin_handle (gfsmArcTable *tab, gfsmIOHandle *ioh, gfsmError **errp)
gboolean gfsm_arc_table_read_bin_handle (gfsmArcTable *tab, gfsmIOHandle *ioh, gfsmError **errp)

gfsmArcPtrTable

typedef GPtrArray gfsmArcPtrTable
 Type for pointer-index of gfsmArc*: ::GPtrArray of gfsmArc*.
static gfsmArcPtrTablegfsm_arc_ptr_table_new (void)
static gfsmArcPtrTablegfsm_arc_ptr_table_sized_new (guint n_arcs)
static void gfsm_arc_ptr_table_resize (gfsmArcPtrTable *ptab, guint n_arcs)
static gfsmArcPtrTablegfsm_arc_ptr_table_copy (gfsmArcPtrTable *dst, gfsmArcPtrTable *src)
static gfsmArcPtrTablegfsm_arc_ptr_table_clone (gfsmArcPtrTable *src)
static void gfsm_arc_ptr_table_free (gfsmArcPtrTable *ptab)
gfsmArcPtrTablegfsm_arc_ptr_table_append_arclist (gfsmArcPtrTable *ptab, gfsmArcList *arcs)
static gfsmArcPtrTablegfsm_arc_ptr_table_append_arciter (gfsmArcPtrTable *ptab, gfsmArcIter *ai)
static gfsmArcPtrTablegfsm_arc_ptr_table_append_state (gfsmArcPtrTable *ptab, gfsmAutomaton *fsm, gfsmStateId qid)
static void gfsm_arc_ptr_table_sort_with_data (gfsmArcPtrTable *ptab, GCompareDataFunc compare_func, gpointer data)
static void gfsm_arc_ptr_table_sort_bymask (gfsmArcPtrTable *ptab, gfsmArcCompMask m, gfsmSemiring *sr)
static gfsmArcgfsm_arc_ptr_table_seek (gfsmArcPtrTable *ptab, const gfsmArc *key, GCompareDataFunc compare_func, gpointer data)
static gfsmArcgfsm_arc_ptr_table_seek_bymask (gfsmArcPtrTable *ptab, const gfsmArc *key, gfsmArcCompMask m, gfsmSemiring *sr)

Detailed Description

Macro Definition Documentation

#define gfsm_automaton_reverse_arc_index   gfsm_automaton_to_reverse_arc_index

Backwards-compatible alias for gfsm_automaton_to_reverse_arc_index()

Typedef Documentation

typedef GPtrArray gfsmReverseArcIndex

element at qto is a GSList* which contains a data element gfsmArc* arc={qfrom,qto,lo,hi,w} whenever source fsm contains an arc arc={qfrom,qto,lo,hi,w} from qfrom.

Note
arc data pointed to is shared by source automaton and the gfsmReverseArcIndex!
typedef GArray gfsmWeightVector

GArray of gfsmWeight, indexed e.g. by gfsmStateId

typedef GArray gfsmArcTable
typedef GPtrArray gfsmArcPtrTable

Function Documentation

static gfsmReverseArcIndex* gfsm_reverse_arc_index_new ( void  )
inlinestatic

Create and return a new gfsmReverseArcIndex

Note
Caller is responsible for freeing the returned index when it is no longer needed.
static gfsmReverseArcIndex* gfsm_reverse_arc_index_sized_new ( gfsmStateId  n_states)
inlinestatic

Create a new gfsmReverseArcIndex, given number of states to be indexed

Note
Caller is responsible for freeing the returned index when it is no longer needed.
gfsmReverseArcIndex* gfsm_automaton_to_reverse_arc_index ( gfsmAutomaton fsm,
gfsmReverseArcIndex rarcs 
)

Populate a reversed arc index for fsm.

Parameters
fsmsource automaton
rarcsReverse arc index. May be passed as NULL to create a new arc index.
Returns
rarcs if non-NULL, otherwise a new reverse arc index for fsm.
Note
Caller is responsible for freeing the returned index when it is no longer needed.
void gfsm_reverse_arc_index_free ( gfsmReverseArcIndex rarcs,
gboolean  free_lists 
)

Free a gfsmReverseArcIndex

Parameters
rarcsreverse arc-index to be freed
free_listsIf true, associated arc-lists will be freed.
static gfsmWeightVector* gfsm_weight_vector_new ( void  )
inlinestatic

Create a new (empty) gfsmWeightVector

Note
Caller is responsible for freeing wv when it is no longer needed.
static gfsmWeightVector* gfsm_weight_vector_sized_new ( guint  size)
inlinestatic

Create a new (empty) gfsmWeightVector, specifying initial size

Note
Caller is responsible for freeing the returned index when it is no longer needed.
static gfsmWeightVector* gfsm_weight_vector_copy ( gfsmWeightVector dst,
gfsmWeightVector src 
)
inlinestatic

Copy a gfsmWeightVector src to dst.

Returns
dst
static gfsmWeightVector* gfsm_weight_vector_clone ( gfsmWeightVector src)
inlinestatic

Create and return an exact clone of a gfsmWeightVector

static void gfsm_weight_vector_resize ( gfsmWeightVector wv,
guint  size 
)
inlinestatic

Set size of a gfsmWeightVector

gfsmWeightVector* gfsm_automaton_to_final_weight_vector ( gfsmAutomaton fsm,
gfsmWeightVector wv 
)

Populate a gfsmWeightVector of state final weights in a gfsmAutomaton

Parameters
fsmsource automaton
wvFinal weight index May be passed as NULL to create a new index.
Returns
wv if non-NULL, otherwise a new final weight index for fsm.
static void gfsm_weight_vector_free ( gfsmWeightVector wv)
inlinestatic
gboolean gfsm_weight_vector_write_bin_handle ( gfsmWeightVector wv,
gfsmIOHandle ioh,
gfsmError **  errp 
)

Write the contents of a gfsmWeightVector to a (binary) gfsmIOHandle.

Parameters
wvweight vector to write
iohhandle to which data is to be written
errpif an error occurs, *errp will hold an error message
Returns
true on success
gboolean gfsm_weight_vector_read_bin_handle ( gfsmWeightVector wv,
gfsmIOHandle ioh,
gfsmError **  errp 
)

Read the contents of a gfsmWeightVector from a (binary) gfsmIOHandle.

Parameters
wvweight vector into which data is to be read
iohhandle from which data is to be read
errpif an error occurs, *errp will hold an error message
Returns
true on success
static gfsmArcTable* gfsm_arc_table_new ( void  )
inlinestatic

Create and return a new (empty) gfsmArcTable

static gfsmArcTable* gfsm_arc_table_sized_new ( guint  n_arcs)
inlinestatic

Create and return a new (empty) gfsmArcTable, specifying size

static void gfsm_arc_table_resize ( gfsmArcTable tab,
guint  n_arcs 
)
inlinestatic

Resize a gfsmArcTable

static gfsmArcTable* gfsm_arc_table_copy ( gfsmArcTable dst,
gfsmArcTable src 
)
inlinestatic

Copy a gfsmArcTable src to dst.

Returns
dst.
static gfsmArcTable* gfsm_arc_table_clone ( gfsmArcTable src)
inlinestatic

Create and return an exact copy of a gfsmArcTable src

static void gfsm_arc_table_free ( gfsmArcTable tab)
inlinestatic

Free a gfsmArcTable

gfsmArcTable* gfsm_automaton_to_arc_table ( gfsmAutomaton fsm,
gfsmArcTable tab 
)

Populate a :gfsmArcTable by copying arcs from fsm

Parameters
fsmsource automaton
tabarc table to populate. May be passed as NULL to create a new arc table.
Returns
tab if non-NULL, otherwise a new gfsmArcTable for fsm.
Note
Caller is responsible for freeing tab when it is no longer needed.
gfsmArcTable* gfsm_arc_table_append_arclist ( gfsmArcTable tab,
gfsmArcList arcs 
)

Append arc values from a :gfsmArcList to a :gfsmArcTable

Parameters
arcssource list
tabarc table to which arc copies are to be appended. May be passed as NULL to create a new arc table.
Returns
tab if non-NULL, otherwise a new gfsmArcTable
Note
Caller is responsible for freeing tab when it is no longer needed.
static gfsmArcTable* gfsm_arc_table_append_arciter ( gfsmArcTable tab,
gfsmArcIter ai 
)
inlinestatic

Append arc values from a :gfsmArcIter to a :gfsmArcTable

Parameters
aisource iterator
tabarc table to which arc copies are to be appended. May be passed as NULL to create a new arc table.
Returns
tab if non-NULL, otherwise a new gfsmArcTable
Note
Caller is responsible for freeing tab when it is no longer needed.
static gfsmArcTable* gfsm_arc_table_append_state ( gfsmArcTable tab,
gfsmAutomaton fsm,
gfsmStateId  qid 
)
inlinestatic

Append arc values for outgoing arcs for state qid in automaton fsm to a :gfsmArcTable

Parameters
fsmsource automaton
qidsource state
tabarc table to populate. May be passed as NULL to create a new arc table.
Returns
tab if non-NULL, otherwise a new gfsmArcTable
Note
Caller is responsible for freeing tab when it is no longer needed.
static void gfsm_arc_table_sort_with_data ( gfsmArcTable tab,
GCompareDataFunc  compare_func,
gpointer  data 
)
inlinestatic

Sort all arcs in a gfsmArcTable using a user-specified comparison function

static void gfsm_arc_table_sort_bymask ( gfsmArcTable tab,
gfsmArcCompMask  m,
gfsmSemiring sr 
)
inlinestatic

Sort arcs by comparison priority in a gfsmArcTable

static gfsmArc* gfsm_arc_table_seek ( gfsmArcTable tab,
const gfsmArc key,
GCompareDataFunc  compare_func,
gpointer  data 
)
inlinestatic

Search a gfsmArcTable tab sorted according to compare_func wrt data for the first element less-than or equal to key.

Returns
a pointer to the desired arc or NULL if no such element is found. Uses gfsm_array_lower_bound() (binary search)
static gfsmArc* gfsm_arc_table_seek_bymask ( gfsmArcTable tab,
const gfsmArc key,
gfsmArcCompMask  m,
gfsmSemiring sr 
)
inlinestatic

Search a gfsmArcTable tab sorted according to mask m for semring sr for the first element less-than or equal to key.

Returns
a pointer to the desired arc or NULL if no such element is found. Uses gfsm_array_lower_bound() (binary search)
gboolean gfsm_arc_table_write_bin_handle ( gfsmArcTable tab,
gfsmIOHandle ioh,
gfsmError **  errp 
)

Write the contents of a gfsmArcTable to a (binary) gfsmIOHandle.

Parameters
tabtable to write
iohhandle to which data is to be written
errpif an error occurs, *errp will hold an error message
Returns
true on success
gboolean gfsm_arc_table_read_bin_handle ( gfsmArcTable tab,
gfsmIOHandle ioh,
gfsmError **  errp 
)

Read the contents of a gfsmArcTable from a (binary) gfsmIOHandle.

Parameters
tabtable into which data is to be read
iohhandle from which data is to be read
errpif an error occurs, *errp will hold an error message
Returns
true on success
static gfsmArcPtrTable* gfsm_arc_ptr_table_new ( void  )
inlinestatic

Create and return a new (empty) gfsmArcPtrTable

static gfsmArcPtrTable* gfsm_arc_ptr_table_sized_new ( guint  n_arcs)
inlinestatic

Create and return a new (empty) gfsmArcPtrTable, specifying size

static void gfsm_arc_ptr_table_resize ( gfsmArcPtrTable ptab,
guint  n_arcs 
)
inlinestatic

Resize a gfsmArcPtrTable

static gfsmArcPtrTable* gfsm_arc_ptr_table_copy ( gfsmArcPtrTable dst,
gfsmArcPtrTable src 
)
inlinestatic

Copy a gfsmArcPtrTable src to dst.

Returns
dst.
static gfsmArcPtrTable* gfsm_arc_ptr_table_clone ( gfsmArcPtrTable src)
inlinestatic

Create and return an exact copy of a gfsmArcPtrTable src

static void gfsm_arc_ptr_table_free ( gfsmArcPtrTable ptab)
inlinestatic
gfsmArcPtrTable* gfsm_arc_ptr_table_append_arclist ( gfsmArcPtrTable ptab,
gfsmArcList arcs 
)

Append arc values from a :gfsmArcList to a :gfsmArcPtrTable

Parameters
arcssource list
tabarc table to which arc copies are to be appended. May be passed as NULL to create a new arc table.
Returns
tab if non-NULL, otherwise a new gfsmArcPtrTable
Note
Caller is responsible for freeing tab when it is no longer needed.
static gfsmArcPtrTable* gfsm_arc_ptr_table_append_arciter ( gfsmArcPtrTable ptab,
gfsmArcIter ai 
)
inlinestatic

Append arc values from a :gfsmArcIter to a :gfsmArcPtrTable

Parameters
aisource iterator
tabarc table to which arc copies are to be appended. May be passed as NULL to create a new arc table.
Returns
tab if non-NULL, otherwise a new gfsmArcPtrTable
Note
Caller is responsible for freeing tab when it is no longer needed.
static gfsmArcPtrTable* gfsm_arc_ptr_table_append_state ( gfsmArcPtrTable ptab,
gfsmAutomaton fsm,
gfsmStateId  qid 
)
inlinestatic

Append arc values for outgoing arcs for state qid in automaton fsm to a :gfsmArcPtrTable

Parameters
fsmsource automaton
qidsource state
tabarc table to populate. May be passed as NULL to create a new arc table.
Returns
tab if non-NULL, otherwise a new gfsmArcPtrTable
Note
Caller is responsible for freeing tab when it is no longer needed.
static void gfsm_arc_ptr_table_sort_with_data ( gfsmArcPtrTable ptab,
GCompareDataFunc  compare_func,
gpointer  data 
)
inlinestatic

Sort all arcs in a gfsmArcPtrTable using a user-specified comparison function

static void gfsm_arc_ptr_table_sort_bymask ( gfsmArcPtrTable ptab,
gfsmArcCompMask  m,
gfsmSemiring sr 
)
inlinestatic

Sort arcs by comparison priority in a gfsmArcPtrTable

static gfsmArc* gfsm_arc_ptr_table_seek ( gfsmArcPtrTable ptab,
const gfsmArc key,
GCompareDataFunc  compare_func,
gpointer  data 
)
inlinestatic

Search a gfsmArcPtrTable tab sorted according to compare_func wrt data for the first element less-than or equal to key.

Returns
a pointer to the desired arc or NULL if no such element is found. Uses gfsm_array_lower_bound() (binary search)
static gfsmArc* gfsm_arc_ptr_table_seek_bymask ( gfsmArcPtrTable ptab,
const gfsmArc key,
gfsmArcCompMask  m,
gfsmSemiring sr 
)
inlinestatic

Search a gfsmArcPtrTable tab sorted according to mask m for semring sr for the first element less-than or equal to key.

Returns
a pointer to the desired arc or NULL if no such element is found. Uses gfsm_array_lower_bound() (binary search)
static gfsmArcTableIndex* gfsm_arc_table_index_new ( void  )
inlinestatic

Create and return a new (empty) gfsmArcTableIndex

static gfsmArcTableIndex* gfsm_arc_table_index_sized_new ( gfsmStateId  n_states,
guint  n_arcs 
)
inlinestatic

Create and return a new (empty) gfsmArcTableIndex, specifying sizes

static void gfsm_arc_table_index_resize ( gfsmArcTableIndex tab,
gfsmStateId  n_states,
guint  n_arcs 
)
inlinestatic
static gfsmStateId gfsm_arc_table_index_n_states ( gfsmArcTableIndex tabx)
inlinestatic

Get number of states allocated for a gfsmArcTableIndex

static guint gfsm_arc_table_index_n_arcs ( gfsmArcTableIndex tabx)
inlinestatic

Get number of arcs allocated for a gfsmArcTableIndex

gfsmArcTableIndex* gfsm_arc_table_index_copy ( gfsmArcTableIndex dst,
gfsmArcTableIndex src 
)

Copy a gfsmArcTableIndex src to dst.

Returns
dst.
static gfsmArcTableIndex* gfsm_arc_table_index_clone ( gfsmArcTableIndex src)
inlinestatic

Create and return an exact copy of a gfsmArcTableIndex src

static void gfsm_arc_table_index_free ( gfsmArcTableIndex tabx)
inlinestatic
gfsmArcTableIndex* gfsm_automaton_to_arc_table_index ( gfsmAutomaton fsm,
gfsmArcTableIndex tabx 
)

Populate a gfsmArcTableIndex by indexing outgoing arcs from each state in fsm.

Parameters
fsmsource automaton
tabxIndexed arc table to populate. May be passed as NULL to create a new indexed arc table.
Returns
tabx if non-NULL, otherwise a new index for fsm.
Note
  • Caller is responsible for freeing tabx when it is no longer needed.
void gfsm_arc_table_index_sort_with_data ( gfsmArcTableIndex tabx,
GCompareDataFunc  compare_func,
gpointer  data 
)

Sort arcs state-wise in a gfsmArcTableIndex

static void gfsm_arc_table_index_sort_bymask ( gfsmArcTableIndex tabx,
gfsmArcCompMask  m,
gfsmSemiring sr 
)
inlinestatic

Sort arcs state-wise by field priority in a gfsmArcTableIndex. Really just a wrapper for gfsm_arc_table_index_sort_with_data()

static guint gfsm_arc_table_index_out_degree ( gfsmArcTableIndex tabx,
gfsmStateId  qid 
)
inlinestatic

Get number of outgoing arcs from state qid in tabx

gboolean gfsm_arc_table_index_write_bin_handle ( gfsmArcTableIndex tabx,
gfsmIOHandle ioh,
gfsmError **  errp 
)

Write the contents of a gfsmArcTableIndex to a (binary) gfsmIOHandle.

Parameters
tabxindex to write
iohhandle to which data is to be written
errpif an error occurs, *errp will hold an error message
Returns
true on success
gboolean gfsm_arc_table_index_read_bin_handle ( gfsmArcTableIndex tabx,
gfsmIOHandle ioh,
gfsmError **  errp 
)

Read the contents of a gfsmArcTableIndex from a (binary) gfsmIOHandle.

Parameters
tabxtable into which data is to be read
iohhandle from which data is to be read
errpif an error occurs, *errp will hold an error message
Returns
true on success
static void gfsm_arcrange_open_table_index ( gfsmArcRange range,
gfsmArcTableIndex tabx,
gfsmStateId  qid 
)
inlinestatic

Open a gfsmArcRange for all outgoing arcs from state qid in tabx

static void gfsm_arcrange_close ( gfsmArcRange range)
inlinestatic

Close a gfsmArcRange (currently does nothing really useful)

static gboolean gfsm_arcrange_ok ( gfsmArcRange range)
inlinestatic

Check validity of a gfsmArcRange

static gfsmArc* gfsm_arcrange_arc ( gfsmArcRange range)
inlinestatic

Get current arc from a gfsmArcRange, which is assumed to be valid

static void gfsm_arcrange_next ( gfsmArcRange range)
inlinestatic

Increment current arc of a gfsmArcRange