:orphan:
# ISBuildTwoSided
Takes an `IS` that describes where each element will be mapped globally over all ranks. Generates an `IS` that contains new numbers from remote or local on the `IS`.
## Synopsis
```
#include "petscis.h"
PetscErrorCode ISBuildTwoSided(IS ito, IS toindx, IS *rows)
```
Collective
## Input Parameters
- ***ito -*** an `IS` describes where each entry will be mapped. Negative target rank will be ignored
- ***toindx -*** an `IS` describes what indices should send. `NULL` means sending natural numbering
## Output Parameter
- ***rows -*** contains new numbers from remote or local
## Developer Note
This manual page is incomprehensible and still needs to be fixed
## See Also
[](sec_scatter), `IS`, `MatPartitioningCreate()`, `ISPartitioningToNumbering()`, `ISPartitioningCount()`
## Level
advanced
## Location
src/vec/is/is/utils/iscoloring.c
## Examples
src/ksp/ksp/tutorials/ex64.c
---
[Edit on GitLab](https://gitlab.com/petsc/petsc/-/edit/release/src/vec/is/is/utils/iscoloring.c)
[Index of all IS routines](index.md)
[Table of Contents for all manual pages](/manualpages/index.md)
[Index of all manual pages](/manualpages/singleindex.md)