class_docstr: !
  @brief Model of oscillatory network that is based on the Kuramoto model of synchronization.
  
  @details CCORE option can be used to use the pyclustering core - C/C++ shared library for processing that significantly increases performance.
docstr: !
  @brief Normalization of phase of oscillator that should be placed between [0; 2 * pi].
  
  @param[in] teta (double): phase of oscillator.
  
  @return (double) Normalized phase.
docstr_tok: ["!","@","brief","Normalization","of","phase","of","oscillator","that","should","be","placed","between","[","0",";","2","*","pi","]",".","@","param","[","in","]","teta","(","double",")",":","phase","of","oscillator",".","@","return","(","double",")","Normalized","phase","."]
code: def _phase_normalization(self, teta):
      """!
      @brief Normalization of phase of oscillator that should be placed between [0; 2 * pi].
  
      @param[in] teta (double): phase of oscillator.
  
      @return (double) Normalized phase.
  
      """
  
      norm_teta = teta
      while (norm_teta > (2.0 * pi)) or (norm_teta < 0):
          if norm_teta > (2.0 * pi):
              norm_teta -= 2.0 * pi
          else:
              norm_teta += 2.0 * pi
  
      return norm_teta
  
imports: import math
  import numpy
  import random
  import matplotlib.pyplot
  import matplotlib.animation
  import pyclustering.core.sync_wrapper
  from pyclustering.core.wrapper import ccore_library
  from scipy.integrate import odeint
  from pyclustering.nnet import network, conn_represent, conn_type, initial_type, solve_type
  from pyclustering.utils import pi, draw_dynamics, draw_dynamics_set, set_ax_param
label_desc: Use image node_id 10 for calling the sync_network obj's underlying member method code with example usage: obj._phase_normalization(teta) and returns: norm_teta