File: types.yaml

package info (click to toggle)
igraph 0.10.2%2Bds-2
  • links: PTS, VCS
  • area: main
  • in suites: bookworm
  • size: 16,176 kB
  • sloc: ansic: 121,500; cpp: 21,699; xml: 2,734; python: 411; makefile: 147; javascript: 20; sh: 9
file content (616 lines) | stat: -rw-r--r-- 17,253 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
# vim:set ts=4 sw=4 sts=4 et:
#
# This file is a YAML representation of the types used in the functions.yaml
# function specification file. It provides the meaning of each type in comments
# and also specifies the C types correspnding to each abstract type.
#
# See https://github.com/igraph/stimulus for more information

###############################################################################
## Core igraph data types
###############################################################################

INTEGER:
    # An ordinary igraph integer
    CTYPE: igraph_integer_t

REAL:
    # An ordinary igraph floating-point number
    CTYPE: igraph_real_t

BOOLEAN:
    # An ordinary igraph Boolean value
    CTYPE: igraph_bool_t

COMPLEX:
    # An ordinary igraph complex number
    CTYPE: igraph_complex_t

ERROR:
    # An igraph error code
    CTYPE: igraph_error_t

###############################################################################
## C data types
###############################################################################

INT:
    # A C integer
    CTYPE: int

LONGINT:
    # A C long integer
    CTYPE: long int

CSTRING:
    # A null-terminated immutable C string
    CTYPE: const char*

INFILE:
    # A file, already open for reading
    CTYPE: FILE*

OUTFILE:
    # A file, already open for writing
    CTYPE: FILE*

DOUBLE:
    # A C double
    CTYPE: double

VOID:
    # C void
    CTYPE: void

###############################################################################
# Vectors, matrices and other template types
###############################################################################

INDEX_VECTOR:
    # A vector of integer indices that should adapt to the conventions of the
    # host language (i.e. 1-based for R, Mathematica, Octave etc, 0-based for
    # Python and similar).
    CTYPE: igraph_vector_int_t
    FLAGS: BY_REF

VECTOR:
    # A vector of floating-point numbers
    CTYPE: igraph_vector_t
    FLAGS: BY_REF

VECTOR_INT:
    # A vector of igraph integers
    CTYPE: igraph_vector_int_t
    FLAGS: BY_REF

VECTOR_BOOL:
    # A vector of Boolean values
    CTYPE: igraph_vector_bool_t
    FLAGS: BY_REF

VECTOR_COMPLEX:
    # A vector of igraph complex numbers
    CTYPE: igraph_vector_complex_t

VECTOR_STR:
    # A vector of strings
    CTYPE: igraph_strvector_t
    FLAGS: BY_REF

VECTOR_LIST:
    # A list containing vectors of floating-point numbers
    CTYPE: igraph_vector_list_t
    FLAGS: BY_REF

VECTOR_INT_LIST:
    # A list containing vectors of integers
    CTYPE: igraph_vector_int_list_t
    FLAGS: BY_REF

MATRIX:
    # A matrix of floating-point numbers
    CTYPE: igraph_matrix_t
    FLAGS: BY_REF

MATRIX_INT:
    # A matrix of igraph integers
    CTYPE: igraph_matrix_int_t
    FLAGS: BY_REF

MATRIX_COMPLEX:
    # A matrix of igraph complex numbers
    CTYPE: igraph_matrix_complex_t

MATRIX_LIST:
    # A list containing matrices of floating-point numbers
    CTYPE: igraph_matrix_list_t
    FLAGS: BY_REF

SPARSEMAT:
    # A sparse matrix of floating-point numbers
    CTYPE: igraph_sparsemat_t
    FLAGS: BY_REF

###############################################################################
# Vertices, edges, vertex and edge selectors
###############################################################################

EDGE:
    # A single edge index
    CTYPE: igraph_integer_t

EDGE_INDICES:
    # An integer vector containing edge indices.
    CTYPE: igraph_vector_int_t
    FLAGS: BY_REF

EDGE_SELECTOR:
    # An igraph edge selector. Typically used only as an input argument type.
    CTYPE: igraph_es_t

VERTEX:
    # A single vertex index
    CTYPE: igraph_integer_t

VERTEX_INDICES:
    # An integer vector containing vertex indices.
    CTYPE: igraph_vector_int_t
    FLAGS: BY_REF

VERTEX_INDEX_PAIRS:
    # An integer vector containing pairs of vertex indices, in a flattened
    # representation
    CTYPE: igraph_vector_int_t
    FLAGS: BY_REF

VERTEX_SELECTOR:
    # An igraph vertex selector. Typically used only as an input argument type.
    CTYPE: igraph_vs_t

###############################################################################
# Specialized vectors with semantic meaning
###############################################################################

