Производная от многочлена Ньютона с++
есть код такой вот код , приближаю функцию многочленном Лагранжа , нужна производная от такого многочлена в точке с = (2pi/2)+0.2 как можно ее задать в с++?
#include <iostream>
#include <cmath>
#include <iomanip>
using namespace std;
const int N = 5;
const double pi = 3.14159265358979;
float c = (2 * pi / 2) + 0.2;
void p(float x_arr[N + 1])
{
for (int i = 0; i < N + 1; i++)
cout << x_arr[i] << " " << endl;
cout << endl;
}
void nd(float x_arr[N + 1], float a, float b) //функция для построения
массива в узлах равномерной сетки
{
float h = (b - a) / N;
for (int i = 0; i < N + 1; i++)
{
x_arr[i] = a;
a += h;
}
}
void func_v(float y_arr[N + 1], float x_arr[N + 1]) // функция для построение
массива состоящего из значений функции в заданных узлах
{
for (int i = 0; i < N + 1; i++)
y_arr[i] = sin(x_arr[i]);
}
float Newton(double c, int N, float x_arr[], float y_arr[]) // функция
интерполирования многочленом Ньютона
{
double sum = y_arr[0];
for (int i = 1; i < N; ++i) {
double F = 0;
for (int j = 0; j <= i; ++j) {
double den = 1;
for (int k = 0; k <= i; ++k)
if (k != j)
den *= (x_arr[j] - x_arr[k]);
F += y_arr[j] / den;
}
// (x-x[0])...(x-x[i-1])
for (int k = 0; k < i; ++k)
F *= (c - x_arr[k]); //x
sum += F;
}
return sum;
}
float diff(float c) //Функция производной
{
return -sin(c);
}
float error(float c, float x_arr[ N + 1 ]) // погрешность
{
float p = 1; float g = 1;
for (int i = 1; i < N + 2; i++)
p *= i;
for (int i = 0; i < N + 1; i++)
g *= (c - x_arr[i]);
return diff(c) / (p * (g));
}
int main() {
setlocale(0, "");
const int N = 5;
const double pi = 3.14159265358979;
float a = 0;
float b = 2 * pi;
float x_arr[N], y_arr[N];
float h = (b - a) / N;
nd(x_arr, a, b);
cout << "Получены следующие значения узлов сетки " << endl;
p(x_arr);
cout << endl;
func_v(y_arr, x_arr);
cout << "Получены следующие значения функции " << endl;
p(y_arr);
cout << endl;
cout << endl;
cout << setw(12) << "Newton(c) = ";
cout << Newton(c, N, x_arr, y_arr);
cout << endl;
cout << "sin(c) = ";
cout << sin(c);
cout << endl;
cout << "Pog = ";
cout << error(c, x_arr);
cout << endl;
cout << "c = ";
cout << c;
cout << endl;
cout << endl;
}