# 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 needs to be fixed


## See Also
 [](sec_scatter), `IS`, `MatPartitioningCreate()`, `ISPartitioningToNumbering()`, `ISPartitioningCount()`

## Level
advanced

## Location
<A HREF="PETSC_DOC_OUT_ROOT_PLACEHOLDER/src/vec/is/is/utils/iscoloring.c.html#ISBuildTwoSided">src/vec/is/is/utils/iscoloring.c</A>

## Examples
<A HREF="PETSC_DOC_OUT_ROOT_PLACEHOLDER/src/ksp/ksp/tutorials/ex64.c.html">src/ksp/ksp/tutorials/ex64.c.html</A><BR>


---
[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](/docs/manualpages/index.md)  
[Index of all manual pages](/docs/manualpages/singleindex.md)  