BIPARTITE_TYPES:
    # A vector containing Booleans that define the two partitions of a
    # bipartite graph
    CTYPE: igraph_vector_bool_t
    FLAGS: BY_REF

EDGE_CAPACITY:
    # A vector containing edge capacities (typically for max-flow algorithms)
    CTYPE: igraph_vector_t
    FLAGS: BY_REF

EDGE_COLOR:
    # A vector containing edge colors
    CTYPE: igraph_vector_int_t
    FLAGS: BY_REF

EDGEWEIGHTS:
    # A vector containing edge weights
    CTYPE: igraph_vector_t
    FLAGS: BY_REF

EDGESET_LIST:
    # A list containing vectors of igraph integers where each such
    # vector represents a sequence of edge indices.
    CTYPE: igraph_vector_int_list_t
    FLAGS: BY_REF

GRAPH_LIST:
    # A list containing graphs (owned by the list itself)
    CTYPE: igraph_graph_list_t
    FLAGS: BY_REF

GRAPH_PTR_LIST:
    # A vector containing pointers to graph objects (not owned by the vector)
    CTYPE: igraph_vector_ptr_t
    FLAGS: BY_REF

VERTEX_QTY:
    # A vector of floating-point numbers where each entry corresponds to
    # one of the vertices in a graph and its value represents some quantity
    # associated to the vertex with the same index. Higher-level interfaces may
    # use this type to provide a "named vector" such that each entry can be
    # indexed either by the vertex index or by the vertex name.
    CTYPE: igraph_vector_t
    FLAGS: BY_REF

SIR_LIST:
    # A vector containing pointers to igraph_sir_t objects
    CTYPE: igraph_vector_ptr_t
    FLAGS: BY_REF

VERTEXSET_LIST:
    # A list containing vectors of igraph integers where each such
    # vector represents a sequence of vertex indices.
    CTYPE: igraph_vector_int_list_t
    FLAGS: BY_REF

VERTEX_COLOR:
    # A vector containing vertex colors
    CTYPE: igraph_vector_int_t
    FLAGS: BY_REF

VERTEXWEIGHTS:
    # A vector containing vertex weights
    CTYPE: igraph_vector_t
    FLAGS: BY_REF

###############################################################################
# Graph representations
###############################################################################

GRAPH:
    # An igraph graph
    CTYPE: igraph_t
    FLAGS: BY_REF

ADJLIST:
    # A graph represented as an adjacency list
    CTYPE: igraph_adjlist_t
    FLAGS: BY_REF

INCLIST:
    # A graph represented as an incidence list
    CTYPE: igraph_inclist_t
    FLAGS: BY_REF

###############################################################################
# Enums
###############################################################################

ADD_WEIGHTS:
    # Whether to add the weights of the edges read from a file to the graph
    # being created
    CTYPE: igraph_add_weights_t
    FLAGS: ENUM

ADJACENCY_MODE:
    # Enum that describes how an adjacency matrix should be constructed
    CTYPE: igraph_adjacency_t
    FLAGS: ENUM

BARABASI_ALGORITHM:
    # Enum that describes the various implementations of the Barabasi model
    # that igraph supports
    CTYPE: igraph_barabasi_algorithm_t
    FLAGS: ENUM

BLISSSH:
    # Enum containing splitting heuristics for the Bliss algorithm
    CTYPE: igraph_bliss_sh_t
    FLAGS: ENUM

COMMCMP:
    # Enum containing identifiers for community comparison methods
    CTYPE: igraph_community_comparison_t
    FLAGS: ENUM

CONNECTEDNESS:
    # Enum that selects between weak and strong connectivity
    CTYPE: igraph_connectedness_t
    FLAGS: ENUM

DEGSEQ_MODE:
    # Enum that describes the various implementations of generating a graph
    # with an arbitrary degree sequence
    CTYPE: igraph_degseq_t
    FLAGS: ENUM

EIGENALGO:
    # Enum used for selecting an algorithm that determines the eigenvalues
    # and eigenvectors of some input
    CTYPE: igraph_eigen_algorithm_t
    FLAGS: ENUM

EIGENWHICHPOS:
    # Enum representing which eigenvalues to use in the spectral embedding
    # algorithm
    CTYPE: igraph_eigen_which_position_t
    FLAGS: ENUM

ERDOS_RENYI_TYPE:
    # Enum that says wheter a GNM (n vertices, m edges) or
    # GNP (n vertices, every edge exists with probability p)
    # graph is created
    CTYPE: igraph_erdos_renyi_t
    FLAGS: ENUM

FAS_ALGORITHM:
    # Enum representing feedback arc set algorithms
    CTYPE: igraph_fas_algorithm_t
    FLAGS: ENUM

