Skip to main content
`Ctrl`+`K`

# 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

Matrices, `Mat`, `MatCreateHtoolFromKernel()`, `MATHTOOL`, `MatHtoolCompressorType`

## Level

intermediate

## Location

include/petscmat.h

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