2026-10-22 14:58:24 +03:00 | | | //+------------------------------------------------------------------+
|
2026-09-28 01:52:58 +03:00 | | | //| legendre.mqh |
|
| | | //| Copyright 2026, DNG |
|
| | | //| https://www.mql5.com/ru/users/dng |
|
2026-03-12 15:02:23 +02:00 | | | //+------------------------------------------------------------------+
|
| | | #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)
|
| | | //+------------------------------------------------------------------+
|
2026-09-04 17:39:51 +03:00 | | | //| Legendre Polynoms |
|
2026-08-13 23:48:47 +03:00 | | | //+------------------------------------------------------------------+
|
2026-10-22 14:58:24 +03:00 | | | //| Implements Legendre. |
|
2026-03-12 15:02:23 +02:00 | | | //+------------------------------------------------------------------+
|
| | | 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;
|
| | | }
|
| | | //---
|
2026-10-22 14:58:24 +03:00 | | | return(result);
|
2026-03-12 15:02:23 +02:00 | | | }
|
2026-09-29 18:12:11 +03:00 | | | //+------------------------------------------------------------------+
|