summaryrefslogtreecommitdiff
path: root/support/texlab/crates/bibutils_sys/src/intlist.h
blob: c98f145e2f57a83e864d55dc162f6f6940b45d62 (plain)
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
/*
 * intlist.h
 *
 * Copyright (c) Chris Putnam 2007-2019
 *
 * Version 01/12/2017
 *
 * Source code released under the GPL version 2
 *
 */

#ifndef INTLIST_H
#define INTLIST_H

#define INTLIST_OK            (0)
#define INTLIST_MEMERR        (-1)
#define INTLIST_VALUE_MISSING (-2)

typedef struct intlist {
	int n, max;
	int *data;
} intlist;

void      intlist_init( intlist *il );
int       intlist_init_fill( intlist *il, int n, int value );
int       intlist_init_range( intlist *il, int low, int high, int step );
intlist * intlist_new( void );
intlist * intlist_new_fill( int n, int value );
intlist * intlist_new_range( int low, int high, int step );
void      intlist_delete( intlist *il );
void      intlist_sort( intlist *il );
void      intlist_randomize( intlist *il );
int       intlist_add( intlist *il, int value );
int       intlist_add_unique( intlist *il, int value );
int       intlist_fill( intlist *il, int n, int value );
int       intlist_fill_range( intlist *il, int low, int high, int step );
int       intlist_find( intlist *il, int searchvalue );
int       intlist_find_or_add( intlist *il, int searchvalue );
void      intlist_empty( intlist *il );
void      intlist_free( intlist *il );
int       intlist_copy( intlist *to, intlist *from );
intlist * intlist_dup( intlist *from );
int       intlist_get( intlist *il, int pos );
int       intlist_set( intlist *il, int pos, int value );
int       intlist_remove( intlist *il, int searchvalue );
int       intlist_remove_pos( intlist *il, int pos );
int       intlist_append( intlist *to, intlist *from );
int       intlist_append_unique( intlist *to, intlist *from );
float     intlist_median( intlist *il );
float     intlist_mean( intlist *il );

#endif