CMR  1.3.0
network.h
Go to the documentation of this file.
1 #ifndef CMR_NETWORK_H
2 #define CMR_NETWORK_H
3 
17 #include <cmr/env.h>
18 #include <cmr/element.h>
19 #include <cmr/matrix.h>
20 #include <cmr/graph.h>
21 #include <cmr/graphic.h>
22 #include <cmr/camion.h>
23 
24 #include <stdio.h>
25 #include <stdint.h>
26 
27 #ifdef __cplusplus
28 extern "C" {
29 #endif
30 
35 typedef struct
36 {
37  uint32_t totalCount;
38  double totalTime;
42 
47 CMR_EXPORT
50 );
51 
56 CMR_EXPORT
58  FILE* stream,
59  CMR_NETWORK_STATISTICS* stats,
60  const char* prefix
61 );
62 
77 CMR_EXPORT
79  CMR* cmr,
80  CMR_GRAPH* digraph,
81  CMR_CHRMAT** pmatrix,
82  CMR_CHRMAT** ptranspose,
83  bool* arcsReversed,
85  int numForestArcs,
86  CMR_GRAPH_EDGE* forestArcs,
87  int numCoforestArcs,
88  CMR_GRAPH_EDGE* coforestArcs,
90  bool* pisCorrectForest
92 );
93 
113 CMR_EXPORT
115  CMR* cmr,
116  CMR_CHRMAT* matrix,
117  bool* pisNetwork,
118  bool* psupportIsGraphic,
119  CMR_GRAPH** pdigraph,
120  CMR_GRAPH_EDGE** pforestArcs,
122  CMR_GRAPH_EDGE** pcoforestArcs,
124  bool** parcsReversed,
126  CMR_SUBMAT** psubmatrix,
128  CMR_NETWORK_STATISTICS* stats,
129  double timeLimit
130 );
131 
147 CMR_EXPORT
149  CMR* cmr,
150  CMR_CHRMAT* matrix,
151  bool* pisConetwork,
152  bool* psupportIsCographic,
153  CMR_GRAPH** pdigraph,
154  CMR_GRAPH_EDGE** pforestArcs,
156  CMR_GRAPH_EDGE** pcoforestArcs,
158  bool** parcsReversed,
160  CMR_SUBMAT** psubmatrix,
162  CMR_NETWORK_STATISTICS* stats,
163  double timeLimit
164 );
165 
168 #ifdef __cplusplus
169 }
170 #endif
171 
172 #endif /* CMR_NETWORK_H */
Testing whether a matrix is Camion-signed.
Functionality for the row and column elements of a matrix.
Basic functionality of the software library.
CMR_ERROR
Type for return codes of library functions.
Definition: env.h:32
Functionality for graphs.
Computation and recognition of graphic matrices and cographic matrices.
int CMR_GRAPH_EDGE
Reference to an edge of CMR_GRAPH.
Definition: graph.h:31
Functionality for sparse matrices.
CMR_EXPORT CMR_ERROR CMRnetworkTestMatrix(CMR *cmr, CMR_CHRMAT *matrix, bool *pisNetwork, bool *psupportIsGraphic, CMR_GRAPH **pdigraph, CMR_GRAPH_EDGE **pforestArcs, CMR_GRAPH_EDGE **pcoforestArcs, bool **parcsReversed, CMR_SUBMAT **psubmatrix, CMR_NETWORK_STATISTICS *stats, double timeLimit)
Tests a matrix for being a network matrix.
Definition: network.c:207
CMR_EXPORT CMR_ERROR CMRnetworkComputeMatrix(CMR *cmr, CMR_GRAPH *digraph, CMR_CHRMAT **pmatrix, CMR_CHRMAT **ptranspose, bool *arcsReversed, int numForestArcs, CMR_GRAPH_EDGE *forestArcs, int numCoforestArcs, CMR_GRAPH_EDGE *coforestArcs, bool *pisCorrectForest)
Computes the network matrix of a given digraph .
Definition: network.c:66
CMR_EXPORT CMR_ERROR CMRnetworkStatsInit(CMR_NETWORK_STATISTICS *stats)
Initializes all statistics for recognition algorithm for network matrices.
Definition: network.c:23
CMR_EXPORT CMR_ERROR CMRnetworkTestTranspose(CMR *cmr, CMR_CHRMAT *matrix, bool *pisConetwork, bool *psupportIsCographic, CMR_GRAPH **pdigraph, CMR_GRAPH_EDGE **pforestArcs, CMR_GRAPH_EDGE **pcoforestArcs, bool **parcsReversed, CMR_SUBMAT **psubmatrix, CMR_NETWORK_STATISTICS *stats, double timeLimit)
Tests a matrix for being a conetwork matrix.
Definition: network.c:110
CMR_EXPORT CMR_ERROR CMRnetworkStatsPrint(FILE *stream, CMR_NETWORK_STATISTICS *stats, const char *prefix)
Prints statistics for recognition algorithm for network matrices.
Definition: network.c:35
Statistics for Camion-signing algorithm.
Definition: camion.h:26
Row-wise representation of sparse char matrix.
Definition: matrix.h:204
Definition: env_internal.h:45
Statistics for graphicness test.
Definition: graphic.h:34
Definition: graph.h:49
Statistics for recognition algorithm for network matrices.
Definition: network.h:36
double totalTime
Definition: network.h:38
CMR_CAMION_STATISTICS camion
Definition: network.h:39
CMR_GRAPHIC_STATISTICS graphic
Definition: network.h:40
uint32_t totalCount
Definition: network.h:37
Row and column indices for a submatrix.
Definition: matrix.h:28