@startuml
    remove .*\.(Instance|Par|Parameterizer|Factory)$
    set namespaceSeparator none
    hide empty fields
    hide empty methods

    class "<size:14>SphericalHamerlyKMeans\n<size:10>elki.clustering.kmeans.spherical" as elki.clustering.kmeans.spherical.SphericalHamerlyKMeans<V extends NumberVector> [[SphericalHamerlyKMeans.html]] {
        {static} -LOG: Logging
        #varstat: boolean
        +SphericalHamerlyKMeans(int, int, KMeansInitialization, boolean)
        +run(Relation<V extends NumberVector>): Clustering<KMeansModel>
        #getLogger(): Logging
    }

    class "<size:14>SphericalKMeans\n<size:10>elki.clustering.kmeans.spherical" as elki.clustering.kmeans.spherical.SphericalKMeans<V extends NumberVector> [[SphericalKMeans.html]]
    class "<size:14>SphericalHamerlyKMeans.Instance\n<size:10>elki.clustering.kmeans.spherical" as elki.clustering.kmeans.spherical.SphericalHamerlyKMeans.Instance [[SphericalHamerlyKMeans.Instance.html]]
    class "<size:14>SphericalHamerlyKMeans.Par\n<size:10>elki.clustering.kmeans.spherical" as elki.clustering.kmeans.spherical.SphericalHamerlyKMeans.Par<V extends NumberVector> [[SphericalHamerlyKMeans.Par.html]]

    elki.clustering.kmeans.spherical.SphericalKMeans <|-- elki.clustering.kmeans.spherical.SphericalHamerlyKMeans
    elki.clustering.kmeans.spherical.SphericalHamerlyKMeans +-- elki.clustering.kmeans.spherical.SphericalHamerlyKMeans.Instance
    elki.clustering.kmeans.spherical.SphericalHamerlyKMeans +-- elki.clustering.kmeans.spherical.SphericalHamerlyKMeans.Par

    center footer UMLDoclet 2.0.19, PlantUML 1.2022.8
@enduml
