1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72
|
/*!
@authors Andrei Novikov (pyclustering@yandex.ru)
@date 2014-2020
@copyright BSD-3-Clause
*/
#pragma once
#include <pyclustering/interface/pyclustering_package.hpp>
#include <pyclustering/definitions.hpp>
/**
*
* @brief Create oscillatory network HSyncNet (hierarchical Sync) for cluster analysis.
*
* @param[in] p_sample: Input data for clustering.
* @param[in] p_number_clusters: Number of clusters that should be allocated.
* @param[in] p_initial_phases: Type of initialization of initial phases of oscillators.
* @param[in] p_initial_neighbors: Defines initial radius connectivity by calculation average distance
* to connect specify number of oscillators.
* @param[in] p_increase_persent: Percent of increasing of radius connectivity on each step (input
* values in range (0.0; 1.0) correspond to (0%; 100%)).
*
* @return Pointer of hsyncnet network. Caller should free it by 'hsyncnet_destroy_network'.
*
*/
extern "C" DECLARATION void * hsyncnet_create_network(const pyclustering_package * const p_sample,
const unsigned int p_number_clusters,
const unsigned int p_initial_phases,
const unsigned int p_initial_neighbors,
const double p_increase_persent);
/**
*
* @brief Destroy oscillatory network HSyncNet (calls destructor).
*
* @param[in] pointer_network: Pointer to HSyncNet oscillatory network.
*
*/
extern "C" DECLARATION void hsyncnet_destroy_network(const void * p_pointer_network);
/**
*
* @brief Simulate oscillatory network hierarchical SYNC until clustering problem is not resolved.
* @details Caller should destroy instance of hsyncnet analyser of output dynamic using 'hsyncnet_analyser_destroy'.
*
* @param[in] p_pointer_network: Pointer to instance of hsyncnet.
* @param[in] p_order: Order of synchronization that is used as indication for stopping processing.
* @param[in] p_solver: Specified type of solving diff. equation.
* @param[in] p_collect_dynamic: Specified requirement to collect whole dynamic of the network.
*
* @return Return pointer to hsyncnet analyser of output dynamic.
*
*/
extern "C" DECLARATION void * hsyncnet_process(const void * p_pointer_network,
const double p_order,
const unsigned int p_solver,
const bool p_collect_dynamic);
/**
*
* @brief Destroy instance of analyser of hsyncnet (hierarchical sync oscillatory network).
*
* @param[in] p_pointer_analyser: Pointer to hsyncnet output dynamic analyser.
*
*/
extern "C" DECLARATION void hsyncnet_analyser_destroy(const void * p_pointer_analyser);
|