# HP Forums

Full Version: (50g) Euler Transform
You're currently viewing a stripped down version of our content. View the full version with proper formatting.
Following are programs for computing the Euler transform and its inverse for sequences of integers. Both require the ListExt Library. The inverse transform also requires Gerald Hillier's MOB program which computes the Moebius Mu function.

Euler transform:

Code:
 \<< DUP SIZE R\->I \-> n   \<< DUP HEAD SWAP 2 n     FOR k k DIVIS DUP2 LPICK * LSUM SWAP     NEXT DROP n \->LIST DUP 1. 1. SUB 2 n     FOR j OVER 1 j 1 - SUB OVER REV * LSUM PICK3 j GET + j / +     NEXT NIP   \>> \>>

Inverse Euler transform:

Code:
 \<< DUP SIZE R\->I \-> n   \<< DUP 1. 1. SUB 2 n     FOR j OVER 1 j 1 - SUB OVER REV * LSUM PICK3 j GET j * SWAP - +     NEXT NIP 1 n     FOR k k DIVIS DUP2 LPICK SWAP REV MOB * LSUM k / SWAP     NEXT DROP n \->LIST   \>> \>>
Code:
\<< { } SWAP   WHILE     DUP SIZE 1 >   REPEAT     SWAP OVER HEAD +     SWAP \GDLIST NEG   END + \>>

This can now be used to define a function ΣL to create the partial sum of a list:
Code:
\<< T 0 SWAP + NEG T \>>

And ΔL is just the transformation of TAIL negated:
Code:
\<< T TAIL NEG T \>>

Of course ΔL and the built-in ΔLIST are the same.
But since T is an involution we can see that « ΣL ΔL » is the identity:
Code:
\<< T 0 SWAP + NEG T T TAIL NEG T \>>
=
Code:
\<< T 0 SWAP + NEG TAIL NEG T \>>
=
Code:
\<< T NEG NEG T \>>
=
Code:
\<< T T \>>
=
Code:
\<< \>>

We notice that the binomial transform of a polynomial is 0 after a while.
E.g. in case of the cubes of the natural numbers we get:

[0 1 8 27 64 125 216 343 512 729]
T
[0 -1 6 -6 0 0 0 0 0 0]

So if we want to calculate the partial sum of this list we negate it and add 0 at its head:

[0 0 1 -6 6 0 0 0 0 0 0]
T
[0 0 1 9 36 100 225 441 784 1296 2025]

We might try to figure out the pattern of $$T(n^k)$$ for $$k \in \mathbb{N}$$:

[1 0 0 0 0 0 0 0 0 0]
[0 -1 0 0 0 0 0 0 0 0]
[0 -1 2 0 0 0 0 0 0 0]
[0 -1 6 -6 0 0 0 0 0 0]
[0 -1 14 -36 24 0 0 0 0 0]
[0 -1 30 -150 240 -120 0 0 0 0]
[0 -1 62 -540 1560 -1800 720 0 0 0]
[0 -1 126 -1806 8400 -16800 15120 -5040 0 0]
[0 -1 254 -5796 40824 -126000 191520 -141120 40320 0]
[0 -1 510 -18150 186480 -834120 1905120 -2328480 1451520 -362880]

Or then check the powers of 2:

[1 2 4 8 16 32 64 128 256 512]
T
[1 -1 1 -1 1 -1 1 -1 1 -1]

[0 1 1 2 3 5 8 13 21 34 55 89]
T
[0 -1 -1 -2 -3 -5 -8 -13 -21 -34 -55 -89]

What else can you come up with?

Cheers
Thomas
Thanks for another enlightening post, Thomas.

Your program T is similar to the second program in my post here.

The difference is, of course the negation that happens after the ΔLIST. Your other programs ΣL and ΔL do not return the same results without the negation.

My programs are those described in the last paragraph of the "Definitions" section of the Wikipedia page you linked to, which are not self-inverse.