| //+------------------------------------------------------------------+
|
| //| legendre.mqh |
|
| //| Copyright 2026, DNG |
|
| //| https://www.mql5.com/ru/users/dng |
|
| //+------------------------------------------------------------------+
|
| #define Legendre4(x) Legendre(4,2*x-1)
|
| #define Legendre6(x) Legendre(6,2*x-1)
|
| #define Legendre8(x) Legendre(8,2*x-1)
|
| #define Legendre10(x) Legendre(10,2*x-1)
|
| #define Legendre12(x) Legendre(12,2*x-1)
|
| #define Legendre14(x) Legendre(14,2*x-1)
|
| #define Legendre16(x) Legendre(16,2*x-1)
|
| #define Legendre18(x) Legendre(18,2*x-1)
|
| #define Legendre20(x) Legendre(20,2*x-1)
|
| //+------------------------------------------------------------------+
|
| //| Legendre Polynoms |
|
| //+------------------------------------------------------------------+
|
| //| Implements Legendre. |
|
| //+------------------------------------------------------------------+
|
| double Legendre(uint poly, double x)
|
| {
|
| double result = 0;
|
| switch(poly)
|
| {
|
| case 0:
|
| result = 1.0;
|
| break;
|
| case 1:
|
| result = x;
|
| break;
|
| default:
|
| result = ((2.0 * (poly - 1.0) + 1.0) * x * Legendre(poly - 1, x) - (poly - 1) * Legendre(poly - 2, x)) / poly ;
|
| break;
|
| }
|
| //---
|
| return(result);
|
| }
|
| //+------------------------------------------------------------------+ |