xref: /petsc/src/mat/utils/freespace.h (revision a1a86e441dde154b814634202c717a78bc9a8a53)
1eb9c0419SKris Buschelman #if !defined(_FreeSpace_h_)
2eb9c0419SKris Buschelman #define _FreeSpace_h_
3eb9c0419SKris Buschelman 
470f19b1fSKris Buschelman #include "petsc.h"
570f19b1fSKris Buschelman 
6*a1a86e44SBarry Smith typedef struct _Space *PetscFreeSpaceList;
770f19b1fSKris Buschelman 
870f19b1fSKris Buschelman typedef struct _Space {
9*a1a86e44SBarry Smith   PetscFreeSpaceList more_space;
102e111b49SBarry Smith   PetscInt           *array;
112e111b49SBarry Smith   PetscInt           *array_head;
122e111b49SBarry Smith   PetscInt           total_array_size;
132e111b49SBarry Smith   PetscInt           local_used;
142e111b49SBarry Smith   PetscInt           local_remaining;
15*a1a86e44SBarry Smith };
1670f19b1fSKris Buschelman 
17*a1a86e44SBarry Smith PetscErrorCode PetscFreeSpaceGet(PetscInt,PetscFreeSpaceList*);
18*a1a86e44SBarry Smith PetscErrorCode PetscFreeSpaceContiguous(PetscFreeSpaceList*,PetscInt *);
19*a1a86e44SBarry Smith PetscErrorCode PetscFreeSpaceDestroy(PetscFreeSpaceList);
20eb9c0419SKris Buschelman 
21eb9c0419SKris Buschelman #endif
22