@kv  0.0.4
Library for graph problems in C and Python
ift.h
1 
18 #if !defined(AT_IMGPROC_H_INSIDE)
19 #error "Only <at/imgproc.h> can be included directly."
20 #endif
21 #ifndef AT_IFT_H
22 #define AT_IFT_H
23 #include <at/core.h>
24 #include <at/imgproc.h>
25 AT_BEGIN_DECLS
29 typedef struct AtIFT{
30  // Output
31  uint64_t* p; /*00+08*/
32  uint64_t* r; /*08+08*/
33  double * c;/*16+08*/
34  uint8_t * l; /*24+08*/
35  // Total: 32 bytes
36 }AtIFT;
37 
38 typedef void
39 (*AtConnInitu8)(AtIFT* ift, AtArrayU8* array);
40 typedef void
41 (*AtConnInitSeeds)(AtIFT* ift, AtSeeds* seeds);
42 typedef double
43 (*AtConnFuncu8) (AtIFT* ift, AtGraphArray* graph,
44  uint64_t s, uint64_t t, uint64_t i);
45 
49 typedef struct AtConnectivity{
50  AtConnInitu8 init;
51  AtConnInitSeeds seeds;
52  AtConnFuncu8 func;
53  AtOptimization o;
55 
56 AtConnectivity at_conn_max;
57 AtConnectivity at_conn_maxr;
58 AtConnectivity at_conn_min;
59 AtConnectivity at_conn_minr;
60 AtConnectivity at_conn_sum;
61 AtConnectivity at_conn_euc;
62 
63 /*=============================================================================
64  FUNCTIONS
65  ============================================================================*/
66 #define at_ift_apply(input) _Generic((input), Array: at_ift_apply_array)
67 
79 AtIFT*
80 at_ift_apply_arrayu8(AtArrayU8* array,
81  AtGraphArray* g,
82  AtConnectivity connectivity,
83  AtSeeds* seeds,
84  AtPolicy po);
85 
86 AtSCC*
87 at_orfc_core_arrayu8(AtArrayU8 * array,
88  AtGraphArray * g,
89  AtConnectivity conn,
90  AtSeeds * seeds,
91  uint64_t lblback,
92  AtPolicy po,
93  AtSCCAlgorithm sccalgo);
94 AtIFT*
95 at_orfc_arrayu8(AtArrayU8* array,
96  AtGraphArray* g,
97  AtConnectivity conn,
98  AtSeeds* seeds,
99  uint64_t lblback,
100  AtPolicy po);
109 AtSeeds *at_seeds_from_mask(AtArrayU8* mask);
110 
111 AT_END_DECLS
112 #endif
Seeds (being a compact list or mask)
Definition: seed.h:32
AtOptimization o
Definition: ift.h:53
Definition: ift.h:29
AtConnInitSeeds seeds
Definition: ift.h:51
AtConnInitu8 init
Definition: ift.h:50
A directed weighted grid graph.
Definition: grapharray.h:43
uint64_t * r
Definition: ift.h:32
uint64_t * p
Definition: ift.h:31
information for connectivity function
Definition: ift.h:49
AtConnFuncu8 func
Definition: ift.h:52
uint8_t * l
Definition: ift.h:34
double * c
Definition: ift.h:33
Definition: scc.h:27