#pragma once

double** generate_ugrid(double (*f)(double), int n, double a, double b);
double** generate_chebgrid(double (*f)(double), int n, double a, double b);
long double poly_newton(long double x,double* xh, double* yh, int n,double** sep_dif);
double f_smooth(double x);
double f_gap(double x);
double** sep_difference(double* xh, double* yh, int n);
double** grid_change(double** h, int n, double max_decline);