def generate_sine_data(x_points=None, sin_period=<NUM_LIT>, sin_ampl=<NUM_LIT>, noise_var=<NUM_LIT>,<EOL>plot = False, points_num=<NUM_LIT:100>, x_interval = (<NUM_LIT:0>, <NUM_LIT:20>), random=True):
sin_function = lambda xx: sin_ampl * np.sin( <NUM_LIT:2>*np.pi/sin_period * xx )<EOL>if x_points is None:<EOL><INDENT>x_points = generate_x_points(points_num, x_interval, random)<EOL><DEDENT>y_points = sin_function( x_points ) + np.random.randn( len(x_points) ) * np.sqrt(noise_var)<EOL>if plot:<EOL><INDENT>pass<EOL><DEDENT>return x_points, y_points<EOL>
Function generates sinusoidal data.

Input:
--------------------------------

x_points: np.array
    Previously generated X points
sin_period: float
    Sine period    
sin_ampl: float
    Sine amplitude
noise_var: float 
    Gaussian noise variance added to the sine function
plot: bool
    Whether to plot generated data

(if x_points is None, the the following parameters are used to generate
those. They are the same as in 'generate_x_points' function)        

points_num: int

x_interval: tuple (a,b)

random: bool