:orphan:
# MatHtoolClusteringType
Indicates the type of clustering used by a `MATHTOOL` 
## Synopsis
```
typedef enum {
  MAT_HTOOL_CLUSTERING_PCA_REGULAR,
  MAT_HTOOL_CLUSTERING_PCA_GEOMETRIC,
  MAT_HTOOL_CLUSTERING_BOUNDING_BOX_1_REGULAR,
  MAT_HTOOL_CLUSTERING_BOUNDING_BOX_1_GEOMETRIC
} MatHtoolClusteringType;
```

## Values

- ***`MAT_HTOOL_CLUSTERING_PCA_REGULAR` (default) -*** axis computed via principle component analysis, split uniformly
- ***`MAT_HTOOL_CLUSTERING_PCA_GEOMETRIC` -*** axis computed via principle component analysis, split barycentrically
- ***`MAT_HTOOL_CLUSTERING_BOUNDING_BOX_1_REGULAR` -*** axis along the largest extent of the bounding box, split uniformly
- ***`MAT_HTOOL_CLUSTERING_BOUNDING_BOX_1_GEOMETRIC` -*** axis along the largest extent of the bounding box, split barycentrically





## Note
Higher-dimensional clustering is not yet supported in Htool, but once it is, one should add BOUNDING_BOX_{2,3} types


## See Also
 [](ch_matrices), `Mat`, `MatCreateHtoolFromKernel()`, `MATHTOOL`, `MatHtoolCompressorType`

## Level
intermediate

## Location
<A HREF="PETSC_DOC_OUT_ROOT_PLACEHOLDER/include/petscmat.h.html#MatHtoolClusteringType">include/petscmat.h</A>


---
[Edit on GitLab](https://gitlab.com/petsc/petsc/-/edit/release/include/petscmat.h)


[Index of all Mat routines](index.md)  
[Table of Contents for all manual pages](/manualpages/index.md)  
[Index of all manual pages](/manualpages/singleindex.md)  
