def __init__(self, num_osc, weight = <NUM_LIT:1>, frequency = <NUM_LIT:0>, type_conn = conn_type.ALL_TO_ALL, representation = conn_represent.MATRIX, initial_phases = initial_type.RANDOM_GAUSSIAN, ccore = True):
self._ccore_network_pointer = None;      <EOL>if ( (ccore is True) and ccore_library.workable() ):<EOL><INDENT>self._ccore_network_pointer = wrapper.sync_create_network(num_osc, weight, frequency, type_conn, initial_phases);<EOL>self._num_osc = num_osc;<EOL>self._conn_represent = conn_represent.MATRIX;<EOL><DEDENT>else:   <EOL><INDENT>super().__init__(num_osc, type_conn, representation);<EOL>self._weight = weight;<EOL>self._phases = list();<EOL>self._freq = list();<EOL>random.seed();<EOL>for index in range(<NUM_LIT:0>, num_osc, <NUM_LIT:1>):<EOL><INDENT>if (initial_phases == initial_type.RANDOM_GAUSSIAN):<EOL><INDENT>self._phases.append(random.random() * <NUM_LIT:2> * pi);<EOL><DEDENT>elif (initial_phases == initial_type.EQUIPARTITION):<EOL><INDENT>self._phases.append( pi / num_osc * index);<EOL><DEDENT>self._freq.append(random.random() * frequency);<EOL><DEDENT><DEDENT>
!
        @brief Constructor of oscillatory network is based on Kuramoto model.

        @param[in] num_osc (uint): Number of oscillators in the network.
        @param[in] weight (double): Coupling strength of the links between oscillators.
        @param[in] frequency (double): Multiplier of internal frequency of the oscillators.
        @param[in] type_conn (conn_type): Type of connection between oscillators in the network (all-to-all, grid, bidirectional list, etc.).
        @param[in] representation (conn_represent): Internal representation of connection in the network: matrix or list.
        @param[in] initial_phases (initial_type): Type of initialization of initial phases of oscillators (random, uniformly distributed, etc.).
        @param[in] ccore (bool): If True simulation is performed by CCORE library (C++ implementation of pyclustering).