# P Function Algorithm

Some tuple, $$S$$, has $$\ell$$elements. The ith element is $$S\_{i}$$.

#### Find a function $$f(\lambda)$$ that equals $$S\_{\lambda}$$ when evaluated at some integer between $$0 \geq \lambda \geq \ell$$.

The bound, $$a(\ell)$$or simply a, on the number of terms for the P function is given by:

$$
a(\ell) = \lceil \log\_{2}(\log\_{2}(\ell)+1)+1\rceil
$$

The P function:

$$
P(a, n) = \frac{1}{4}\prod\_{q=1}^{2^{a-1}} \cos^{2}(\frac{n \pi}{2^{q}})
$$

When the p function is evaluated it produces a single 1 followed by 2^(2^(a - 1) - 1) - 1 zero then the pattern repeats. This will be used to turn on-and-off terms in $$S$$ because the number of zeros will always be greater than the number of elements in $$S$$.

### 1-D Case

There exist a function $$f(\lambda)$$ that equals $$S\_{\lambda}$$ when evaluated at some integer between $$0 \geq \lambda > \ell$$.

$$
f(\lambda) = \frac{1}{4}\sum\_{i=0}^{\ell} S\_{i}\prod\_{q=1}^{2^{a-1}} \cos^{2}(\frac{(\lambda - i) \pi}{2^{q}})
$$

### N-Dimensional Generalization

This can be generalized into n-dimensions by summing different variables for each dimension.

The number of dimensions is N. The tuple being represented is labeled $$S\_{i j ..N}$$, where each index corresponds to a different dimension. The tuple $$\gamma$$is the representation of a point inside an N-dimensional cube and the value in dimension d is $$\gamma\_{d}$$.

$$
f(\lambda\_{1},\lambda\_{2}, .. ,\lambda\_{N}) = \sum\_{i=0}^{\ell}\sum\_{j=0}^{\ell}..\sum\_{N=0}^{\ell}\frac{S\_{i j .. N}}{4^{N}} \prod\_{d=1}^{N} \prod\_{q=1}^{2^{a-1}} \cos^{2}(\frac{(\lambda\_{d} - \gamma\_{d}) \pi}{2^{q}})
$$

The N-dimensional f function has N sums each with its own label.

### Example

For example the tuple:

$$
S = ( 0, 2, 5 )
$$

$$
f(\lambda) = 2\cos(-1/8\pi + 1/8\pi \lambda)^2\cos(-1/4\pi + 1/4\pi \lambda)^2\cos(-1/2\pi + 1/2\pi \lambda)^2 + 5\cos(-1/4\pi + 1/8\pi \lambda)^2\cos(-1/2\pi + 1/4\pi \lambda)^2\cos(-\pi + 1/2\pi \lambda)^2
$$

| $$\lambda$$ | $$f(\lambda)$$ | $$S\_{\lambda}$$ |
| :---------: | :------------: | :--------------: |
|      0      |        0       |         0        |
|      1      |        2       |         2        |
|      2      |        5       |         5        |

### Application

The indefinite integral of this form

$$
\int f(x)^{n} dx =
\begin{cases}
g(x)+c\_1, & \text{if $n<0$}.\\
h(x)+c\_2, & \text{otherwise}.
\end{cases}
$$

Can be rewritten in the form

$$
\int f(x)^n dx = \alpha(n) g(x) + \beta(n) h(x) + c
$$

Where $$\alpha(n)$$ and $$\beta(n)$$ are given by the p function with S equal to the tuple of length 2n created by the function:

$$
s(q, n) = q^{2n} - q^{n}
$$

This function returns q-1 n times and zero n times when written in base q. The tuple is generated by

$$
S\_{i}(q,n) = \frac{s(q, n)}{q^{i}} \mod q
$$

Set q equal to two and the tuple becomes an on-off switch for mathematical functions. The functions a(n) and b(n) are inverses of each other.

$$
\alpha(n) = \sum\_{i=0}^{n} S\_{i}(2, n) P(a(n), n - i)
$$

$$
\beta(n) = \sum\_{i=0}^{n} S' P(a(n), n-i)
$$

The function $$S'$$is the reverse of $$S$$. The length is known so simply changing the index of the sequence from $$S\_{i}$$to $$S\_{2n-i}$$.