GETADJACENCY:
    # Enum storing how to retrieve the adjacency matrix from a graph
    CTYPE: igraph_get_adjacency_t
    FLAGS: ENUM

GREEDY_COLORING_HEURISTIC:
    # Enum representing different heuristics for a greedy vertex coloring
    CTYPE: igraph_coloring_greedy_t
    FLAGS: ENUM

IMITATE_ALGORITHM:
    # This enum controls which algorithm to use in stochastic imitation
    CTYPE: igraph_imitate_algorithm_t
    FLAGS: ENUM

LAPLACIAN_NORMALIZATION:
    # Enum representing the possible normalization methods of a Laplacian
    # matrix
    CTYPE: igraph_laplacian_normalization_t
    FLAGS: ENUM

LAYOUT_GRID:
    # Whether to use the fast (but less accurate) grid-based version of a
    # layout algorithm that supports it (typically the Fruchterman-Reingold
    # layout)
    CTYPE: igraph_layout_grid_t
    FLAGS: ENUM

LOOPS:
    # Enum that describes how loop edges should be handled in undirected graphs
    # in functions that support it. Possible options are: no loops, loops
    # counted once, loops counted twice
    CTYPE: igraph_loops_t
    FLAGS: ENUM

LSETYPE:
    # Enum storing the possible types (definitions) of the Laplacian matrix
    # to use in the Laplacian spectral embedding algorithms
    CTYPE: igraph_laplacian_spectral_embedding_type_t
    FLAGS: ENUM

NEIMODE:
    # Enum that describes how a particular function should take into account
    # the neighbors of vertices
    CTYPE: igraph_neimode_t
    FLAGS: ENUM

OPTIMALITY:
    # This enum controls which algorithm to use in deterministic optimal imitation
    CTYPE: igraph_optimal_t
    FLAGS: ENUM

ORDER:
    # Whether ordering should be ascending or descending
    CTYPE: igraph_order_t
    FLAGS: ENUM

PAGERANKALGO:
    # Enum that describes the various implementations of the PageRank algorithm
    CTYPE: igraph_pagerank_algo_t
    FLAGS: ENUM

RANDOM_TREE_METHOD:
    # Enum that describes the various implementation of the uniform random tree
    # sampling method
    CTYPE: igraph_random_tree_t
    FLAGS: ENUM

REALIZE_DEGSEQ_METHOD:
    # Enum that describes the various methods for realizing a graph with an
    # arbitrary degree sequence
    CTYPE: igraph_realize_degseq_t
    FLAGS: ENUM

RECIP:
    # Enum that describes how the reciprocity of a graph should be calculated
    CTYPE: igraph_reciprocity_t
    FLAGS: ENUM

REWIRING_MODE:
    # Enum for the rewiring modes of igraph_rewire()
    CTYPE: igraph_rewiring_t
    FLAGS: ENUM

ROOTCHOICE:
    # Enum for the heuristic of igraph_roots_for_tree_layout()
    CTYPE: igraph_root_choice_t
    FLAGS: ENUM

RWSTUCK:
    # Enum that describes what igraph should do when a random walk gets stuck
    # in a sink vertex
    CTYPE: igraph_random_walk_stuck_t
    FLAGS: ENUM

SPINCOMMUPDATE:
    # Enum containing update modes for the spinglass community detection
    # algorithm
    CTYPE: igraph_spincomm_update_t
    FLAGS: ENUM

SPINGLASS_IMPLEMENTATION:
    # Enum that describes the various implementations of the spinglass community
    # detection algorithm
    CTYPE: igraph_spinglass_implementation_t
    FLAGS: ENUM

STAR_MODE:
    # Enum that describes how a star graph should be constructed
    CTYPE: igraph_star_mode_t
    FLAGS: ENUM

SUBGRAPH_IMPL:
    # Enum that describes how igraph should create an induced subgraph of a
    # graph
    CTYPE: igraph_subgraph_implementation_t
    FLAGS: ENUM

TODIRECTED:
    # Enum representing the possible ways to convert an undirected graph to a
    # directed one
    CTYPE: igraph_to_directed_t
    FLAGS: ENUM

TOUNDIRECTED:
    # Enum representing the possible ways to convert a directed graph to an
    # undirected one
    CTYPE: igraph_to_undirected_t
    FLAGS: ENUM

TRANSITIVITY_MODE:
    # Enum that specifies how isolated vertices should be handled in transitivity
    # calcuations
    CTYPE: igraph_transitivity_mode_t
    FLAGS: ENUM

TREE_MODE:
    # Enum that describes how a tree graph should be constructed
    CTYPE: igraph_tree_mode_t
    FLAGS: ENUM

VCONNNEI:
    # Enum specifying what to do in vertex connectivity tests when the two
    # vertices being tested are already connected
    CTYPE: igraph_vconn_nei_t
    FLAGS: ENUM

