|
10 | 10 | c_int64, |
11 | 11 | c_long, |
12 | 12 | c_ulong, |
| 13 | + c_uint8, |
| 14 | + c_uint64, |
13 | 15 | c_void_p, |
| 16 | + py_object, |
14 | 17 | POINTER, |
15 | 18 | Structure, |
16 | 19 | Union as CUnion, |
@@ -38,11 +41,15 @@ def vector_fields(base_type): |
38 | 41 | c_int64 # TODO(ntamas): this depends on whether igraph is 32-bit or 64-bit |
39 | 42 | ) |
40 | 43 | igraph_real_t = c_double |
| 44 | +igraph_uint_t = ( |
| 45 | + c_uint64 # TODO(ntamas): this depends on whether igraph is 32-bit or 64-bit |
| 46 | +) |
41 | 47 |
|
42 | 48 | # TODO(ntamas): these depend on whether igraph is 32-bit or 64-bit |
43 | 49 | np_type_of_igraph_bool_t = np.bool_ |
44 | 50 | np_type_of_igraph_integer_t = np.int64 |
45 | 51 | np_type_of_igraph_real_t = np.float64 |
| 52 | +np_type_of_igraph_uint_t = np.uint64 |
46 | 53 |
|
47 | 54 |
|
48 | 55 | class FILE(Structure): |
@@ -347,6 +354,60 @@ class igraph_plfit_result_t(Structure): |
347 | 354 | ] |
348 | 355 |
|
349 | 356 |
|
| 357 | +igraph_rng_state_t = py_object |
| 358 | + |
| 359 | + |
| 360 | +class igraph_rng_type_t(Structure): |
| 361 | + """ctypes representation of an ``igraph_rng_type_t`` object""" |
| 362 | + |
| 363 | + TYPES = { |
| 364 | + "init": CFUNCTYPE(igraph_error_t, POINTER(igraph_rng_state_t)), |
| 365 | + "destroy": CFUNCTYPE(None, igraph_rng_state_t), |
| 366 | + "seed": CFUNCTYPE(igraph_error_t, igraph_rng_state_t, igraph_uint_t), |
| 367 | + "get": CFUNCTYPE(igraph_uint_t, igraph_rng_state_t), |
| 368 | + } |
| 369 | + |
| 370 | + _fields_ = [ |
| 371 | + ("name", c_char_p), |
| 372 | + ("bits", c_uint8), |
| 373 | + ("init", TYPES["init"]), |
| 374 | + ("destroy", TYPES["destroy"]), |
| 375 | + ("seed", TYPES["seed"]), |
| 376 | + ("get", TYPES["get"]), |
| 377 | + ( |
| 378 | + "get_int", |
| 379 | + CFUNCTYPE( |
| 380 | + igraph_integer_t, igraph_rng_state_t, igraph_integer_t, igraph_integer_t |
| 381 | + ), |
| 382 | + ), |
| 383 | + ("get_real", CFUNCTYPE(igraph_real_t, igraph_rng_state_t)), |
| 384 | + ("get_norm", CFUNCTYPE(igraph_real_t, igraph_rng_state_t)), |
| 385 | + ("get_geom", CFUNCTYPE(igraph_real_t, igraph_rng_state_t, igraph_real_t)), |
| 386 | + ( |
| 387 | + "get_binom", |
| 388 | + CFUNCTYPE( |
| 389 | + igraph_real_t, igraph_rng_state_t, igraph_integer_t, igraph_real_t |
| 390 | + ), |
| 391 | + ), |
| 392 | + ("get_exp", CFUNCTYPE(igraph_real_t, igraph_rng_state_t, igraph_real_t)), |
| 393 | + ( |
| 394 | + "get_gamma", |
| 395 | + CFUNCTYPE(igraph_real_t, igraph_rng_state_t, igraph_real_t, igraph_real_t), |
| 396 | + ), |
| 397 | + ("get_pois", CFUNCTYPE(igraph_real_t, igraph_rng_state_t, igraph_real_t)), |
| 398 | + ] |
| 399 | + |
| 400 | + |
| 401 | +class igraph_rng_t(Structure): |
| 402 | + """ctypes representation of an ``igraph_rng_t`` object""" |
| 403 | + |
| 404 | + _fields_ = [ |
| 405 | + ("type", POINTER(igraph_rng_type_t)), |
| 406 | + ("state", igraph_rng_state_t), |
| 407 | + ("is_seeded", igraph_bool_t), |
| 408 | + ] |
| 409 | + |
| 410 | + |
350 | 411 | igraph_isocompat_t = CFUNCTYPE( |
351 | 412 | igraph_bool_t, |
352 | 413 | POINTER(igraph_t), |
|
0 commit comments