Skip to main content
`Ctrl`+`K`

# ISComplement

Given an index set `IS` generates the complement index set. That is all indices that are NOT in the given set.

## Synopsis

    #include "petscis.h"
    PetscErrorCode ISComplement(IS is, PetscInt nmin, PetscInt nmax, IS *isout)

Collective

## Input Parameters

- is - the index set

- nmin - the first index desired in the local part of the complement

- nmax - the largest index desired in the local part of the complement (note that all indices in `is` must be greater or equal to `nmin` and less than `nmax`)

## Output Parameter

- isout - the complement

## Notes

The communicator for `isout` is the same as for the input `is`

For a parallel `is`, this will generate the local part of the complement on each process

To generate the entire complement (on each process) of a parallel `is`, first call `ISAllGather()` and then call this routine.

## See Also

Low-level Vector Communication, `IS`, `ISCreateGeneral()`, `ISCreateStride()`, `ISCreateBlock()`, `ISAllGather()`

## Level

intermediate

## Location

src/vec/is/is/utils/iscoloring.c

## Examples

src/ksp/pc/tutorials/ex4.c
src/vec/vec/utils/tagger/tutorials/ex1.c

Index of all IS routines
Table of Contents for all manual pages
Index of all manual pages