:orphan:
# VecTaggerComputeBoxes
If the tagged index set can be summarized as a list of boxes of values, returns that list, otherwise returns in listed `PETSC_FALSE`
## Synopsis
```
#include "petscvec.h"
PetscErrorCode VecTaggerComputeBoxes(VecTagger tagger, Vec vec, PetscInt *numBoxes, VecTaggerBox **boxes, PetscBool *listed)
```
Collective on VecTagger
## Input Parameters
- ***tagger -*** the `VecTagger` context
- ***vec -*** the vec to tag
## Output Parameters
- ***numBoxes -*** the number of boxes in the tag definition
- ***boxes -*** a newly allocated list of boxes. This is a flat array of (BlockSize * `numBoxe`s) pairs that the user can free with `PetscFree()`.
- ***listed -*** `PETSC_TRUE` if a list was created, pass in `NULL` if not needed
## Note
A value is tagged if it is in any of the boxes, unless the tagger has been inverted (see `VecTaggerSetInvert()`/`VecTaggerGetInvert()`), in which case a value is tagged if it is in none of the boxes.
## See Also
`VecTaggerComputeIS()`, `VecTagger`, `VecTaggerCreate()`
## Level
advanced
## Location
src/vec/vec/utils/tagger/interface/tagger.c
## Examples
src/vec/vec/utils/tagger/tutorials/ex1.c
## Implementations
VecTaggerComputeBoxes_Absolute in src/vec/vec/utils/tagger/impls/absolute.c
VecTaggerComputeBoxes_And in src/vec/vec/utils/tagger/impls/and.c
VecTaggerComputeBoxes_CDF in src/vec/vec/utils/tagger/impls/cdf.c
VecTaggerComputeBoxes_Or in src/vec/vec/utils/tagger/impls/or.c
VecTaggerComputeBoxes_Relative in src/vec/vec/utils/tagger/impls/relative.c
---
[Edit on GitLab](https://gitlab.com/petsc/petsc/-/edit/release/src/vec/vec/utils/tagger/interface/tagger.c)
[Index of all Vec routines](index.md)
[Table of Contents for all manual pages](/manualpages/index.md)
[Index of all manual pages](/manualpages/singleindex.md)