class_docstr: !
  @brief Class represents clustering algorithm HSyncNet. HSyncNet is bio-inspired algorithm that is based on oscillatory network that uses modified Kuramoto model.
  
  Example:
  @code
      from pyclustering.cluster.hsyncnet import hsyncnet
      from pyclustering.nnet.sync import sync_visualizer
      from pyclustering.utils import read_sample, draw_clusters
      from pyclustering.samples.definitions import SIMPLE_SAMPLES
  
      # Read list of points for cluster analysis.
      sample = read_sample(SIMPLE_SAMPLES.SAMPLE_SIMPLE2)
  
      # Create network for allocation of three clusters.
      network = hsyncnet(sample, 3)
  
      # Run cluster analysis and output dynamic of the network.
      analyser = network.process(0.995, collect_dynamic=True)
  
      # Get allocated clusters.
      clusters = analyser.allocate_clusters(eps=0.1)
  
      # Show output dynamic of the network.
      sync_visualizer.show_output_dynamic(analyser)
  
      # Show allocated clusters.
      draw_clusters(sample, clusters)
  @endcode
docstr: !
  @brief Costructor of the oscillatory network hSyncNet for cluster analysis.
  
  @param[in] source_data (list): Input data set defines structure of the network.
  @param[in] number_clusters (uint): Number of clusters that should be allocated.
  @param[in] osc_initial_phases (initial_type): Type of initialization of initial values of phases of oscillators.
  @param[in] initial_neighbors (uint): Defines initial connectivity-radius by average distance to connect specified amount of oscillators (points).
  @param[in] increase_persent (double): Percent of increasing of radius connectivity on each iteration (input values in range (0.0; 1.0) correspond to (0%; 100%)).
  @param[in] ccore (bool): If True than DLL CCORE (C++ solution) will be used for solving.
code: def __init__(
      self,
      source_data,
      number_clusters,
      osc_initial_phases=initial_type.RANDOM_GAUSSIAN,
      initial_neighbors=3,
      increase_persent=0.15,
      ccore=True,
  ):
      """!
      @brief Costructor of the oscillatory network hSyncNet for cluster analysis.
  
      @param[in] source_data (list): Input data set defines structure of the network.
      @param[in] number_clusters (uint): Number of clusters that should be allocated.
      @param[in] osc_initial_phases (initial_type): Type of initialization of initial values of phases of oscillators.
      @param[in] initial_neighbors (uint): Defines initial connectivity-radius by average distance to connect specified amount of oscillators (points).
      @param[in] increase_persent (double): Percent of increasing of radius connectivity on each iteration (input values in range (0.0; 1.0) correspond to (0%; 100%)).
      @param[in] ccore (bool): If True than DLL CCORE (C++ solution) will be used for solving.
  
      """
  
      self.__ccore_network_pointer = None
  
      if initial_neighbors >= len(source_data):
          initial_neighbors = len(source_data) - 1
  
      if (ccore is True) and ccore_library.workable():
          self.__ccore_network_pointer = (
              wrapper.hsyncnet_create_network(
                  source_data,
                  number_clusters,
                  osc_initial_phases,
                  initial_neighbors,
                  increase_persent,
              )
          )
      else:
          super().__init__(
              source_data,
              0,
              initial_phases=osc_initial_phases,
              ccore=False,
          )
  
          self.__initial_neighbors = initial_neighbors
          self.__increase_persent = increase_persent
          self._number_clusters = number_clusters
  
file_path: pyclustering/pyclustering/cluster/hsyncnet.py
imports: import pyclustering.core.hsyncnet_wrapper
  from pyclustering.core.wrapper import ccore_library
  from pyclustering.nnet import initial_type, solve_type
  from pyclustering.cluster.syncnet import syncnet, syncnet_analyser
  from pyclustering.utils import average_neighbor_distance
label_desc: Use image node_id 1 to create a new hsyncnet object from inherited base classes: syncnet with example: obj = hsyncnet(source_data, number_clusters, osc_initial_phases, initial_neighbors, increase_persent, ccore)