class_docstr: !
  @brief Model of phase oscillatory network for pattern recognition that is based on the Kuramoto model.
  @details The model uses second-order and third-order modes of the Fourier components.
  
  Example:
  @code
      # Network size should be equal to size of pattern for learning.
      net = syncpr(size_network, 0.3, 0.3);
      
      # Train network using list of patterns (input images).
      net.train(image_samples);
      
      # Recognize image using 10 steps during 10 seconds of simulation.
      sync_output_dynamic = net.simulate(10, 10, pattern, solve_type.RK4, True);
      
      # Display output dynamic.
      syncpr_visualizer.show_output_dynamic(sync_output_dynamic);
      
      # Display evolution of recognition of the pattern.
      syncpr_visualizer.show_pattern(sync_output_dynamic, image_height, image_width);
  
  @endcode
class_docstr_tok: ["!","@","brief","Model","of","phase","oscillatory","network","for","pattern","recognition","that","is","based","on","the","Kuramoto","model",".","@","details","The","model","uses","second-order","and","third-order","modes","of","the","Fourier","components",".","Example",":","@","code","#","Network","size","should","be","equal","to","size","of","pattern","for","learning",".","net","=","syncpr","(","size_network",",","0.3",",","0.3",")",";","#","Train","network","using","list","of","patterns","(","input","images",")",".","net.train","(","image_samples",")",";","#","Recognize","image","using","10","steps","during","10","seconds","of","simulation",".","sync_output_dynamic","=","net.simulate","(","10",",","10",",","pattern",",","solve_type.RK4",",","True",")",";","#","Display","output","dynamic",".","syncpr_visualizer.show_output_dynamic","(","sync_output_dynamic",")",";","#","Display","evolution","of","recognition","of","the","pattern",".","syncpr_visualizer.show_pattern","(","sync_output_dynamic",",","image_height",",","image_width",")",";","@","endcode"]
docstr: !
  @brief Performs static simulation of syncpr oscillatory network.
  @details In other words network performs pattern recognition during simulation.
  
  @param[in] steps (uint): Number steps of simulations during simulation.
  @param[in] time (double): Time of simulation.
  @param[in] pattern (list): Pattern for recognition represented by list of features that are equal to [-1; 1].
  @param[in] solution (solve_type): Type of solution.
  @param[in] collect_dynamic (bool): If True - returns whole dynamic of oscillatory network, otherwise returns only last values of dynamics.
  
  @return (list) Dynamic of oscillatory network. If argument 'collect_dynamic' = True, than return dynamic for the whole simulation time,
          otherwise returns only last values (last step of simulation) of dynamic.
  
  @see simulate()
  @see simulate_dynamic()
docstr_tok: ["!","@","brief","Performs","static","simulation","of","syncpr","oscillatory","network",".","@","details","In","other","words","network","performs","pattern","recognition","during","simulation",".","@","param","[","in","]","steps","(","uint",")",":","Number","steps","of","simulations","during","simulation",".","@","param","[","in","]","time","(","double",")",":","Time","of","simulation",".","@","param","[","in","]","pattern","(","list",")",":","Pattern","for","recognition","represented","by","list","of","features","that","are","equal","to","[","-1",";","1","]",".","@","param","[","in","]","solution","(","solve_type",")",":","Type","of","solution",".","@","param","[","in","]","collect_dynamic","(","bool",")",":","If","True","-","returns","whole","dynamic","of","oscillatory","network",",","otherwise","returns","only","last","values","of","dynamics",".","@","return","(","list",")","Dynamic","of","oscillatory","network",".","If","argument","'collect_dynamic","'","=","True",",","than","return","dynamic","for","the","whole","simulation","time",",","otherwise","returns","only","last","values","(","last","step","of","simulation",")","of","dynamic",".","@","see","simulate","(",")","@","see","simulate_dynamic","(",")"]
code: def simulate_static(
      self,
      steps,
      time,
      pattern,
      solution=solve_type.FAST,
      collect_dynamic=False,
  ):
      """!
      @brief Performs static simulation of syncpr oscillatory network.
      @details In other words network performs pattern recognition during simulation.
  
      @param[in] steps (uint): Number steps of simulations during simulation.
      @param[in] time (double): Time of simulation.
      @param[in] pattern (list): Pattern for recognition represented by list of features that are equal to [-1; 1].
      @param[in] solution (solve_type): Type of solution.
      @param[in] collect_dynamic (bool): If True - returns whole dynamic of oscillatory network, otherwise returns only last values of dynamics.
  
      @return (list) Dynamic of oscillatory network. If argument 'collect_dynamic' = True, than return dynamic for the whole simulation time,
              otherwise returns only last values (last step of simulation) of dynamic.
  
      @see simulate()
      @see simulate_dynamic()
  
      """
  
      self.__validate_pattern(pattern)
  
      if self._ccore_network_pointer is not None:
          ccore_instance_dynamic = wrapper.syncpr_simulate_static(
              self._ccore_network_pointer,
              steps,
              time,
              pattern,
              solution,
              collect_dynamic,
          )
          return syncpr_dynamic(None, None, ccore_instance_dynamic)
  
      for i in range(0, len(pattern), 1):
          if pattern[i] > 0.0:
              self._phases[i] = 0.0
          else:
              self._phases[i] = math.pi / 2.0
  
      return super().simulate_static(
          steps, time, solution, collect_dynamic
      )
  
imports: import math
  import cmath
  import numpy
  from pyclustering.nnet import solve_type, initial_type, conn_type, conn_represent
  from pyclustering.nnet.sync import sync_network, sync_dynamic, sync_visualizer
  import pyclustering.core.syncpr_wrapper
  from pyclustering.core.wrapper import ccore_library
  from PIL import Image
  import matplotlib.pyplot
  import matplotlib.animation
label_desc: Use image node_id 7 for calling the syncpr obj's underlying member method code with example usage: obj.simulate_static(steps, time, pattern, solution, collect_dynamic) and returns: super, syncpr_dynamic