VORONOI_TIEBREAKER:
    # Enum specifying what to do when two vertices are at equal distance from
    # multiple generators while computing Voronoi partitionings
    CTYPE: igraph_voronoi_tiebreaker_t
    FLAGS: ENUM

WHEEL_MODE:
    # Enum that describes how a star graph should be constructed
    CTYPE: igraph_wheel_mode_t
    FLAGS: ENUM

###############################################################################
# Switches / flags / bits
###############################################################################

EDGE_TYPE_SW:
    # Flag bitfield that specifies what sort of edges are allowed in an
    # algorithm
    CTYPE: igraph_edge_type_sw_t
    FLAGS: BITS

WRITE_GML_SW:
    # Flag bitfield that specifies how to write GML files.
    CTYPE: igraph_write_gml_sw_t
    FLAGS: BITS

###############################################################################
# Callbacks
###############################################################################

ARPACKFUNC:
    # ARPACK matrix multiplication function.
    CTYPE: igraph_arpack_function_t

CLIQUE_FUNC:
    # Callback function for igraph_cliques_callback(). called with every clique
    # that was found by the function.
    CTYPE: igraph_clique_handler_t

BFS_FUNC:
    # Callback function for igraph_bfs(). Called with every vertex that was
    # visited during the BFS traversal.
    CTYPE: igraph_bfshandler_t

DFS_FUNC:
    # Callback function for igraph_dfs(). Called with every vertex that was
    # visited during the DFS traversal.
    CTYPE: igraph_dfshandler_t

ISOCOMPAT_FUNC:
    # Callback function for isomorphism algorithms that determines whether two
    # vertices are compatible or not.
    CTYPE: igraph_isocompat_t

ISOMORPHISM_FUNC:
    # Callback function that is called by isomorphism functions when an
    # isomorphism is found
    CTYPE: igraph_isohandler_t

LEVCFUNC:
    # Callback function for igraph_leading_eigenvector_community(). Called
    # after each eigenvalue / eigenvector calculation.
    CTYPE: igraph_community_leading_eigenvector_callback_t

###############################################################################
# Miscellaneous
###############################################################################

ARPACKFUNC:
    # ARPACK matrix multiplication function.
    CTYPE: igraph_arpack_function_t

ARPACKOPT:
    # Structure that contains the options of the ARPACK eigensolver.
    CTYPE: igraph_arpack_options_t
    FLAGS: BY_REF

ARPACKSTORAGE:
    # Pointer to a general-purpose memory block that ARPACK-based algorithms
    # may use as a working area.
    CTYPE: igraph_arpack_storage_t
    FLAGS: BY_REF

ATTRIBUTES:
    # An opaque data structure that a high-level interface may use to pass
    # information about graph/vertex/edge attributes to a low-level igraph
    # C function
    CTYPE: void
    FLAGS: BY_REF

BLISSINFO:
    # Struct holding information about the internal statistics of a single
    # run of the Bliss algorithm
    CTYPE: igraph_bliss_info_t

DRL_OPTIONS:
    # Structure containing the options of the DrL layout algorithm
    CTYPE: igraph_layout_drl_options_t
    FLAGS: BY_REF

EDGE_ATTRIBUTE_COMBINATION:
    # Structure specifying how the attributes of edges should be combined
    # during graph operations that may merge multiple edges into a single one
    CTYPE: igraph_attribute_combination_t
    FLAGS: BY_REF

EIGENWHICH:
    # Structure representing which eigenvalue(s) to use in the spectral embedding
    # algorithm
    CTYPE: igraph_eigen_which_t
    FLAGS: BY_REF

EXTRA:
    # Thunk argument that usually accompanies callback functions and can be used
    # to provide user-specific data or context to the callback function
    CTYPE: void
    FLAGS: BY_REF

HRG:
    # Structure storing a fitted hierarchical random graph model
    CTYPE: igraph_hrg_t
    FLAGS: BY_REF

MAXFLOW_STATS:
    # Structure storing statistics about a single run of a max-flow algorithm
    CTYPE: igraph_maxflow_stats_t
    FLAGS: BY_REF

PAGERANKOPT:
    # Enum that describes the PageRank options pointer, which is used only if
    # the PageRank implementation uses ARPACK
    CTYPE: igraph_arpack_options_t
    FLAGS: BY_REF

PLFIT:
    # Structure representing the result of a power-law fitting algorithms
    CTYPE: igraph_plfit_result_t
    FLAGS: BY_REF

VERTEX_ATTRIBUTE_COMBINATION:
    # Structure specifying how the attributes of vertices should be combined
    # during graph operations that may merge multiple vertices into a single one
    CTYPE: igraph_attribute_combination_t
    FLAGS: BY_REF