Added missing API docu, improved existing API docu
[libfirm] / include / libfirm / adt / bipartite.h
index c53e11b..4d89079 100644 (file)
 
 #include "../begin.h"
 
-typedef struct _bipartite_t bipartite_t;
+/**
+ * @ingroup algorithms
+ * @defgroup bipartite Bipartite Matching
+ * Solved bipartite matching problem.
+ * (Variant with only 0/1 costs)
+ * @{
+ */
 
-bipartite_t *bipartite_new(int n_left, int n_right);
-void bipartite_free(bipartite_t *gr);
-void bipartite_add(bipartite_t *gr, int i, int j);
-void bipartite_remv(bipartite_t *gr, int i, int j);
-int bipartite_adj(const bipartite_t *gr, int i, int j);
-void bipartite_matching(const bipartite_t *gr, int *matching);
+/** internal representation of bipartite matching problem */
+typedef struct bipartite_t bipartite_t;
+
+/** Create new bipartite matching problem with @p n_left elements on left side
+ * and @p n_right elements on right side */
+FIRM_API bipartite_t *bipartite_new(int n_left, int n_right);
+/** Free memory occupied by bipartite matching problem */
+FIRM_API void bipartite_free(bipartite_t *gr);
+/** Add edge from @p i (on the left side) to @p j (on the right side) */
+FIRM_API void bipartite_add(bipartite_t *gr, int i, int j);
+/** Remove edge from @p i (on the left side) to @p j (on the right side) */
+FIRM_API void bipartite_remv(bipartite_t *gr, int i, int j);
+/** Return 1 if edge from @p i (on the left side) to @p j (on the right side)
+ * exists, 0 otherwise */
+FIRM_API int bipartite_adj(const bipartite_t *gr, int i, int j);
+/** Solve bipartite matching problem */
+FIRM_API void bipartite_matching(const bipartite_t *gr, int *matching);
 
 /**
  * Dumps a bipartite graph to a file stream.
  */
-void bipartite_dump_f(FILE *f, const bipartite_t *gr);
+FIRM_API void bipartite_dump_f(FILE *f, const bipartite_t *gr);
 
 /**
  * Dumps a bipartite graph to file name.
  */
-void bipartite_dump(const char *name, const bipartite_t *gr);
+FIRM_API void bipartite_dump(const char *name, const bipartite_t *gr);
+
+/** @} */
 
 #include "../end.h"