YAC
3.18.0
Yet Another Coupler
Loading...
Searching...
No Matches
interval_tree.h
Go to the documentation of this file.
1
// Copyright (c) 2024 The YAC Authors
2
//
3
// SPDX-License-Identifier: BSD-3-Clause
4
5
#ifndef INTERVAL_TREE_H
6
#define INTERVAL_TREE_H
7
8
#include <stdlib.h>
9
10
struct
interval
11
{
12
double
left
,
right
;
13
};
14
15
static
inline
int
16
overlap_test
(
struct
interval
a,
struct
interval
b)
17
{
18
return
(a.
left
<= b.
left
&& a.
right
>= b.
left
) ||
19
(a.
left
> b.
left
&& a.
left
<= b.
right
);
20
}
21
22
struct
interval_node
23
{
24
struct
interval
range
;
25
double
max
;
26
size_t
value
;
27
};
28
29
void
30
yac_generate_interval_tree
(
struct
interval_node
intervals[],
size_t
num_nodes);
31
32
struct
overlaps
33
{
34
size_t
num_overlaps
,
a_size
;
35
size_t
*
overlap_iv
;
36
};
37
38
void
39
yac_search_interval_tree
(
struct
interval_node
tree[],
size_t
num_nodes,
40
struct
interval
query,
struct
overlaps
*
overlaps
);
41
42
#endif
43
yac_search_interval_tree
void yac_search_interval_tree(struct interval_node tree[], size_t num_nodes, struct interval query, struct overlaps *overlaps)
Definition
interval_tree.c:76
yac_generate_interval_tree
void yac_generate_interval_tree(struct interval_node intervals[], size_t num_nodes)
Definition
interval_tree.c:38
overlap_test
static int overlap_test(struct interval a, struct interval b)
Definition
interval_tree.h:16
interval_node
Definition
interval_tree.h:23
interval_node::value
size_t value
Definition
interval_tree.h:26
interval_node::range
struct interval range
Definition
interval_tree.h:24
interval_node::max
double max
Definition
interval_tree.h:25
interval
Definition
interval_tree.h:11
interval::right
double right
Definition
interval_tree.h:12
interval::left
double left
Definition
interval_tree.h:12
overlaps
Definition
interval_tree.h:33
overlaps::overlap_iv
size_t * overlap_iv
Definition
interval_tree.h:35
overlaps::num_overlaps
size_t num_overlaps
Definition
interval_tree.h:34
overlaps::a_size
size_t a_size
Definition
interval_tree.h:34
src
core
interval_tree.h
Generated on Tue Jun 30 2026 14:08:01 for YAC by
1.11.0