Blame bibutils/intlist.h

Packit 89ede9
/*
Packit 89ede9
 * intlist.h
Packit 89ede9
 *
Packit 89ede9
 * Copyright (c) Chris Putnam 2007-2018
Packit 89ede9
 *
Packit 89ede9
 * Version 01/12/2017
Packit 89ede9
 *
Packit 89ede9
 * Source code released under the GPL version 2
Packit 89ede9
 *
Packit 89ede9
 */
Packit 89ede9
Packit 89ede9
#ifndef INTLIST_H
Packit 89ede9
#define INTLIST_H
Packit 89ede9
Packit 89ede9
#define INTLIST_OK            (0)
Packit 89ede9
#define INTLIST_MEMERR        (-1)
Packit 89ede9
#define INTLIST_VALUE_MISSING (-2)
Packit 89ede9
Packit 89ede9
typedef struct intlist {
Packit 89ede9
	int n, max;
Packit 89ede9
	int *data;
Packit 89ede9
} intlist;
Packit 89ede9
Packit 89ede9
void      intlist_init( intlist *il );
Packit 89ede9
int       intlist_init_fill( intlist *il, int n, int value );
Packit 89ede9
int       intlist_init_range( intlist *il, int low, int high, int step );
Packit 89ede9
intlist * intlist_new( void );
Packit 89ede9
intlist * intlist_new_fill( int n, int value );
Packit 89ede9
intlist * intlist_new_range( int low, int high, int step );
Packit 89ede9
void      intlist_delete( intlist *il );
Packit 89ede9
void      intlist_sort( intlist *il );
Packit 89ede9
void      intlist_randomize( intlist *il );
Packit 89ede9
int       intlist_add( intlist *il, int value );
Packit 89ede9
int       intlist_add_unique( intlist *il, int value );
Packit 89ede9
int       intlist_fill( intlist *il, int n, int value );
Packit 89ede9
int       intlist_fill_range( intlist *il, int low, int high, int step );
Packit 89ede9
int       intlist_find( intlist *il, int searchvalue );
Packit 89ede9
int       intlist_find_or_add( intlist *il, int searchvalue );
Packit 89ede9
void      intlist_empty( intlist *il );
Packit 89ede9
void      intlist_free( intlist *il );
Packit 89ede9
int       intlist_copy( intlist *to, intlist *from );
Packit 89ede9
intlist * intlist_dup( intlist *from );
Packit 89ede9
int       intlist_get( intlist *il, int pos );
Packit 89ede9
int       intlist_set( intlist *il, int pos, int value );
Packit 89ede9
int       intlist_remove( intlist *il, int searchvalue );
Packit 89ede9
int       intlist_remove_pos( intlist *il, int pos );
Packit 89ede9
int       intlist_append( intlist *to, intlist *from );
Packit 89ede9
int       intlist_append_unique( intlist *to, intlist *from );
Packit 89ede9
float     intlist_median( intlist *il );
Packit 89ede9
float     intlist_mean( intlist *il );
Packit 89ede9
Packit 89ede9
#endif