SYMBOL INDEX (49 symbols across 8 files) FILE: agglomerative_hierarchical.py class AgglomerativeResult (line 21) | class AgglomerativeResult: function linkage_distance (line 29) | def linkage_distance( function run_agglomerative (line 44) | def run_agglomerative( function parse_args (line 101) | def parse_args(): function main (line 123) | def main() -> None: FILE: clustering_utils.py function positive_int (line 16) | def positive_int(value: str) -> int: function non_negative_int (line 24) | def non_negative_int(value: str) -> int: function positive_float (line 32) | def positive_float(value: str) -> float: function fuzziness_value (line 40) | def fuzziness_value(value: str) -> float: function build_common_parser (line 48) | def build_common_parser( function load_pyplot (line 77) | def load_pyplot(show: bool): function save_figure (line 90) | def save_figure(figure, output_path: Path, show: bool) -> Path: function default_blob_centers (line 104) | def default_blob_centers(n_clusters: int) -> np.ndarray: function allocate_counts (line 126) | def allocate_counts(total: int, weights: Sequence[float]) -> list[int]: function make_convex_dataset (line 146) | def make_convex_dataset( function make_density_dataset (line 163) | def make_density_dataset(samples: int, seed: int) -> np.ndarray: function make_spectral_dataset (line 185) | def make_spectral_dataset(samples: int, seed: int) -> np.ndarray: function squared_distance_matrix (line 197) | def squared_distance_matrix(points: np.ndarray, centers: np.ndarray) -> ... function euclidean_distance_matrix (line 203) | def euclidean_distance_matrix(points: np.ndarray, others: np.ndarray) ->... function pairwise_distances (line 208) | def pairwise_distances(points: np.ndarray) -> np.ndarray: function initialize_kmeans_plus_plus (line 213) | def initialize_kmeans_plus_plus( function plot_clusters (line 243) | def plot_clusters( function format_cluster_summary (line 335) | def format_cluster_summary(labels: np.ndarray) -> str: function count_clusters (line 345) | def count_clusters(labels: np.ndarray) -> int: function ensure_python_39_compatible_features (line 350) | def ensure_python_39_compatible_features() -> None: FILE: dbscan.py class DBSCANResult (line 26) | class DBSCANResult: function run_dbscan (line 33) | def run_dbscan(points: np.ndarray, *, eps: float, min_samples: int) -> D... function parse_args (line 76) | def parse_args(): function main (line 98) | def main() -> None: FILE: fuzzy_c_means.py class FuzzyCMeansResult (line 23) | class FuzzyCMeansResult: function update_memberships (line 33) | def update_memberships( function update_centers (line 54) | def update_centers( function run_fuzzy_c_means (line 66) | def run_fuzzy_c_means( function parse_args (line 103) | def parse_args(): function main (line 137) | def main() -> None: FILE: k_means_plus_plus.py class KMeansResult (line 22) | class KMeansResult: function assign_points (line 32) | def assign_points(points: np.ndarray, centers: np.ndarray) -> tuple[np.n... function update_centers (line 40) | def update_centers( function run_kmeans (line 61) | def run_kmeans( function parse_args (line 100) | def parse_args(): function main (line 128) | def main() -> None: FILE: optics.py function plot_optics_result (line 21) | def plot_optics_result( function parse_args (line 108) | def parse_args(): function main (line 136) | def main() -> None: FILE: spectral_clustering.py function parse_args (line 19) | def parse_args(): function main (line 41) | def main() -> None: FILE: tests/test_repository.py function test_demo_scripts_smoke (line 29) | def test_demo_scripts_smoke(script_name: str, extra_args: list[str], tmp... function test_readmes_have_balanced_code_fences_and_valid_local_links (line 46) | def test_readmes_have_balanced_code_fences_and_valid_local_links() -> None: function test_expected_repository_files_exist (line 66) | def test_expected_repository_files_exist() -> None: