Graph Framework
Loading...
Searching...
No Matches
graph_c_binding.h
Go to the documentation of this file.
1//------------------------------------------------------------------------------
4//------------------------------------------------------------------------------
5//------------------------------------------------------------------------------
110//------------------------------------------------------------------------------
111
112#ifndef graph_c_binding_h
113#define graph_c_binding_h
114
115#include <stddef.h>
116#include <stdint.h>
117#include <stdbool.h>
118
119//------------------------------------------------------------------------------
123//------------------------------------------------------------------------------
124//------------------------------------------------------------------------------
128//------------------------------------------------------------------------------
129#ifdef USE_METAL
130#define START_GPU @autoreleasepool {
131#define END_GPU }
132#else
133#define START_GPU
134#define END_GPU
135#endif
136
137//------------------------------------------------------------------------------
140//------------------------------------------------------------------------------
141#ifdef __cplusplus
142extern "C" {
143#define STRUCT_TAG
144#else
145#define STRUCT_TAG struct
146#endif
148 typedef void * graph_node;
149
150//------------------------------------------------------------------------------
152//------------------------------------------------------------------------------
154 FLOAT,
155 DOUBLE,
156 COMPLEX_FLOAT,
157 COMPLEX_DOUBLE
158 };
159
160//------------------------------------------------------------------------------
162//------------------------------------------------------------------------------
169
170//------------------------------------------------------------------------------
176//------------------------------------------------------------------------------
178 const bool use_safe_math);
179
180//------------------------------------------------------------------------------
184//------------------------------------------------------------------------------
186
187//------------------------------------------------------------------------------
194//------------------------------------------------------------------------------
196 const size_t size,
197 const char *symbol);
198
199//------------------------------------------------------------------------------
205//------------------------------------------------------------------------------
207 const double value);
208
209//------------------------------------------------------------------------------
215//------------------------------------------------------------------------------
217 graph_node var,
218 const void *source);
219
220//------------------------------------------------------------------------------
227//------------------------------------------------------------------------------
229 const double real_value,
230 const double img_value);
231
232//------------------------------------------------------------------------------
238//------------------------------------------------------------------------------
240 graph_node var);
241
242//------------------------------------------------------------------------------
248//------------------------------------------------------------------------------
250 graph_node var);
251
252//------------------------------------------------------------------------------
259//------------------------------------------------------------------------------
261 graph_node left,
262 graph_node right);
263
264//------------------------------------------------------------------------------
271//------------------------------------------------------------------------------
273 graph_node left,
274 graph_node right);
275
276//------------------------------------------------------------------------------
283//------------------------------------------------------------------------------
285 graph_node left,
286 graph_node right);
287
288//------------------------------------------------------------------------------
295//------------------------------------------------------------------------------
297 graph_node left,
298 graph_node right);
299
300//------------------------------------------------------------------------------
306//------------------------------------------------------------------------------
308 graph_node arg);
309
310//------------------------------------------------------------------------------
316//------------------------------------------------------------------------------
318 graph_node arg);
319
320//------------------------------------------------------------------------------
326//------------------------------------------------------------------------------
328 graph_node arg);
329
330//------------------------------------------------------------------------------
337//------------------------------------------------------------------------------
339 graph_node left,
340 graph_node right);
341
342//------------------------------------------------------------------------------
348//------------------------------------------------------------------------------
350 graph_node arg);
351
352//------------------------------------------------------------------------------
358//------------------------------------------------------------------------------
360 graph_node arg);
361
362//------------------------------------------------------------------------------
368//------------------------------------------------------------------------------
370 graph_node arg);
371
372//------------------------------------------------------------------------------
379//------------------------------------------------------------------------------
381 graph_node left,
382 graph_node right);
383
384//------------------------------------------------------------------------------
391//------------------------------------------------------------------------------
393 const size_t size,
394 const uint32_t seed);
395
396//------------------------------------------------------------------------------
402//------------------------------------------------------------------------------
404 graph_node state);
405
406//------------------------------------------------------------------------------
416//------------------------------------------------------------------------------
418 graph_node arg,
419 const double scale,
420 const double offset,
421 const void *source,
422 const size_t source_size);
423
424//------------------------------------------------------------------------------
438//------------------------------------------------------------------------------
440 const size_t num_cols,
441 graph_node x_arg,
442 const double x_scale,
443 const double x_offset,
444 graph_node y_arg,
445 const double y_scale,
446 const double y_offset,
447 const void *source,
448 const size_t source_size);
449
450//------------------------------------------------------------------------------
459//------------------------------------------------------------------------------
461 graph_node variable,
462 graph_node arg,
463 const double scale,
464 const double offset);
465
466//------------------------------------------------------------------------------
479//------------------------------------------------------------------------------
481 graph_node variable,
482 const size_t num_cols,
483 graph_node x_arg,
484 const double x_scale,
485 const double x_offset,
486 graph_node y_arg,
487 const double y_scale,
488 const double y_offset);
489
490//------------------------------------------------------------------------------
500//------------------------------------------------------------------------------
502 graph_node variable,
503 graph_node index,
504 const double scale,
505 const double offset,
506 graph_node arg);
507
508//------------------------------------------------------------------------------
513//------------------------------------------------------------------------------
515
516//------------------------------------------------------------------------------
522//------------------------------------------------------------------------------
524 graph_node arg);
525
526//------------------------------------------------------------------------------
533//------------------------------------------------------------------------------
535 graph_node left,
536 graph_node right);
537
538//------------------------------------------------------------------------------
545//------------------------------------------------------------------------------
547 graph_node left,
548 graph_node right);
549
550//------------------------------------------------------------------------------
557//------------------------------------------------------------------------------
559 graph_node left,
560 graph_node right);
561
562//------------------------------------------------------------------------------
569//------------------------------------------------------------------------------
571 graph_node left,
572 graph_node right);
573
574//------------------------------------------------------------------------------
581//------------------------------------------------------------------------------
583 graph_node left,
584 graph_node right);
585
586//------------------------------------------------------------------------------
593//------------------------------------------------------------------------------
595 graph_node left,
596 graph_node right);
597
598//------------------------------------------------------------------------------
605//------------------------------------------------------------------------------
607 graph_node left,
608 graph_node right);
609
610//------------------------------------------------------------------------------
617//------------------------------------------------------------------------------
619 graph_node left,
620 graph_node right);
621
622//------------------------------------------------------------------------------
630//------------------------------------------------------------------------------
632 graph_node condition,
633 graph_node t,
634 graph_node f);
635
636//------------------------------------------------------------------------------
641//------------------------------------------------------------------------------
643
644//------------------------------------------------------------------------------
649//------------------------------------------------------------------------------
651 const size_t num);
652
653//------------------------------------------------------------------------------
669//------------------------------------------------------------------------------
671 graph_node *inputs, size_t num_inputs,
672 graph_node *outputs, size_t num_outputs,
673 graph_node *map_inputs,
674 graph_node *map_outputs, size_t num_maps,
675 graph_node *atomics, size_t num_atomics,
676 graph_node random_state,
677 const char *name,
678 const size_t size);
679
680//------------------------------------------------------------------------------
696//------------------------------------------------------------------------------
698 graph_node *inputs, size_t num_inputs,
699 graph_node *outputs, size_t num_outputs,
700 graph_node *map_inputs,
701 graph_node *map_outputs, size_t num_maps,
702 graph_node *atomics, size_t num_atomics,
703 graph_node random_state,
704 const char *name,
705 const size_t size);
706
707//------------------------------------------------------------------------------
723//------------------------------------------------------------------------------
725 graph_node *inputs, size_t num_inputs,
726 graph_node *outputs, size_t num_outputs,
727 graph_node *map_inputs,
728 graph_node *map_outputs, size_t num_maps,
729 graph_node *atomics, size_t num_atomics,
730 graph_node random_state,
731 const char *name,
732 const size_t size);
733
734//------------------------------------------------------------------------------
751//------------------------------------------------------------------------------
753 graph_node *inputs, size_t num_inputs,
754 graph_node *outputs, size_t num_outputs,
755 graph_node *map_inputs,
756 graph_node *map_outputs, size_t num_maps,
757 graph_node *atomics, size_t num_atomics,
758 graph_node random_state,
759 const char *name,
760 const size_t size,
761 const size_t iterations);
762
763//------------------------------------------------------------------------------
780//------------------------------------------------------------------------------
782 graph_node *inputs, size_t num_inputs,
783 graph_node *outputs, size_t num_outputs,
784 graph_node *map_inputs,
785 graph_node *map_outputs, size_t num_maps,
786 graph_node *atomics, size_t num_atomics,
787 graph_node random_state,
788 const char *name,
789 const size_t size,
790 const size_t iterations);
791
792//------------------------------------------------------------------------------
808//------------------------------------------------------------------------------
810 graph_node *inputs, size_t num_inputs,
811 graph_node *outputs, size_t num_outputs,
812 graph_node *map_inputs,
813 graph_node *map_outputs, size_t num_maps,
814 graph_node *atomics, size_t num_atomics,
815 graph_node random_state,
816 const char *name,
817 const size_t size);
818
819//------------------------------------------------------------------------------
837//------------------------------------------------------------------------------
839 graph_node *inputs, size_t num_inputs,
840 graph_node *outputs, size_t num_outputs,
841 graph_node *map_inputs,
842 graph_node *map_outputs, size_t num_maps,
843 graph_node *atomics, size_t num_atomics,
844 graph_node random_state,
845 const char *name,
846 const size_t size,
847 const double tol,
848 const size_t max_iter);
849
850//------------------------------------------------------------------------------
868//------------------------------------------------------------------------------
870 graph_node *inputs, size_t num_inputs,
871 graph_node *outputs, size_t num_outputs,
872 graph_node *map_inputs,
873 graph_node *map_outputs, size_t num_maps,
874 graph_node *atomics, size_t num_atomics,
875 graph_node random_state,
876 const char *name,
877 const size_t size,
878 const double tol,
879 const size_t max_iter);
880
881//------------------------------------------------------------------------------
899//------------------------------------------------------------------------------
901 graph_node *inputs, size_t num_inputs,
902 graph_node *outputs, size_t num_outputs,
903 graph_node *map_inputs,
904 graph_node *map_outputs, size_t num_maps,
905 graph_node *atomics, size_t num_atomics,
906 graph_node random_state,
907 const char *name,
908 const size_t size,
909 const double tol,
910 const size_t max_iter);
911
912//------------------------------------------------------------------------------
918//------------------------------------------------------------------------------
920 graph_node *inputs, size_t num_inputs);
921
922//------------------------------------------------------------------------------
928//------------------------------------------------------------------------------
930 graph_node *inputs, size_t num_inputs);
931
932//------------------------------------------------------------------------------
938//------------------------------------------------------------------------------
940 graph_node *inputs, size_t num_inputs);
941
942//------------------------------------------------------------------------------
949//------------------------------------------------------------------------------
951 graph_node *map_inputs,
952 graph_node *map_outputs, size_t num_maps);
953
954//------------------------------------------------------------------------------
961//------------------------------------------------------------------------------
963 graph_node *map_inputs,
964 graph_node *map_outputs, size_t num_maps);
965
966//------------------------------------------------------------------------------
973//------------------------------------------------------------------------------
975 graph_node *map_inputs,
976 graph_node *map_outputs, size_t num_maps);
977
978//------------------------------------------------------------------------------
982//------------------------------------------------------------------------------
984
985//------------------------------------------------------------------------------
989//------------------------------------------------------------------------------
991
992//------------------------------------------------------------------------------
996//------------------------------------------------------------------------------
998
999//------------------------------------------------------------------------------
1003//------------------------------------------------------------------------------
1005
1006//------------------------------------------------------------------------------
1010//------------------------------------------------------------------------------
1012
1013//------------------------------------------------------------------------------
1019//------------------------------------------------------------------------------
1021 graph_node node,
1022 void *source);
1023
1024//------------------------------------------------------------------------------
1030//------------------------------------------------------------------------------
1032 graph_node node,
1033 void *destination);
1034
1035//------------------------------------------------------------------------------
1042//------------------------------------------------------------------------------
1044 const size_t index,
1045 graph_node *nodes,
1046 const size_t num_nodes);
1047
1048//------------------------------------------------------------------------------
1054//------------------------------------------------------------------------------
1056 graph_node fnode,
1057 graph_node xnode);
1058#ifdef __cplusplus
1059}
1060#endif
1061
1062#endif /* graph_c_binding_h */
void graph_add_item(STRUCT_TAG graph_c_context *c, graph_node *inputs, size_t num_inputs, graph_node *outputs, size_t num_outputs, graph_node *map_inputs, graph_node *map_outputs, size_t num_maps, graph_node *atomics, size_t num_atomics, graph_node random_state, const char *name, const size_t size)
Add workflow item.
Definition graph_c_binding.cpp:3120
graph_node graph_log(STRUCT_TAG graph_c_context *c, graph_node arg)
Create log node.
Definition graph_c_binding.cpp:892
graph_node graph_sin(STRUCT_TAG graph_c_context *c, graph_node arg)
Create sine node.
Definition graph_c_binding.cpp:1068
STRUCT_TAG graph_c_context * graph_construct_context(const enum graph_type type, const bool use_safe_math)
Construct a C context.
Definition graph_c_binding.cpp:40
graph_node graph_index(STRUCT_TAG graph_c_context *c)
Create an index code.
Definition graph_c_binding.cpp:2002
graph_node graph_greater_than(STRUCT_TAG graph_c_context *c, graph_node left, graph_node right)
Create a greater than node.
Definition graph_c_binding.cpp:2241
graph_node graph_exp(STRUCT_TAG graph_c_context *c, graph_node arg)
Create exp node.
Definition graph_c_binding.cpp:828
graph_node graph_index_2D(STRUCT_TAG graph_c_context *c, graph_node variable, const size_t num_cols, graph_node x_arg, const double x_scale, const double x_offset, graph_node y_arg, const double y_scale, const double y_offset)
Create a 2D index.
Definition graph_c_binding.cpp:1787
void graph_destroy_context(STRUCT_TAG graph_c_context *c)
Destroy C context.
graph_node graph_atomic_accumulate_1D(STRUCT_TAG graph_c_context *c, graph_node variable, graph_node index, const double scale, const double offset, graph_node arg)
Create an atomic accumulate 1D index.
Definition graph_c_binding.cpp:1903
graph_node graph_sqrt(STRUCT_TAG graph_c_context *c, graph_node arg)
Create Sqrt node.
Definition graph_c_binding.cpp:764
graph_node graph_constant(STRUCT_TAG graph_c_context *c, const double value)
Create constant node.
Definition graph_c_binding.cpp:164
graph_node graph_pseudo_variable(STRUCT_TAG graph_c_context *c, graph_node var)
Create a pseudo variable.
Definition graph_c_binding.cpp:366
graph_node graph_random(STRUCT_TAG graph_c_context *c, graph_node state)
Create random node.
Definition graph_c_binding.cpp:1337
graph_node graph_add(STRUCT_TAG graph_c_context *c, graph_node left, graph_node right)
Create Addition node.
Definition graph_c_binding.cpp:498
graph_node graph_random_state(STRUCT_TAG graph_c_context *c, const size_t size, const uint32_t seed)
Construct a random state node.
Definition graph_c_binding.cpp:1266
void graph_print(STRUCT_TAG graph_c_context *c, const size_t index, graph_node *nodes, const size_t num_nodes)
Print a value from nodes.
Definition graph_c_binding.cpp:7766
void graph_post_run(STRUCT_TAG graph_c_context *c)
Run post work items.
void graph_add_pre_item(STRUCT_TAG graph_c_context *c, graph_node *inputs, size_t num_inputs, graph_node *outputs, size_t num_outputs, graph_node *map_inputs, graph_node *map_outputs, size_t num_maps, graph_node *atomics, size_t num_atomics, graph_node random_state, const char *name, const size_t size)
Add pre workflow item.
Definition graph_c_binding.cpp:2699
void graph_add_pre_zero_item(STRUCT_TAG graph_c_context *c, graph_node *inputs, size_t num_inputs)
Add a pre zero item.
Definition graph_c_binding.cpp:6544
graph_node graph_less_than_equal(STRUCT_TAG graph_c_context *c, graph_node left, graph_node right)
Create a less than node.
Definition graph_c_binding.cpp:2376
graph_node graph_or(STRUCT_TAG graph_c_context *c, graph_node left, graph_node right)
Create an or node.
Definition graph_c_binding.cpp:2466
graph_type
Graph base type.
Definition graph_c_binding.h:153
graph_node graph_piecewise_1D(STRUCT_TAG graph_c_context *c, graph_node arg, const double scale, const double offset, const void *source, const size_t source_size)
Create 1D piecewise node.
Definition graph_c_binding.cpp:1456
graph_node graph_cos(STRUCT_TAG graph_c_context *c, graph_node arg)
Create cosine node.
Definition graph_c_binding.cpp:1132
void graph_add_post_copy_item(STRUCT_TAG graph_c_context *c, graph_node *map_inputs, graph_node *map_outputs, size_t num_maps)
Add a post copy item.
Definition graph_c_binding.cpp:7265
graph_node graph_mul(STRUCT_TAG graph_c_context *c, graph_node left, graph_node right)
Create Multiply node.
Definition graph_c_binding.cpp:630
void graph_add_zero_item(STRUCT_TAG graph_c_context *c, graph_node *inputs, size_t num_inputs)
Add a copy item.
Definition graph_c_binding.cpp:6684
graph_node graph_erfi(STRUCT_TAG graph_c_context *c, graph_node arg)
Create imaginary error function node.
Definition graph_c_binding.cpp:1022
void graph_run(STRUCT_TAG graph_c_context *c)
Run work items.
void graph_add_pre_copy_item(STRUCT_TAG graph_c_context *c, graph_node *map_inputs, graph_node *map_outputs, size_t num_maps)
Add a pre copy item.
Definition graph_c_binding.cpp:6965
void graph_add_copy_item(STRUCT_TAG graph_c_context *c, graph_node *map_inputs, graph_node *map_outputs, size_t num_maps)
Add a copy item.
Definition graph_c_binding.cpp:7115
void graph_set_device_number(STRUCT_TAG graph_c_context *c, const size_t num)
Choose the device number.
Definition graph_c_binding.cpp:2637
graph_node graph_pow(STRUCT_TAG graph_c_context *c, graph_node left, graph_node right)
Create Pow node.
Definition graph_c_binding.cpp:957
graph_node graph_variable(STRUCT_TAG graph_c_context *c, const size_t size, const char *symbol)
Create variable node.
Definition graph_c_binding.cpp:99
size_t graph_get_max_concurrency(STRUCT_TAG graph_c_context *c)
Create 2D piecewise node with complex arguments.
void graph_add_loop_item(STRUCT_TAG graph_c_context *c, graph_node *inputs, size_t num_inputs, graph_node *outputs, size_t num_outputs, graph_node *map_inputs, graph_node *map_outputs, size_t num_maps, graph_node *atomics, size_t num_atomics, graph_node random_state, const char *name, const size_t size, const size_t iterations)
Add workflow loop item.
Definition graph_c_binding.cpp:4386
void * graph_node
Graph node type for C interface.
Definition graph_c_binding.h:148
graph_node graph_df(STRUCT_TAG graph_c_context *c, graph_node fnode, graph_node xnode)
Take derivative ∂f∂x.
Definition graph_c_binding.cpp:7852
graph_node graph_sub(STRUCT_TAG graph_c_context *c, graph_node left, graph_node right)
Create Subtract node.
Definition graph_c_binding.cpp:564
void graph_copy_to_host(STRUCT_TAG graph_c_context *c, graph_node node, void *destination)
Copy data to a host buffer.
Definition graph_c_binding.cpp:7712
void graph_copy_to_device(STRUCT_TAG graph_c_context *c, graph_node node, void *source)
Copy data to a device buffer.
Definition graph_c_binding.cpp:7659
graph_node graph_atan(STRUCT_TAG graph_c_context *c, graph_node left, graph_node right)
Create arctangent node.
Definition graph_c_binding.cpp:1197
graph_node graph_not(STRUCT_TAG graph_c_context *c, graph_node arg)
Create not node.
Definition graph_c_binding.cpp:2065
graph_node graph_remove_pseudo(STRUCT_TAG graph_c_context *c, graph_node var)
Remove pseudo.
Definition graph_c_binding.cpp:430
graph_node graph_constant_c(STRUCT_TAG graph_c_context *c, const double real_value, const double img_value)
Create complex constant node.
Definition graph_c_binding.cpp:322
graph_node graph_div(STRUCT_TAG graph_c_context *c, graph_node left, graph_node right)
Create Divide node.
Definition graph_c_binding.cpp:696
graph_node graph_index_1D(STRUCT_TAG graph_c_context *c, graph_node variable, graph_node arg, const double scale, const double offset)
Create a 1D index.
Definition graph_c_binding.cpp:1691
void graph_add_converge_item(STRUCT_TAG graph_c_context *c, graph_node *inputs, size_t num_inputs, graph_node *outputs, size_t num_outputs, graph_node *map_inputs, graph_node *map_outputs, size_t num_maps, graph_node *atomics, size_t num_atomics, graph_node random_state, const char *name, const size_t size, const double tol, const size_t max_iter)
Add a converge item.
Definition graph_c_binding.cpp:5674
graph_node graph_less_than(STRUCT_TAG graph_c_context *c, graph_node left, graph_node right)
Create a less than node.
Definition graph_c_binding.cpp:2286
void graph_set_variable(STRUCT_TAG graph_c_context *c, graph_node var, const void *source)
Set a variable value.
Definition graph_c_binding.cpp:228
graph_node graph_if(STRUCT_TAG graph_c_context *c, graph_node condition, graph_node t, graph_node f)
Create a if node.
Definition graph_c_binding.cpp:2512
graph_node graph_equal(STRUCT_TAG graph_c_context *c, graph_node left, graph_node right)
Create an equal node.
Definition graph_c_binding.cpp:2109
void graph_compile(STRUCT_TAG graph_c_context *c)
Compile the work items.
graph_node graph_not_equal(STRUCT_TAG graph_c_context *c, graph_node left, graph_node right)
Create a not equal node.
Definition graph_c_binding.cpp:2175
void graph_add_post_zero_item(STRUCT_TAG graph_c_context *c, graph_node *inputs, size_t num_inputs)
Add a post zero item.
Definition graph_c_binding.cpp:6824
#define STRUCT_TAG
Definition graph_c_binding.h:145
void graph_add_post_item(STRUCT_TAG graph_c_context *c, graph_node *inputs, size_t num_inputs, graph_node *outputs, size_t num_outputs, graph_node *map_inputs, graph_node *map_outputs, size_t num_maps, graph_node *atomics, size_t num_atomics, graph_node random_state, const char *name, const size_t size)
Add post workflow item.
Definition graph_c_binding.cpp:3541
void graph_add_post_converge_item(STRUCT_TAG graph_c_context *c, graph_node *inputs, size_t num_inputs, graph_node *outputs, size_t num_outputs, graph_node *map_inputs, graph_node *map_outputs, size_t num_maps, graph_node *atomics, size_t num_atomics, graph_node random_state, const char *name, const size_t size, const double tol, const size_t max_iter)
Add a post converge item.
Definition graph_c_binding.cpp:6115
graph_node graph_and(STRUCT_TAG graph_c_context *c, graph_node left, graph_node right)
Create an and node.
Definition graph_c_binding.cpp:2421
graph_node graph_piecewise_2D(STRUCT_TAG graph_c_context *c, const size_t num_cols, graph_node x_arg, const double x_scale, const double x_offset, graph_node y_arg, const double y_scale, const double y_offset, const void *source, const size_t source_size)
Create 2D piecewise node.
Definition graph_c_binding.cpp:1560
void graph_add_pre_converge_item(STRUCT_TAG graph_c_context *c, graph_node *inputs, size_t num_inputs, graph_node *outputs, size_t num_outputs, graph_node *map_inputs, graph_node *map_outputs, size_t num_maps, graph_node *atomics, size_t num_atomics, graph_node random_state, const char *name, const size_t size, const double tol, const size_t max_iter)
Add a pre converge item.
Definition graph_c_binding.cpp:5233
graph_node graph_greater_than_equal(STRUCT_TAG graph_c_context *c, graph_node left, graph_node right)
Create a greater than equal node.
Definition graph_c_binding.cpp:2331
void graph_add_pre_loop_item(STRUCT_TAG graph_c_context *c, graph_node *inputs, size_t num_inputs, graph_node *outputs, size_t num_outputs, graph_node *map_inputs, graph_node *map_outputs, size_t num_maps, graph_node *atomics, size_t num_atomics, graph_node random_state, const char *name, const size_t size, const size_t iterations)
Add pre loop workflow item.
Definition graph_c_binding.cpp:3963
void graph_wait(STRUCT_TAG graph_c_context *c)
Wait for work items to complete.
void graph_pre_run(STRUCT_TAG graph_c_context *c)
Run pre work items.
graph_c_context type.
Definition graph_c_binding.h:163
enum graph_type type
Type of the context.
Definition graph_c_binding.h:165
bool safe_math
Uses safe math.
Definition graph_c_binding.h:167