<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/">
	<channel>
		<title><![CDATA[Tetration Forum - Computation]]></title>
		<link>https://tetrationforum.org/</link>
		<description><![CDATA[Tetration Forum - https://tetrationforum.org]]></description>
		<pubDate>Tue, 12 May 2026 11:43:09 +0000</pubDate>
		<generator>MyBB</generator>
		<item>
			<title><![CDATA[Python codes to test my recent results about tetration]]></title>
			<link>https://tetrationforum.org/showthread.php?tid=1797</link>
			<pubDate>Thu, 26 Dec 2024 15:29:31 +0000</pubDate>
			<dc:creator><![CDATA[<a href="https://tetrationforum.org/member.php?action=profile&uid=214">marcokrt</a>]]></dc:creator>
			<guid isPermaLink="false">https://tetrationforum.org/showthread.php?tid=1797</guid>
			<description><![CDATA[Since I am aware that following my research about the constancy of the congruence speed of tetration, the phase shifts analysis, and so forth wouldn't be easy, here are 12 Python codes to let everybody test and verify my recent results about the peculiar properties of integer tetration I have discovered and published: <a href="https://www.researchgate.net/publication/387314761_Twelve_Python_Programs_to_Help_Readers_Test_Peculiar_Properties_of_Integer_Tetration" target="_blank" rel="noopener" class="mycode_url">Twelve Python Programs to Help Readers Test Peculiar Properties of Integer Tetration</a> (DOI: 10.13140/RG.2.2.13553.80489).]]></description>
			<content:encoded><![CDATA[Since I am aware that following my research about the constancy of the congruence speed of tetration, the phase shifts analysis, and so forth wouldn't be easy, here are 12 Python codes to let everybody test and verify my recent results about the peculiar properties of integer tetration I have discovered and published: <a href="https://www.researchgate.net/publication/387314761_Twelve_Python_Programs_to_Help_Readers_Test_Peculiar_Properties_of_Integer_Tetration" target="_blank" rel="noopener" class="mycode_url">Twelve Python Programs to Help Readers Test Peculiar Properties of Integer Tetration</a> (DOI: 10.13140/RG.2.2.13553.80489).]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[FractionalIteration now in Wolfram Function Repository]]></title>
			<link>https://tetrationforum.org/showthread.php?tid=1766</link>
			<pubDate>Mon, 10 Jul 2023 06:16:36 +0000</pubDate>
			<dc:creator><![CDATA[<a href="https://tetrationforum.org/member.php?action=profile&uid=12">Daniel</a>]]></dc:creator>
			<guid isPermaLink="false">https://tetrationforum.org/showthread.php?tid=1766</guid>
			<description><![CDATA[My recent work with fractional iteration is now part of the Mathematica system. It is in the Wolfram Function Repository as<a href="https://resources.wolframcloud.com/FunctionRepository/resources/FractionalIteration/" target="_blank" rel="noopener" class="mycode_url"> FractionalIteration</a>.]]></description>
			<content:encoded><![CDATA[My recent work with fractional iteration is now part of the Mathematica system. It is in the Wolfram Function Repository as<a href="https://resources.wolframcloud.com/FunctionRepository/resources/FractionalIteration/" target="_blank" rel="noopener" class="mycode_url"> FractionalIteration</a>.]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[Code to calculate tetration using my method]]></title>
			<link>https://tetrationforum.org/showthread.php?tid=1760</link>
			<pubDate>Fri, 02 Jun 2023 07:33:07 +0000</pubDate>
			<dc:creator><![CDATA[<a href="https://tetrationforum.org/member.php?action=profile&uid=313">Shanghai46</a>]]></dc:creator>
			<guid isPermaLink="false">https://tetrationforum.org/showthread.php?tid=1760</guid>
			<description><![CDATA[This is the python code I've made to easily calculate tetration using my method. It calculates x^^(a+bi) for all a, b real (except a whole and below -2) and for all x greater that e^-e. It might not be 100% precise, and maybe some mistakes, but it overall works.<br />
To calculate, it's tetra(x,a,b) for x^^(a+bi)<br />
<br />
<br />
from math import*<br />
<br />
def mod(a,b):<br />
    A=(a**2+b**2)**0.5<br />
    return A<br />
def Arg(a,b):<br />
    Z=atan2(b,a)<br />
    return Z<br />
def fn(a,n):<br />
    X=0<br />
    while n+1&gt;0:<br />
        n=n-1<br />
        X=a**X<br />
    return X<br />
def logan(X,Y,a,n):<br />
    while n&gt;0:<br />
        M=mod(X,Y)<br />
        A=Arg(X,Y)<br />
        X=log(M,a)<br />
        Y=(A)/log(a,e)<br />
        n=n-1<br />
    return X,Y<br />
def TAU(X):<br />
    n=0<br />
    a=1<br />
    while n&lt;400:<br />
        a=X**a<br />
        n=n+1<br />
    return a<br />
def LAMBDA(X):<br />
    a=log(X,e)*TAU(X)<br />
    return a<br />
def lpr(x,p,b):<br />
    X=LAMBDA(x) <br />
    if X&gt;=0:<br />
        A=(X**p)*cos(log(X,e)*b)<br />
    else:<br />
        A=e**(log(-X,e)*p-pi*b)*cos(log(-X,e)*b+p*pi)<br />
    return A<br />
def lpi(x,p,b):<br />
    X=LAMBDA(x) <br />
    if X&gt;=0:<br />
        A=(X**p)*sin(log(X,e)*b)<br />
    else:<br />
        A=e**(log(-X,e)*p-pi*b)*sin(log(-X,e)*b+p*pi)<br />
    return A<br />
def entier(X):<br />
    X=floor(X)<br />
    return X<br />
def decimal(X):<br />
    a=entier(X)<br />
    b=X-a<br />
    return b<br />
def Nu(X):<br />
    n=0 <br />
    a=fn(X,n)<br />
    b=TAU(X)<br />
    while ((a-b)**2)**0.5&gt;0.0001:<br />
        n=n+1<br />
        a=fn(X,n)<br />
    return n<br />
def tetraa(X,a,b):<br />
    E=entier(a)<br />
    D=decimal(a)<br />
    N=Nu(X)<br />
    A=fn(X, N+E)-TAU(X)<br />
    B=(A*(lpr(X, D,b)))+TAU(X)<br />
    C=(A*(lpi(X, D,b))) <br />
    O=logan(B,C,X,N)<br />
    return O<br />
def BIGn(X):<br />
    n=X<br />
    a=1<br />
    if 3.9&lt;X&lt;5:<br />
      X=X**X<br />
      a=2<br />
    else:<br />
      while X-3000&lt;0:<br />
          X=n**X<br />
          a=a+1<br />
    return a<br />
def BIGx(X):<br />
    n=X<br />
    if 3.9&lt;X&lt;5:<br />
      X=X**X<br />
    else:<br />
      while X-3000&lt;0:<br />
          X=n**X<br />
    return X<br />
def logwan(X,a,n): <br />
    while n&gt;0:<br />
        X=log(X+1,a)<br />
        n=n-1<br />
    return X<br />
def PUr(X,a,b,n):<br />
    while n&gt;0:<br />
        A=(X**a)*cos(log(X,e)*b)<br />
        B=(X**a)*sin(log(X,e)*b)<br />
        a=A<br />
        b=B<br />
        n=n-1<br />
    return a<br />
def PUi(X,a,b,n):<br />
    while n&gt;0:<br />
        A=(X**a)*cos(log(X,e)*b)<br />
        B=(X**a)*sin(log(X,e)*b)<br />
        a=A<br />
        b=B<br />
        n=n-1<br />
    return b<br />
def Gn(a,b,X,n):<br />
    while n&gt;0:<br />
        A=(X**a)*cos(log(X,e)*b)-1<br />
        B=(X**a)*sin(log(X,e)*b)<br />
        a=A<br />
        b=B<br />
        n=n-1<br />
    return a,b<br />
def lim(X):<br />
    A=BIGx(X)<br />
    if X&lt;e:<br />
        b=logwan(A,X,400)<br />
    else:<br />
        b=0<br />
    return b<br />
def gamma(X):<br />
    A=(lim(X)+1)*log(X,e)<br />
    return A<br />
def NA(X):<br />
    A=BIGx(X)<br />
    B=lim(X)<br />
    n=0<br />
    while ((A-B)**2)**0.5&gt;10**(-6):<br />
        n=n+1<br />
        A=logwan(A,X,1)<br />
    return n<br />
def fin(X,p,b):<br />
    E=decimal(1-decimal(p))<br />
    Z=entier(p)<br />
    A=BIGx(X)<br />
    B=logwan(A,X,NA(X))<br />
    C=B-lim(X)<br />
    D=(C/(gamma(X)**E)*cos(log(gamma(X),e)*b))+lim(X)<br />
    W=(C/(gamma(X)**E)*sin(log(gamma(X),e)*b))<br />
    F,U=Gn(D,W,X,NA(X))<br />
    Y=BIGn(X)-E-p<br />
    if Y&gt;=0:<br />
        O=logan(F,U,X,Y)<br />
    else:<br />
        O=PUr(F,U,X,-Y),PUi(F,U,X,-Y)<br />
    return O<br />
def tetra(X,n,b):<br />
    if X==1:<br />
      Z=(1,0)<br />
    elif n&lt;=-2 and n==int(n) and b==0:<br />
      Z="ERROR" <br />
    elif n&gt;=-1 and decimal(n)&lt;=0 and b==0:<br />
      Z=fn(X,n) <br />
    else:<br />
      if e**(-e)&lt;=X&lt;=e**(1/e):<br />
        Z=tetraa(X,n,b)<br />
      elif X&gt;e**(1/e):<br />
        Z=fin(X,n,b)<br />
      else:<br />
        Z="ERROR"<br />
    return Z]]></description>
			<content:encoded><![CDATA[This is the python code I've made to easily calculate tetration using my method. It calculates x^^(a+bi) for all a, b real (except a whole and below -2) and for all x greater that e^-e. It might not be 100% precise, and maybe some mistakes, but it overall works.<br />
To calculate, it's tetra(x,a,b) for x^^(a+bi)<br />
<br />
<br />
from math import*<br />
<br />
def mod(a,b):<br />
    A=(a**2+b**2)**0.5<br />
    return A<br />
def Arg(a,b):<br />
    Z=atan2(b,a)<br />
    return Z<br />
def fn(a,n):<br />
    X=0<br />
    while n+1&gt;0:<br />
        n=n-1<br />
        X=a**X<br />
    return X<br />
def logan(X,Y,a,n):<br />
    while n&gt;0:<br />
        M=mod(X,Y)<br />
        A=Arg(X,Y)<br />
        X=log(M,a)<br />
        Y=(A)/log(a,e)<br />
        n=n-1<br />
    return X,Y<br />
def TAU(X):<br />
    n=0<br />
    a=1<br />
    while n&lt;400:<br />
        a=X**a<br />
        n=n+1<br />
    return a<br />
def LAMBDA(X):<br />
    a=log(X,e)*TAU(X)<br />
    return a<br />
def lpr(x,p,b):<br />
    X=LAMBDA(x) <br />
    if X&gt;=0:<br />
        A=(X**p)*cos(log(X,e)*b)<br />
    else:<br />
        A=e**(log(-X,e)*p-pi*b)*cos(log(-X,e)*b+p*pi)<br />
    return A<br />
def lpi(x,p,b):<br />
    X=LAMBDA(x) <br />
    if X&gt;=0:<br />
        A=(X**p)*sin(log(X,e)*b)<br />
    else:<br />
        A=e**(log(-X,e)*p-pi*b)*sin(log(-X,e)*b+p*pi)<br />
    return A<br />
def entier(X):<br />
    X=floor(X)<br />
    return X<br />
def decimal(X):<br />
    a=entier(X)<br />
    b=X-a<br />
    return b<br />
def Nu(X):<br />
    n=0 <br />
    a=fn(X,n)<br />
    b=TAU(X)<br />
    while ((a-b)**2)**0.5&gt;0.0001:<br />
        n=n+1<br />
        a=fn(X,n)<br />
    return n<br />
def tetraa(X,a,b):<br />
    E=entier(a)<br />
    D=decimal(a)<br />
    N=Nu(X)<br />
    A=fn(X, N+E)-TAU(X)<br />
    B=(A*(lpr(X, D,b)))+TAU(X)<br />
    C=(A*(lpi(X, D,b))) <br />
    O=logan(B,C,X,N)<br />
    return O<br />
def BIGn(X):<br />
    n=X<br />
    a=1<br />
    if 3.9&lt;X&lt;5:<br />
      X=X**X<br />
      a=2<br />
    else:<br />
      while X-3000&lt;0:<br />
          X=n**X<br />
          a=a+1<br />
    return a<br />
def BIGx(X):<br />
    n=X<br />
    if 3.9&lt;X&lt;5:<br />
      X=X**X<br />
    else:<br />
      while X-3000&lt;0:<br />
          X=n**X<br />
    return X<br />
def logwan(X,a,n): <br />
    while n&gt;0:<br />
        X=log(X+1,a)<br />
        n=n-1<br />
    return X<br />
def PUr(X,a,b,n):<br />
    while n&gt;0:<br />
        A=(X**a)*cos(log(X,e)*b)<br />
        B=(X**a)*sin(log(X,e)*b)<br />
        a=A<br />
        b=B<br />
        n=n-1<br />
    return a<br />
def PUi(X,a,b,n):<br />
    while n&gt;0:<br />
        A=(X**a)*cos(log(X,e)*b)<br />
        B=(X**a)*sin(log(X,e)*b)<br />
        a=A<br />
        b=B<br />
        n=n-1<br />
    return b<br />
def Gn(a,b,X,n):<br />
    while n&gt;0:<br />
        A=(X**a)*cos(log(X,e)*b)-1<br />
        B=(X**a)*sin(log(X,e)*b)<br />
        a=A<br />
        b=B<br />
        n=n-1<br />
    return a,b<br />
def lim(X):<br />
    A=BIGx(X)<br />
    if X&lt;e:<br />
        b=logwan(A,X,400)<br />
    else:<br />
        b=0<br />
    return b<br />
def gamma(X):<br />
    A=(lim(X)+1)*log(X,e)<br />
    return A<br />
def NA(X):<br />
    A=BIGx(X)<br />
    B=lim(X)<br />
    n=0<br />
    while ((A-B)**2)**0.5&gt;10**(-6):<br />
        n=n+1<br />
        A=logwan(A,X,1)<br />
    return n<br />
def fin(X,p,b):<br />
    E=decimal(1-decimal(p))<br />
    Z=entier(p)<br />
    A=BIGx(X)<br />
    B=logwan(A,X,NA(X))<br />
    C=B-lim(X)<br />
    D=(C/(gamma(X)**E)*cos(log(gamma(X),e)*b))+lim(X)<br />
    W=(C/(gamma(X)**E)*sin(log(gamma(X),e)*b))<br />
    F,U=Gn(D,W,X,NA(X))<br />
    Y=BIGn(X)-E-p<br />
    if Y&gt;=0:<br />
        O=logan(F,U,X,Y)<br />
    else:<br />
        O=PUr(F,U,X,-Y),PUi(F,U,X,-Y)<br />
    return O<br />
def tetra(X,n,b):<br />
    if X==1:<br />
      Z=(1,0)<br />
    elif n&lt;=-2 and n==int(n) and b==0:<br />
      Z="ERROR" <br />
    elif n&gt;=-1 and decimal(n)&lt;=0 and b==0:<br />
      Z=fn(X,n) <br />
    else:<br />
      if e**(-e)&lt;=X&lt;=e**(1/e):<br />
        Z=tetraa(X,n,b)<br />
      elif X&gt;e**(1/e):<br />
        Z=fin(X,n,b)<br />
      else:<br />
        Z="ERROR"<br />
    return Z]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[Writing Kneser's super logarithm using values of Kneser at a single point]]></title>
			<link>https://tetrationforum.org/showthread.php?tid=1738</link>
			<pubDate>Mon, 10 Apr 2023 07:48:40 +0000</pubDate>
			<dc:creator><![CDATA[<a href="https://tetrationforum.org/member.php?action=profile&uid=163">JmsNxn</a>]]></dc:creator>
			<guid isPermaLink="false">https://tetrationforum.org/showthread.php?tid=1738</guid>
			<description><![CDATA[I am going to draw a graph here, and it's the standard Kneser graph. This is drawn using minimal data. If we assume that:<br />
<br />
\[<br />
\text{tet}_K'(\tau(0)) = 1\\<br />
\]<br />
<br />
The value \(\tau(0) = 0.806...\). Then we bank a Taylor series:<br />
<br />
\[<br />
\text{tet}_K(\tau(0) + z) = \text{tet}_K(\tau(0)) + z + \sum_{k=2}^\infty a_k z^k\\<br />
\]<br />
<br />
I developed this Taylor series using Sheldon's fatou.gp. And this is all that I've used from sheldon. Once you have this Taylor series, you can create the super logarithm, and by proxy, the Kneser tetration. My code is on par with speed with Sheldon, but it can take some time. I think a big graph should show what I mean. Here is \(|\Re(z)| &lt;4\) and \(|\Im(z)| &lt; 1\) and we graph \(\text{slog}(z)\):<br />
<br />

<br />
<img src="https://tetrationforum.org/images/attachtypes/image.gif" title="PNG Image" border="0" alt=".png" />
&nbsp;&nbsp;<a href="attachment.php?aid=2046" target="_blank" title="">TRYING_SLOG_A_BIT_MORE_SOPHISTICATED.png</a> (Size: 57.22 KB / Downloads: 540)
<br />
<br />
It's still not perfect; but this is Kneser's super logarithm from a single taylor series of Kneser's super exponential centered at a point \(\text{tet}_K'(\tau(0)) = 1\). To get perfection we will need to sample along \(\tau\), and getting Taylor series about here; which can speed up the current slog code I have. Additionally this would fix some issues with large graphs I have.<br />
<br />
So, to refresh; we can take a single 50kb file, which stores \(a_k\); and we can use this to run Kneser's slog with little to no interruptions. My code is not faster than Sheldon's. But it is more malleable. When we write slog(A+z) this expression writes the taylor series of slog about A in the variable z. My expression of slog uses much more of the built in functions of pari. And you can treat it like \(\sin\) or how built in pari code works. <br />
<br />
AGAIN! I've done nothing mathematically here. I've simply stored the taylor series:<br />
<br />
\[<br />
\text{tet}_K(z+\tau(0)) = \text{TAYLOR}\\<br />
\]<br />
<br />
I used sheldon's program to get the Kneser numbers. But now, all we need is TAYLOR to construct the slog function. From here we can write Kneser's tetration everywhere. If we use a single Taylor series from Kneser--generated by Sheldon; we can bypass all of Sheldon's code and write simpler code which does a "good enough job".<br />
<br />
This code is very rough, and slightly inaccurate. But we're good for about 15-20 digits of accuracy. Which is the cap from the import of 50kb Taylor data. This technique does not work generally. The code I use specifies that \(z \mapsto \exp(z)\) is nowhere normal, and each point \(z_0 \mapsto \exp(z_0)\) eventually gets close to \(0 \mapsto \exp(0) \mapsto \exp(1) \mapsto \exp(\exp(1))\mapsto...\). This is a proven property of the exponential function. Thereby, my code works. If you want to take arbitrary tetrations, this code will not work. And in no way will it even look like it works.<br />
<br />
This algorithm produces \(\text{slog}_K(z)\) for vertical branching points at \(\pm L\).  This works solely off the 50kb that \(a_k\) generate. The \(\text{slog}\) we create is the unique one about the real-line, but there are branches in the complex plane.<br />
<br />

<br />
<img src="https://tetrationforum.org/images/attachtypes/image.gif" title="PNG Image" border="0" alt=".png" />
&nbsp;&nbsp;<a href="attachment.php?aid=2047" target="_blank" title="">TRY_DIRTY_SHELDON_RIEMANN.png</a> (Size: 46 KB / Downloads: 455)
<br />
<br />
Inverting this super logarithm creates Kneser's tetration. This is all Sheldon's heavy lifting. But It tricks the story. We only need 50kb of data, and we can process it as fast but in more manageable language. The taylor series of \(|text{tet}_K'(\tau)| = 1\) gives the raw solution/]]></description>
			<content:encoded><![CDATA[I am going to draw a graph here, and it's the standard Kneser graph. This is drawn using minimal data. If we assume that:<br />
<br />
\[<br />
\text{tet}_K'(\tau(0)) = 1\\<br />
\]<br />
<br />
The value \(\tau(0) = 0.806...\). Then we bank a Taylor series:<br />
<br />
\[<br />
\text{tet}_K(\tau(0) + z) = \text{tet}_K(\tau(0)) + z + \sum_{k=2}^\infty a_k z^k\\<br />
\]<br />
<br />
I developed this Taylor series using Sheldon's fatou.gp. And this is all that I've used from sheldon. Once you have this Taylor series, you can create the super logarithm, and by proxy, the Kneser tetration. My code is on par with speed with Sheldon, but it can take some time. I think a big graph should show what I mean. Here is \(|\Re(z)| &lt;4\) and \(|\Im(z)| &lt; 1\) and we graph \(\text{slog}(z)\):<br />
<br />

<br />
<img src="https://tetrationforum.org/images/attachtypes/image.gif" title="PNG Image" border="0" alt=".png" />
&nbsp;&nbsp;<a href="attachment.php?aid=2046" target="_blank" title="">TRYING_SLOG_A_BIT_MORE_SOPHISTICATED.png</a> (Size: 57.22 KB / Downloads: 540)
<br />
<br />
It's still not perfect; but this is Kneser's super logarithm from a single taylor series of Kneser's super exponential centered at a point \(\text{tet}_K'(\tau(0)) = 1\). To get perfection we will need to sample along \(\tau\), and getting Taylor series about here; which can speed up the current slog code I have. Additionally this would fix some issues with large graphs I have.<br />
<br />
So, to refresh; we can take a single 50kb file, which stores \(a_k\); and we can use this to run Kneser's slog with little to no interruptions. My code is not faster than Sheldon's. But it is more malleable. When we write slog(A+z) this expression writes the taylor series of slog about A in the variable z. My expression of slog uses much more of the built in functions of pari. And you can treat it like \(\sin\) or how built in pari code works. <br />
<br />
AGAIN! I've done nothing mathematically here. I've simply stored the taylor series:<br />
<br />
\[<br />
\text{tet}_K(z+\tau(0)) = \text{TAYLOR}\\<br />
\]<br />
<br />
I used sheldon's program to get the Kneser numbers. But now, all we need is TAYLOR to construct the slog function. From here we can write Kneser's tetration everywhere. If we use a single Taylor series from Kneser--generated by Sheldon; we can bypass all of Sheldon's code and write simpler code which does a "good enough job".<br />
<br />
This code is very rough, and slightly inaccurate. But we're good for about 15-20 digits of accuracy. Which is the cap from the import of 50kb Taylor data. This technique does not work generally. The code I use specifies that \(z \mapsto \exp(z)\) is nowhere normal, and each point \(z_0 \mapsto \exp(z_0)\) eventually gets close to \(0 \mapsto \exp(0) \mapsto \exp(1) \mapsto \exp(\exp(1))\mapsto...\). This is a proven property of the exponential function. Thereby, my code works. If you want to take arbitrary tetrations, this code will not work. And in no way will it even look like it works.<br />
<br />
This algorithm produces \(\text{slog}_K(z)\) for vertical branching points at \(\pm L\).  This works solely off the 50kb that \(a_k\) generate. The \(\text{slog}\) we create is the unique one about the real-line, but there are branches in the complex plane.<br />
<br />

<br />
<img src="https://tetrationforum.org/images/attachtypes/image.gif" title="PNG Image" border="0" alt=".png" />
&nbsp;&nbsp;<a href="attachment.php?aid=2047" target="_blank" title="">TRY_DIRTY_SHELDON_RIEMANN.png</a> (Size: 46 KB / Downloads: 455)
<br />
<br />
Inverting this super logarithm creates Kneser's tetration. This is all Sheldon's heavy lifting. But It tricks the story. We only need 50kb of data, and we can process it as fast but in more manageable language. The taylor series of \(|text{tet}_K'(\tau)| = 1\) gives the raw solution/]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[I'm going to write a modified version of MakeGraph by mike3]]></title>
			<link>https://tetrationforum.org/showthread.php?tid=1706</link>
			<pubDate>Thu, 16 Feb 2023 09:26:42 +0000</pubDate>
			<dc:creator><![CDATA[<a href="https://tetrationforum.org/member.php?action=profile&uid=163">JmsNxn</a>]]></dc:creator>
			<guid isPermaLink="false">https://tetrationforum.org/showthread.php?tid=1706</guid>
			<description><![CDATA[Hey, everyone.<br />
<br />
It's been pissing me off how slow Mike3's MakeGraph program runs. And I've decided to employ a speed up of this program. <br />
<br />
Now, traditionally; Mike3's program goes pixel by pixel and assigns a colour point. I am going to add in a subroutine which splines together n by k pixels into a linear solution of the pixel values at the origin of this block. This is much more in tune with standard graphing programs. I'd just like to have these algorithms attached to pari-gp; rather than run pari in a graphing program. <br />
<br />
I'm still beta testing this; but my idea works on paper. The general idea is we write a modified version of mike3's program. Where instead of re-evaluating the function at each pixel; we set 5 by 5 or 10 by 5 pixels are assigned this value. Which greatly speeds up convergence.<br />
<br />
If we assume func(z) = O(h(n)); then Mike3's program runs like O(n^2h(n)). I believe I can reduce this to O(n log(n) h(n)) without sacrificing <span style="font-style: italic;" class="mycode_i">too much quality</span>.<br />
<br />
I'm going to publish it soon. But it is proving pretty tricky to get everything right--plus I suck with graphics. But theoretically this will diversify mike3's program greatly.<br />
<br />
.......................<br />
<br />
<br />
Wish me luck <img src="https://tetrationforum.org/images/smilies/tongue.gif" alt="Tongue" title="Tongue" class="smilie smilie_5" />]]></description>
			<content:encoded><![CDATA[Hey, everyone.<br />
<br />
It's been pissing me off how slow Mike3's MakeGraph program runs. And I've decided to employ a speed up of this program. <br />
<br />
Now, traditionally; Mike3's program goes pixel by pixel and assigns a colour point. I am going to add in a subroutine which splines together n by k pixels into a linear solution of the pixel values at the origin of this block. This is much more in tune with standard graphing programs. I'd just like to have these algorithms attached to pari-gp; rather than run pari in a graphing program. <br />
<br />
I'm still beta testing this; but my idea works on paper. The general idea is we write a modified version of mike3's program. Where instead of re-evaluating the function at each pixel; we set 5 by 5 or 10 by 5 pixels are assigned this value. Which greatly speeds up convergence.<br />
<br />
If we assume func(z) = O(h(n)); then Mike3's program runs like O(n^2h(n)). I believe I can reduce this to O(n log(n) h(n)) without sacrificing <span style="font-style: italic;" class="mycode_i">too much quality</span>.<br />
<br />
I'm going to publish it soon. But it is proving pretty tricky to get everything right--plus I suck with graphics. But theoretically this will diversify mike3's program greatly.<br />
<br />
.......................<br />
<br />
<br />
Wish me luck <img src="https://tetrationforum.org/images/smilies/tongue.gif" alt="Tongue" title="Tongue" class="smilie smilie_5" />]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[Calculating the fractional iterates of \(f(z) = e^z-1\) to reasonable accuracy]]></title>
			<link>https://tetrationforum.org/showthread.php?tid=1669</link>
			<pubDate>Tue, 15 Nov 2022 02:18:43 +0000</pubDate>
			<dc:creator><![CDATA[<a href="https://tetrationforum.org/member.php?action=profile&uid=163">JmsNxn</a>]]></dc:creator>
			<guid isPermaLink="false">https://tetrationforum.org/showthread.php?tid=1669</guid>
			<description><![CDATA[I apologize for being away for awhile. I have been pretty busy post covid. There's a lot of work I have to get back to. So I haven't had time to do the hard tetration work I'd like to. I've been working on a new paper, and part of this paper justifies the code I talk about in this post. This code relies extraordinarily on Bo's and Gottfried's observations, though you won't see that.<br />
<br />
To begin, this program is designed to calculate one thing and one thing only.<br />
<br />
Let's let:<br />
<br />
\[<br />
f(z) = e^z -1\\<br />
\]<br />
<br />
And let's let:<br />
<br />
\[<br />
f^{\circ s}(z) : \mathbb{C}_{\Re(s) &gt; 0} \times \mathbb{C}/[0,\infty) \to \mathbb{C}/[0,\infty)\\<br />
\]<br />
<br />
I have written, not a perfect algorithm, but a very efficient algorithm--to evaluate this function. Now my code algorithms are different from most of what is written about here, but are incredibly convenient if you know how to use them. I promise I will release a nice article which relates all my work in a month or so.<br />
<br />
To begin, before diving into the entire construct; this code is accurate to 13 decimal points, and to get more decimal points, requires an overhaul of this code. It is possible to tweak my code to get 100 decimal points, but it requires a lot of fucking ram. And it requires treating much larger taylor series than I already treat. I capped everything at 13 digits, as this is a theoretical discovery more than anything. Please play with me here.<br />
<br />
<hr class="mycode_hr" />
<br />
Here is the code:<br />
<br />
<div class="codeblock"><div class="title">Code:</div><div class="body" dir="ltr"><code>&#92;p 50<br />
&#92;ps 20<br />
<br />
Const(poly) = {<br />
    my(vars = variables(poly));<br />
    substvec(poly, vars, vector(#vars));<br />
};<br />
<br />
f(z) = exp(z) - 1;<br />
<br />
iter_f(n,z) = {<br />
&nbsp;&nbsp;&nbsp;&nbsp;if(n==0, z,<br />
&nbsp;&nbsp;&nbsp;&nbsp;Pol(f(iter_f(n-1,z)),z);<br />
&nbsp;&nbsp;&nbsp;&nbsp;);<br />
};<br />
<br />
init_vartheta({LIMIT=300}) = {<br />
&nbsp;&nbsp;&nbsp;&nbsp;BASE = sum(n=0,LIMIT,Pol(iter_f(n+1,z),z)*(-x)^n/factorial(n));<br />
};<br />
<br />
<br />
F(s,y) = {<br />
&nbsp;&nbsp;&nbsp;&nbsp;if(s==1, return(f(y)));<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;if(Const(s)&gt;1, F(s-1,f(y)),<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if(abs(Const(y))&lt;0.05,<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(1/gamma(1-s))*(sum(n=0,300, subst(iter_f(n+1,z),z,y)*(-1)^n/(factorial(n)*(1+n-s))) + intnum(X=1,90,subst(subst(BASE,x,X),z,y)*X^(-s))),<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;log(F(s,f(y)) + 1)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;)<br />
&nbsp;&nbsp;&nbsp;&nbsp;);<br />
};</code></div></div><br />
We run this code in Pari-gp, where it acts as a calculator. I'll give a rough run down of the code:<br />
<br />
<hr class="mycode_hr" />
<br />
We start this by writing:<br />
<br />
<div class="codeblock"><div class="title">Code:</div><div class="body" dir="ltr"><code>&#92;r neutral_int<br />
init_vartheta()<br />
                  GP/PARI CALCULATOR Version 2.13.2 (released)<br />
          amd64 running mingw (x86-64/GMP-6.1.2 kernel) 64-bit version<br />
          compiled: Jun 10 2021, gcc version 8.3-posix 20190406 (GCC)<br />
                            threading engine: single<br />
                (readline v8.0 disabled, extended help enabled)<br />
<br />
                     Copyright (C) 2000-2020 The PARI Group<br />
<br />
PARI/GP is free software, covered by the GNU General Public License, and comes <br />
WITHOUT ANY WARRANTY WHATSOEVER.<br />
<br />
Type ? for help, &#92;q to quit.<br />
Type ?17 for how to get moral (and possibly technical) support.<br />
<br />
parisizemax = 3000000000, primelimit = 500000<br />
   realprecision = 57 significant digits (50 digits displayed)<br />
   seriesprecision = 20 significant terms<br />
%6 = (7.3124522221141931945873965423489781850870963336375 E-574*z^20 + 4.8776641577580803165997457076259405952006870791110 E-576*z^19 + 3.2533729371585239861252793578076839333642436527966 E-578*z^18 + 2.1698381028845785190912405551606111538850924034236 E-580*z^17 + 1.4470734195083639760114636923270112313333833413846 E-582*z^16 + 9.6498718463090253371361871330158177146488344742966 E-585*z^15 + 6.4345469484715300226050838546265794266461049531099 E-587*z^14 + 4.2901966756256620121086824394762639526571841493871 E-589*z^13 + 2.8601982722689581947419466107731984641405981829792 E-591*z^12 + 1.9066506966376583109223165588593100135056802136581 E-593*z^11 + 1.2708602917968835452795860344260753111502911809426 E-595*z^10 + 8.4697542120625621748490806146107026700881852065906 E-598*z^9 + 5.6439536224722981518853895350062310010105217671656 E-600*z^8 + 3.7603398308175438781868992276092586249171876491427 E-602*z^7 + 2.5048995559479616592645703228743438043732892424379 E-604*z^6 + 1.6682343079708266464423028467933492903021662807954 E-606*z^5 + 1.1107165013033971231837564220368316028037815124859 E-608*z^4 + 7.3924559154968194554659329253699274729037039100560 E-611*z^3 + 4.9173764404635162674939686864988431083616655720994 E-613*z^2 + 3.2673597611053264235840323498331183444263558618600 E-615*z)*x^300 + (-2.0589547720821092060786223192151143959240060383760 E-571*z^20 - 1.3779914826472309568294107919635582483482636490661 E-573*z^19 - 9.2218758582917270562944692905636679807443162207638 E-576*z^18 - 6.1711121739999530177255076282387244935981321050957 E-578*z^17 - 4.1293078519937848457489908731271917325970331298606 E-580*z^16 - 2.7628589866638515934497565556810800983915286426183 E-582*z^15 - 1.8484406465819516637405603795846618804829672385618 E-584*z^14 - 1.2365593781076561456034845471595071306486740782974 E-586*z^13 - 8.2714950840113874438767279000894870655299064782632 E-589*z^12 - 5.5323413394245904725289968268135134676405323003597 E-591*z^11 - 3.699861227636877896616633708095127345018[+++]</code></div></div><br />
These Taylor values are divergent, the same way Gottfried and Bo talked about. It's just way better in this form. This code, read the code above, and then ran the initialization of \(\vartheta\).<br />
<br />
From here we have two functions; we have \(f(z) = e^z-1\) and \(f^{\circ s}(z)\). Where \(z\) is valid for \(z\not\in [0,\infty)\) and \(\Re(s) &gt; 0\). Additionally all code is valid to 13 digits at least.<br />
<br />
From here, we call \(F(s,z) = f^{\circ s}(z)\). I'll spend a bit describing how to use this function.<br />
<br />
<hr class="mycode_hr" />
<div class="codeblock"><div class="title">Code:</div><div class="body" dir="ltr"><code>F(0.5,F(0.5,-5+I))<br />
%7 = -0.99635947169836762192725358390433494253623663552745 + 0.0056697868968831960894314416400933210717550792617893*I<br />
f(-5+I)<br />
%8 = -0.99635947169957680983203733901585094813263971484423 + 0.0056697868969038589404768188791737542163949162730891*I</code></div></div><br />
This evaluates \(f^{\circ 0.5}(f^{\circ 0.5}(-5+i)) = e^{-5 + i} -1\), which is accurate to 13 digits.<br />
<br />
The function <br />
<div class="codeblock"><div class="title">Code:</div><div class="body" dir="ltr"><code>F(s,z)</code></div></div><br />
takes an argument \(\Re(s) &gt; 0\) and \(z\not \in [0,\infty)\). We have at least 13 digit accuracy in the digit precision of this semi group. Additionally, we have 13 digit accuracy in the taylor series.<br />
<br />
<hr class="mycode_hr" />
Let's try expanding:<br />
<br />
\[<br />
f^{\circ 0.5}(z-5+i) = h(z)\\<br />
\]<br />
<br />
We'd write this as:<br />
<br />
<div class="codeblock"><div class="title">Code:</div><div class="body" dir="ltr"><code>F(0.5,z-5+I)<br />
%9 = (-1.4656748902284050870504481862537795117671444246461 + 0.013883663470269166110664749712091909975949044350577*I) + (0.0090552475535492909792479328232154641781195015743980 + 0.013791788086198760462199343906524092446614863468969*I)*z + (0.0045670178028367387071314821117573918515789937225712 + 0.0068041753533976256135561527057713296047659865352235*I)*z^2 + (0.0015476865068734175206106841571398528403105012863369 + 0.0022070765928811747955236233464310513021430501476307*I)*z^3 + (0.00039891543892133659548658340989669165569996938228453 + 0.00052140830231873072442992810627522686362712867239751*I)*z^4 + (8.4178174236866631903867457930707359218420844461063 E-5 + 9.2220969676350184272646106150840043596397895758635 E-5*I)*z^5 + (1.5297155692229718205929575150684078516045300547506 E-5 + 1.1395397338723591211620539015417303944240961887947 E-5*I)*z^6 + (2.4648659933433487006503562525188591833685417639558 E-6 + 5.1377007877187693499137867370832521899136010774460 E-7*I)*z^7 + (3.4808960611572283953358417653324009343919347206223 E-7 - 2.0528161657762188628631661516172178141919335211807 E-7*I)*z^8 + (3.8065304843361262020434116594035191636557801219975 E-8 - 7.9278413908388873487851724824603493615481918735897 E-8*I)*z^9 + (1.0262817647647246718140355878199687007495381069315 E-9 - 1.8042710996946409674216037570469209013672633186364 E-8*I)*z^10 + (-1.0671844118504040416472747693791047833813058467303 E-9 - 3.1069505116746984305164580175645155123873173268737 E-9*I)*z^11 + (-4.2264043416520561526591337823459060486928937586240 E-10 - 3.9529446327467605097430462476720645209437537948999 E-10*I)*z^12 + (-1.0898912674485696287799509959338396278648791985816 E-10 - 2.2577638080132273808895439521968670601373004378094 E-11*I)*z^13 + (-2.2035809700737663175818097198090007249431422665734 E-11 + 6.5314195869655575147470127053405308248805299942984 E-12*I)*z^14 + (-3.4919297780828299609990518244588393208166940017650 E-12 + 3.0720461691049833172482387788303336124354214938314 E-12*I)*z^15 + (-3.6[+++]</code></div></div><br />
This produces a perfect taylor series, which is at least accurate to 13 digits. <br />
<br />
<hr class="mycode_hr" />
<br />
What if we want the taylor series in the opposite direction? What if I write:<br />
<br />
\[<br />
f^{\circ 1+s}(-5+i)\\<br />
\]<br />
<br />
And I want the taylor expansion in \(s\)?<br />
<br />
<div class="codeblock"><div class="title">Code:</div><div class="body" dir="ltr"><code>F(1+s,-5+I)<br />
%10 = (-0.99635947169957680983203733901585094813263971021027 + 0.0056697868969038589404768188791737542163949161932332*I) + (0.60609216070061100500241466679407467098619430745279 - 0.0077250176109846098808165311553651411366060097011257*I)*s + (-0.41285028279167336813051969083342279733530972881951 + 0.0085229886404815413973422399150977622926380796272986*I)*s^2 + (0.30361358186710751566577626629756404923298178075460 - 0.0088325861081141740647195757373726384677017469326918*I)*s^3 + (-0.23592873968303340883809953707678661516971746042177 + 0.0089393169567161129394010205581945137928297062420063*I)*s^4 + (0.19096956817462706430587704934303355783481085371569 - 0.0089579585981148333632972715609138607712393768297543*I)*s^5 + (-0.15941854364830271813160499945837995038600880161538 + 0.0089371693479168984622390162313503272080243708731951*I)*s^6 + (0.13627260246566502697860348729434647969007037592224 - 0.0088983577138788008294310695249194978698704662348583*I)*s^7 + (-0.11866604910316757419904248700380406228603171508754 + 0.0088511979829179419033345860406703144298817967817887*I)*s^8 + (0.10486744079874876669911988681960690660290618205919 - 0.0088001486751402172736197048996441755078019630054121*I)*s^9 + (-0.093782151116666434801974278707266098008872239799289 + 0.0087472952687562274893120367856051516580193915156286*I)*s^10 + (0.084690536770248759102663212872320243928606350730621 - 0.0086936246561684599598210394520297784162250142416144*I)*s^11 + (-0.077103048723103474748768233212747741749936145681226 + 0.0086396084404931198323320526587606607844820231484328*I)*s^12 + (0.070676531038672679007430968970104655489191639418639 - 0.0085854740979227678667229120529134109538809774911364*I)*s^13 + (-0.065164008098491834925836344345463460612349983669567 + 0.0085313325433693449367454469441149262933119729525905*I)*s^14 + (0.060383533528453698516558823626929372468072953883903 - 0.0084772386944008324064901157778848674038011565110348*I)*s^15 + (-0.056198273129911454863841818316929817054507395990904[+++]</code></div></div><br />
These are again, accurate to about 13 digits. Even in the late coefficients.<br />
<br />
<hr class="mycode_hr" />
<br />
We can even go even further and pull a multivariable taylor series:<br />
<br />
\[<br />
f^{\circ 1+s}(z-5+i)\\<br />
\]<br />
<br />
<div class="codeblock"><div class="title">Code:</div><div class="body" dir="ltr"><code>F(1+s,z-5+I)<br />
Reading GPRC: C:&#92;Program Files (x86)&#92;Pari64-2-13-2&#92;/gprc.txt<br />
GPRC Done.<br />
<br />
  *** _*_: Warning: increasing stack size to 16000000.<br />
  ***   Warning: increasing stack size to 32000000.<br />
  ***   Warning: increasing stack size to 64000000.<br />
%11 = ((-0.99635947169957680983203733901585094813263971021027 + 0.0056697868969038589404768188791737542163949161932332*I) + (0.60609216070061100500241466679407467098619430745279 - 0.0077250176109846098808165311553651411366060097011257*I)*s + (-0.41285028279167336813051969083342279733530972881951 + 0.0085229886404815413973422399150977622926380796272986*I)*s^2 + (0.30361358186710751566577626629756404923298178075460 - 0.0088325861081141740647195757373726384677017469326918*I)*s^3 + (-0.23592873968303340883809953707678661516971746042177 + 0.0089393169567161129394010205581945137928297062420063*I)*s^4 + (0.19096956817462706430587704934303355783481085371569 - 0.0089579585981148333632972715609138607712393768297543*I)*s^5 + (-0.15941854364830271813160499945837995038600880161538 + 0.0089371693479168984622390162313503272080243708731951*I)*s^6 + (0.13627260246566502697860348729434647969007037592224 - 0.0088983577138788008294310695249194978698704662348583*I)*s^7 + (-0.11866604910316757419904248700380406228603171508754 + 0.0088511979829179419033345860406703144298817967817887*I)*s^8 + (0.10486744079874876669911988681960690660290618205919 - 0.0088001486751402172736197048996441755078019630054121*I)*s^9 + (-0.093782151116666434801974278707266098008872239799289 + 0.0087472952687562274893120367856051516580193915156286*I)*s^10 + (0.084690536770248759102663212872320243928606350730621 - 0.0086936246561684599598210394520297784162250142416144*I)*s^11 + (-0.077103048723103474748768233212747741749936145681226 + 0.0086396084404931198323320526587606607844820231484328*I)*s^12 + (0.070676531038672679007430968970104655489191639418639 - 0.0085854740979227678667229120529134109538809774911364*I)*s^13 + (-0.065164008098491834925836344345463460612349983669567 + 0.0085313325433693449367454469441149262933119729525905*I)*s^14 + (0.060383533528453698516558823626929372468072953883903 - 0.0084772386944008324064901157778848674038011565110348*I)*s^15 + (-0.05619827312991145486384181831692981705450739599090[+++]</code></div></div><br />
<hr class="mycode_hr" />
<br />
All in all, this is a really good tool for \(f(z) = e^z-1\), and for all of its iterates. But it is a slightly lower precision construction. I have attached the pari gp tool.<br />
<br />
Fuck em up boyz!<br />
<br />

<br />
<img src="https://tetrationforum.org/images/attachtypes/" title="" border="0" alt=".gp" />
&nbsp;&nbsp;<a href="attachment.php?aid=1967" target="_blank" title="">neutral_int.gp</a> (Size: 585 bytes / Downloads: 541)
]]></description>
			<content:encoded><![CDATA[I apologize for being away for awhile. I have been pretty busy post covid. There's a lot of work I have to get back to. So I haven't had time to do the hard tetration work I'd like to. I've been working on a new paper, and part of this paper justifies the code I talk about in this post. This code relies extraordinarily on Bo's and Gottfried's observations, though you won't see that.<br />
<br />
To begin, this program is designed to calculate one thing and one thing only.<br />
<br />
Let's let:<br />
<br />
\[<br />
f(z) = e^z -1\\<br />
\]<br />
<br />
And let's let:<br />
<br />
\[<br />
f^{\circ s}(z) : \mathbb{C}_{\Re(s) &gt; 0} \times \mathbb{C}/[0,\infty) \to \mathbb{C}/[0,\infty)\\<br />
\]<br />
<br />
I have written, not a perfect algorithm, but a very efficient algorithm--to evaluate this function. Now my code algorithms are different from most of what is written about here, but are incredibly convenient if you know how to use them. I promise I will release a nice article which relates all my work in a month or so.<br />
<br />
To begin, before diving into the entire construct; this code is accurate to 13 decimal points, and to get more decimal points, requires an overhaul of this code. It is possible to tweak my code to get 100 decimal points, but it requires a lot of fucking ram. And it requires treating much larger taylor series than I already treat. I capped everything at 13 digits, as this is a theoretical discovery more than anything. Please play with me here.<br />
<br />
<hr class="mycode_hr" />
<br />
Here is the code:<br />
<br />
<div class="codeblock"><div class="title">Code:</div><div class="body" dir="ltr"><code>&#92;p 50<br />
&#92;ps 20<br />
<br />
Const(poly) = {<br />
    my(vars = variables(poly));<br />
    substvec(poly, vars, vector(#vars));<br />
};<br />
<br />
f(z) = exp(z) - 1;<br />
<br />
iter_f(n,z) = {<br />
&nbsp;&nbsp;&nbsp;&nbsp;if(n==0, z,<br />
&nbsp;&nbsp;&nbsp;&nbsp;Pol(f(iter_f(n-1,z)),z);<br />
&nbsp;&nbsp;&nbsp;&nbsp;);<br />
};<br />
<br />
init_vartheta({LIMIT=300}) = {<br />
&nbsp;&nbsp;&nbsp;&nbsp;BASE = sum(n=0,LIMIT,Pol(iter_f(n+1,z),z)*(-x)^n/factorial(n));<br />
};<br />
<br />
<br />
F(s,y) = {<br />
&nbsp;&nbsp;&nbsp;&nbsp;if(s==1, return(f(y)));<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;if(Const(s)&gt;1, F(s-1,f(y)),<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if(abs(Const(y))&lt;0.05,<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(1/gamma(1-s))*(sum(n=0,300, subst(iter_f(n+1,z),z,y)*(-1)^n/(factorial(n)*(1+n-s))) + intnum(X=1,90,subst(subst(BASE,x,X),z,y)*X^(-s))),<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;log(F(s,f(y)) + 1)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;)<br />
&nbsp;&nbsp;&nbsp;&nbsp;);<br />
};</code></div></div><br />
We run this code in Pari-gp, where it acts as a calculator. I'll give a rough run down of the code:<br />
<br />
<hr class="mycode_hr" />
<br />
We start this by writing:<br />
<br />
<div class="codeblock"><div class="title">Code:</div><div class="body" dir="ltr"><code>&#92;r neutral_int<br />
init_vartheta()<br />
                  GP/PARI CALCULATOR Version 2.13.2 (released)<br />
          amd64 running mingw (x86-64/GMP-6.1.2 kernel) 64-bit version<br />
          compiled: Jun 10 2021, gcc version 8.3-posix 20190406 (GCC)<br />
                            threading engine: single<br />
                (readline v8.0 disabled, extended help enabled)<br />
<br />
                     Copyright (C) 2000-2020 The PARI Group<br />
<br />
PARI/GP is free software, covered by the GNU General Public License, and comes <br />
WITHOUT ANY WARRANTY WHATSOEVER.<br />
<br />
Type ? for help, &#92;q to quit.<br />
Type ?17 for how to get moral (and possibly technical) support.<br />
<br />
parisizemax = 3000000000, primelimit = 500000<br />
   realprecision = 57 significant digits (50 digits displayed)<br />
   seriesprecision = 20 significant terms<br />
%6 = (7.3124522221141931945873965423489781850870963336375 E-574*z^20 + 4.8776641577580803165997457076259405952006870791110 E-576*z^19 + 3.2533729371585239861252793578076839333642436527966 E-578*z^18 + 2.1698381028845785190912405551606111538850924034236 E-580*z^17 + 1.4470734195083639760114636923270112313333833413846 E-582*z^16 + 9.6498718463090253371361871330158177146488344742966 E-585*z^15 + 6.4345469484715300226050838546265794266461049531099 E-587*z^14 + 4.2901966756256620121086824394762639526571841493871 E-589*z^13 + 2.8601982722689581947419466107731984641405981829792 E-591*z^12 + 1.9066506966376583109223165588593100135056802136581 E-593*z^11 + 1.2708602917968835452795860344260753111502911809426 E-595*z^10 + 8.4697542120625621748490806146107026700881852065906 E-598*z^9 + 5.6439536224722981518853895350062310010105217671656 E-600*z^8 + 3.7603398308175438781868992276092586249171876491427 E-602*z^7 + 2.5048995559479616592645703228743438043732892424379 E-604*z^6 + 1.6682343079708266464423028467933492903021662807954 E-606*z^5 + 1.1107165013033971231837564220368316028037815124859 E-608*z^4 + 7.3924559154968194554659329253699274729037039100560 E-611*z^3 + 4.9173764404635162674939686864988431083616655720994 E-613*z^2 + 3.2673597611053264235840323498331183444263558618600 E-615*z)*x^300 + (-2.0589547720821092060786223192151143959240060383760 E-571*z^20 - 1.3779914826472309568294107919635582483482636490661 E-573*z^19 - 9.2218758582917270562944692905636679807443162207638 E-576*z^18 - 6.1711121739999530177255076282387244935981321050957 E-578*z^17 - 4.1293078519937848457489908731271917325970331298606 E-580*z^16 - 2.7628589866638515934497565556810800983915286426183 E-582*z^15 - 1.8484406465819516637405603795846618804829672385618 E-584*z^14 - 1.2365593781076561456034845471595071306486740782974 E-586*z^13 - 8.2714950840113874438767279000894870655299064782632 E-589*z^12 - 5.5323413394245904725289968268135134676405323003597 E-591*z^11 - 3.699861227636877896616633708095127345018[+++]</code></div></div><br />
These Taylor values are divergent, the same way Gottfried and Bo talked about. It's just way better in this form. This code, read the code above, and then ran the initialization of \(\vartheta\).<br />
<br />
From here we have two functions; we have \(f(z) = e^z-1\) and \(f^{\circ s}(z)\). Where \(z\) is valid for \(z\not\in [0,\infty)\) and \(\Re(s) &gt; 0\). Additionally all code is valid to 13 digits at least.<br />
<br />
From here, we call \(F(s,z) = f^{\circ s}(z)\). I'll spend a bit describing how to use this function.<br />
<br />
<hr class="mycode_hr" />
<div class="codeblock"><div class="title">Code:</div><div class="body" dir="ltr"><code>F(0.5,F(0.5,-5+I))<br />
%7 = -0.99635947169836762192725358390433494253623663552745 + 0.0056697868968831960894314416400933210717550792617893*I<br />
f(-5+I)<br />
%8 = -0.99635947169957680983203733901585094813263971484423 + 0.0056697868969038589404768188791737542163949162730891*I</code></div></div><br />
This evaluates \(f^{\circ 0.5}(f^{\circ 0.5}(-5+i)) = e^{-5 + i} -1\), which is accurate to 13 digits.<br />
<br />
The function <br />
<div class="codeblock"><div class="title">Code:</div><div class="body" dir="ltr"><code>F(s,z)</code></div></div><br />
takes an argument \(\Re(s) &gt; 0\) and \(z\not \in [0,\infty)\). We have at least 13 digit accuracy in the digit precision of this semi group. Additionally, we have 13 digit accuracy in the taylor series.<br />
<br />
<hr class="mycode_hr" />
Let's try expanding:<br />
<br />
\[<br />
f^{\circ 0.5}(z-5+i) = h(z)\\<br />
\]<br />
<br />
We'd write this as:<br />
<br />
<div class="codeblock"><div class="title">Code:</div><div class="body" dir="ltr"><code>F(0.5,z-5+I)<br />
%9 = (-1.4656748902284050870504481862537795117671444246461 + 0.013883663470269166110664749712091909975949044350577*I) + (0.0090552475535492909792479328232154641781195015743980 + 0.013791788086198760462199343906524092446614863468969*I)*z + (0.0045670178028367387071314821117573918515789937225712 + 0.0068041753533976256135561527057713296047659865352235*I)*z^2 + (0.0015476865068734175206106841571398528403105012863369 + 0.0022070765928811747955236233464310513021430501476307*I)*z^3 + (0.00039891543892133659548658340989669165569996938228453 + 0.00052140830231873072442992810627522686362712867239751*I)*z^4 + (8.4178174236866631903867457930707359218420844461063 E-5 + 9.2220969676350184272646106150840043596397895758635 E-5*I)*z^5 + (1.5297155692229718205929575150684078516045300547506 E-5 + 1.1395397338723591211620539015417303944240961887947 E-5*I)*z^6 + (2.4648659933433487006503562525188591833685417639558 E-6 + 5.1377007877187693499137867370832521899136010774460 E-7*I)*z^7 + (3.4808960611572283953358417653324009343919347206223 E-7 - 2.0528161657762188628631661516172178141919335211807 E-7*I)*z^8 + (3.8065304843361262020434116594035191636557801219975 E-8 - 7.9278413908388873487851724824603493615481918735897 E-8*I)*z^9 + (1.0262817647647246718140355878199687007495381069315 E-9 - 1.8042710996946409674216037570469209013672633186364 E-8*I)*z^10 + (-1.0671844118504040416472747693791047833813058467303 E-9 - 3.1069505116746984305164580175645155123873173268737 E-9*I)*z^11 + (-4.2264043416520561526591337823459060486928937586240 E-10 - 3.9529446327467605097430462476720645209437537948999 E-10*I)*z^12 + (-1.0898912674485696287799509959338396278648791985816 E-10 - 2.2577638080132273808895439521968670601373004378094 E-11*I)*z^13 + (-2.2035809700737663175818097198090007249431422665734 E-11 + 6.5314195869655575147470127053405308248805299942984 E-12*I)*z^14 + (-3.4919297780828299609990518244588393208166940017650 E-12 + 3.0720461691049833172482387788303336124354214938314 E-12*I)*z^15 + (-3.6[+++]</code></div></div><br />
This produces a perfect taylor series, which is at least accurate to 13 digits. <br />
<br />
<hr class="mycode_hr" />
<br />
What if we want the taylor series in the opposite direction? What if I write:<br />
<br />
\[<br />
f^{\circ 1+s}(-5+i)\\<br />
\]<br />
<br />
And I want the taylor expansion in \(s\)?<br />
<br />
<div class="codeblock"><div class="title">Code:</div><div class="body" dir="ltr"><code>F(1+s,-5+I)<br />
%10 = (-0.99635947169957680983203733901585094813263971021027 + 0.0056697868969038589404768188791737542163949161932332*I) + (0.60609216070061100500241466679407467098619430745279 - 0.0077250176109846098808165311553651411366060097011257*I)*s + (-0.41285028279167336813051969083342279733530972881951 + 0.0085229886404815413973422399150977622926380796272986*I)*s^2 + (0.30361358186710751566577626629756404923298178075460 - 0.0088325861081141740647195757373726384677017469326918*I)*s^3 + (-0.23592873968303340883809953707678661516971746042177 + 0.0089393169567161129394010205581945137928297062420063*I)*s^4 + (0.19096956817462706430587704934303355783481085371569 - 0.0089579585981148333632972715609138607712393768297543*I)*s^5 + (-0.15941854364830271813160499945837995038600880161538 + 0.0089371693479168984622390162313503272080243708731951*I)*s^6 + (0.13627260246566502697860348729434647969007037592224 - 0.0088983577138788008294310695249194978698704662348583*I)*s^7 + (-0.11866604910316757419904248700380406228603171508754 + 0.0088511979829179419033345860406703144298817967817887*I)*s^8 + (0.10486744079874876669911988681960690660290618205919 - 0.0088001486751402172736197048996441755078019630054121*I)*s^9 + (-0.093782151116666434801974278707266098008872239799289 + 0.0087472952687562274893120367856051516580193915156286*I)*s^10 + (0.084690536770248759102663212872320243928606350730621 - 0.0086936246561684599598210394520297784162250142416144*I)*s^11 + (-0.077103048723103474748768233212747741749936145681226 + 0.0086396084404931198323320526587606607844820231484328*I)*s^12 + (0.070676531038672679007430968970104655489191639418639 - 0.0085854740979227678667229120529134109538809774911364*I)*s^13 + (-0.065164008098491834925836344345463460612349983669567 + 0.0085313325433693449367454469441149262933119729525905*I)*s^14 + (0.060383533528453698516558823626929372468072953883903 - 0.0084772386944008324064901157778848674038011565110348*I)*s^15 + (-0.056198273129911454863841818316929817054507395990904[+++]</code></div></div><br />
These are again, accurate to about 13 digits. Even in the late coefficients.<br />
<br />
<hr class="mycode_hr" />
<br />
We can even go even further and pull a multivariable taylor series:<br />
<br />
\[<br />
f^{\circ 1+s}(z-5+i)\\<br />
\]<br />
<br />
<div class="codeblock"><div class="title">Code:</div><div class="body" dir="ltr"><code>F(1+s,z-5+I)<br />
Reading GPRC: C:&#92;Program Files (x86)&#92;Pari64-2-13-2&#92;/gprc.txt<br />
GPRC Done.<br />
<br />
  *** _*_: Warning: increasing stack size to 16000000.<br />
  ***   Warning: increasing stack size to 32000000.<br />
  ***   Warning: increasing stack size to 64000000.<br />
%11 = ((-0.99635947169957680983203733901585094813263971021027 + 0.0056697868969038589404768188791737542163949161932332*I) + (0.60609216070061100500241466679407467098619430745279 - 0.0077250176109846098808165311553651411366060097011257*I)*s + (-0.41285028279167336813051969083342279733530972881951 + 0.0085229886404815413973422399150977622926380796272986*I)*s^2 + (0.30361358186710751566577626629756404923298178075460 - 0.0088325861081141740647195757373726384677017469326918*I)*s^3 + (-0.23592873968303340883809953707678661516971746042177 + 0.0089393169567161129394010205581945137928297062420063*I)*s^4 + (0.19096956817462706430587704934303355783481085371569 - 0.0089579585981148333632972715609138607712393768297543*I)*s^5 + (-0.15941854364830271813160499945837995038600880161538 + 0.0089371693479168984622390162313503272080243708731951*I)*s^6 + (0.13627260246566502697860348729434647969007037592224 - 0.0088983577138788008294310695249194978698704662348583*I)*s^7 + (-0.11866604910316757419904248700380406228603171508754 + 0.0088511979829179419033345860406703144298817967817887*I)*s^8 + (0.10486744079874876669911988681960690660290618205919 - 0.0088001486751402172736197048996441755078019630054121*I)*s^9 + (-0.093782151116666434801974278707266098008872239799289 + 0.0087472952687562274893120367856051516580193915156286*I)*s^10 + (0.084690536770248759102663212872320243928606350730621 - 0.0086936246561684599598210394520297784162250142416144*I)*s^11 + (-0.077103048723103474748768233212747741749936145681226 + 0.0086396084404931198323320526587606607844820231484328*I)*s^12 + (0.070676531038672679007430968970104655489191639418639 - 0.0085854740979227678667229120529134109538809774911364*I)*s^13 + (-0.065164008098491834925836344345463460612349983669567 + 0.0085313325433693449367454469441149262933119729525905*I)*s^14 + (0.060383533528453698516558823626929372468072953883903 - 0.0084772386944008324064901157778848674038011565110348*I)*s^15 + (-0.05619827312991145486384181831692981705450739599090[+++]</code></div></div><br />
<hr class="mycode_hr" />
<br />
All in all, this is a really good tool for \(f(z) = e^z-1\), and for all of its iterates. But it is a slightly lower precision construction. I have attached the pari gp tool.<br />
<br />
Fuck em up boyz!<br />
<br />

<br />
<img src="https://tetrationforum.org/images/attachtypes/" title="" border="0" alt=".gp" />
&nbsp;&nbsp;<a href="attachment.php?aid=1967" target="_blank" title="">neutral_int.gp</a> (Size: 585 bytes / Downloads: 541)
]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[Terse Schroeder & Abel function code]]></title>
			<link>https://tetrationforum.org/showthread.php?tid=1650</link>
			<pubDate>Sun, 02 Oct 2022 13:42:25 +0000</pubDate>
			<dc:creator><![CDATA[<a href="https://tetrationforum.org/member.php?action=profile&uid=12">Daniel</a>]]></dc:creator>
			<guid isPermaLink="false">https://tetrationforum.org/showthread.php?tid=1650</guid>
			<description><![CDATA[The following provides the Schroeder and Abel functions in Mathematica using the support for solving recursive equations and Bell polynomials. The code takes about a hour to run for the first ten derivatives.<br />
<div class="codeblock"><div class="title">Code:</div><div class="body" dir="ltr"><code>order=10; <br />
H[0]=0;<br />
H[1]=f'[0]^t ;<br />
Do[H[max]=First[r[t]/.RSolve[{r[0]==0,r[t]==Sum[Derivative[k][f][0]BellY[max,k,Table[H[j]/.t-&gt;t-1,{j,max}]],{k,2,max}]+ f'[0] r[t-1]},r[t],t]],{max,2,order}];<br />
Schroeder=f'[0]^t z+Sum[1/k! H[k]z^k,{k,2,order}]<br />
Abel=Limit[Schroeder,{f'[0]-&gt;1}]</code></div></div>]]></description>
			<content:encoded><![CDATA[The following provides the Schroeder and Abel functions in Mathematica using the support for solving recursive equations and Bell polynomials. The code takes about a hour to run for the first ten derivatives.<br />
<div class="codeblock"><div class="title">Code:</div><div class="body" dir="ltr"><code>order=10; <br />
H[0]=0;<br />
H[1]=f'[0]^t ;<br />
Do[H[max]=First[r[t]/.RSolve[{r[0]==0,r[t]==Sum[Derivative[k][f][0]BellY[max,k,Table[H[j]/.t-&gt;t-1,{j,max}]],{k,2,max}]+ f'[0] r[t-1]},r[t],t]],{max,2,order}];<br />
Schroeder=f'[0]^t z+Sum[1/k! H[k]z^k,{k,2,order}]<br />
Abel=Limit[Schroeder,{f'[0]-&gt;1}]</code></div></div>]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[Language converter]]></title>
			<link>https://tetrationforum.org/showthread.php?tid=1649</link>
			<pubDate>Fri, 30 Sep 2022 04:38:33 +0000</pubDate>
			<dc:creator><![CDATA[<a href="https://tetrationforum.org/member.php?action=profile&uid=12">Daniel</a>]]></dc:creator>
			<guid isPermaLink="false">https://tetrationforum.org/showthread.php?tid=1649</guid>
			<description><![CDATA[The software supports coverting between hundreds of programming languages. Both Pari and Mathematica are supported.<br />
<a href="https://codelanguageconverter.com/" target="_blank" rel="noopener" class="mycode_url">Language Converter</a> Sadly it currently only works with small chunks of code.]]></description>
			<content:encoded><![CDATA[The software supports coverting between hundreds of programming languages. Both Pari and Mathematica are supported.<br />
<a href="https://codelanguageconverter.com/" target="_blank" rel="noopener" class="mycode_url">Language Converter</a> Sadly it currently only works with small chunks of code.]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[Slick Mathematica "trick"]]></title>
			<link>https://tetrationforum.org/showthread.php?tid=1648</link>
			<pubDate>Thu, 29 Sep 2022 09:07:26 +0000</pubDate>
			<dc:creator><![CDATA[<a href="https://tetrationforum.org/member.php?action=profile&uid=12">Daniel</a>]]></dc:creator>
			<guid isPermaLink="false">https://tetrationforum.org/showthread.php?tid=1648</guid>
			<description><![CDATA[I'm rewriting my old Mathematica notebooks and now have a simply way to computer the Schroeder equation. Mathematica's support of limits allows me to take the limit of the multiplier to 1 and obtain the Abel equation.]]></description>
			<content:encoded><![CDATA[I'm rewriting my old Mathematica notebooks and now have a simply way to computer the Schroeder equation. Mathematica's support of limits allows me to take the limit of the multiplier to 1 and obtain the Abel equation.]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[GitHub repo for Mathematica packlet FractionalIteration]]></title>
			<link>https://tetrationforum.org/showthread.php?tid=1629</link>
			<pubDate>Fri, 26 Aug 2022 06:53:09 +0000</pubDate>
			<dc:creator><![CDATA[<a href="https://tetrationforum.org/member.php?action=profile&uid=12">Daniel</a>]]></dc:creator>
			<guid isPermaLink="false">https://tetrationforum.org/showthread.php?tid=1629</guid>
			<description><![CDATA[I've created a GitHub repository for my new Mathematica packlet <a href="https://github.com/DanielLeeGeisler/FractionalIteration" target="_blank" rel="noopener" class="mycode_url">FractionalIteration</a>. If you work with Mathematica feel free to review my work or add your own version! First I need to convert my old package to a <a href="https://resources.wolframcloud.com/PacletRepository" target="_blank" rel="noopener" class="mycode_url">paclet</a>, a series of directories and files to automatically load the system, including documentation, into Mathematica.]]></description>
			<content:encoded><![CDATA[I've created a GitHub repository for my new Mathematica packlet <a href="https://github.com/DanielLeeGeisler/FractionalIteration" target="_blank" rel="noopener" class="mycode_url">FractionalIteration</a>. If you work with Mathematica feel free to review my work or add your own version! First I need to convert my old package to a <a href="https://resources.wolframcloud.com/PacletRepository" target="_blank" rel="noopener" class="mycode_url">paclet</a>, a series of directories and files to automatically load the system, including documentation, into Mathematica.]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[Computing Kneser's Super Logarithm and its Analytic Continuation]]></title>
			<link>https://tetrationforum.org/showthread.php?tid=1536</link>
			<pubDate>Fri, 17 Jun 2022 23:17:47 +0000</pubDate>
			<dc:creator><![CDATA[<a href="https://tetrationforum.org/member.php?action=profile&uid=310">Catullus</a>]]></dc:creator>
			<guid isPermaLink="false">https://tetrationforum.org/showthread.php?tid=1536</guid>
			<description><![CDATA[What is the big O for computing Kneser's super logarithm, with the fastest known algorithm for computing it? Do we know what the best possible big O for computing Kneser's super logarithm is, like maybe a <a href="https://en.wikipedia.org/wiki/Galactic_algorithm" target="_blank" rel="noopener" class="mycode_url">Galactic algorithm</a> for computing it? (Even if we do not know what algorithm would have that big O.) If so, what is it?<br />
What about computing the inverse Kneser's tetration, instead of his super logarithm?<br />
What about computing the analytical continuation of the Kneser method?]]></description>
			<content:encoded><![CDATA[What is the big O for computing Kneser's super logarithm, with the fastest known algorithm for computing it? Do we know what the best possible big O for computing Kneser's super logarithm is, like maybe a <a href="https://en.wikipedia.org/wiki/Galactic_algorithm" target="_blank" rel="noopener" class="mycode_url">Galactic algorithm</a> for computing it? (Even if we do not know what algorithm would have that big O.) If so, what is it?<br />
What about computing the inverse Kneser's tetration, instead of his super logarithm?<br />
What about computing the analytical continuation of the Kneser method?]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[Computing Integer Tetrations]]></title>
			<link>https://tetrationforum.org/showthread.php?tid=1404</link>
			<pubDate>Thu, 09 Jun 2022 03:26:53 +0000</pubDate>
			<dc:creator><![CDATA[<a href="https://tetrationforum.org/member.php?action=profile&uid=310">Catullus</a>]]></dc:creator>
			<guid isPermaLink="false">https://tetrationforum.org/showthread.php?tid=1404</guid>
			<description><![CDATA[How does one efficiently compute integer tetrations? Like how would one efficiently compute η^^16,384 without having to do 16,383 exponentiations?]]></description>
			<content:encoded><![CDATA[How does one efficiently compute integer tetrations? Like how would one efficiently compute η^^16,384 without having to do 16,383 exponentiations?]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[Quickest way to compute the Abel function on the Shell-Thron boundary]]></title>
			<link>https://tetrationforum.org/showthread.php?tid=1388</link>
			<pubDate>Thu, 21 Apr 2022 00:52:17 +0000</pubDate>
			<dc:creator><![CDATA[<a href="https://tetrationforum.org/member.php?action=profile&uid=163">JmsNxn</a>]]></dc:creator>
			<guid isPermaLink="false">https://tetrationforum.org/showthread.php?tid=1388</guid>
			<description><![CDATA[I'm currently writing a protocol to evaluate the modified bennet operators:<br />
<br />
\[<br />
\alpha &lt;s&gt;_{\varphi} y = \exp_{y^{1/y}}^{\circ s}\left(\log^{\circ s}_{y^{1/y}}(\alpha) + y + \varphi\right)\\<br />
\]<br />
<br />
For \(\varphi\) a complex number--I'm mostly just dealing with real positive values at the moment. The goal is to evaluate the function \(\varphi(\alpha,y,s)\), such that these operators will satisfy Goodstein's equation:<br />
<br />
\[<br />
\alpha &lt;s&gt; \left(\alpha &lt;s+1&gt; y\right) = \alpha &lt;s+1&gt; (y+1)\\<br />
\]<br />
<br />
But for the moment, I'm just concerning myself with calculating the first function. Everything works great so far, but I'm scratching my head for when \(y^{1/y} = \partial \mathfrak{S}\)-- when it's on the boundary of the Shell-Thron region (equivalently \(|\log(y)| = 1\)). Now I know we can construct a repelling and attracting Abel function about these points--and I know all the theory. But I just realized, I've never actually seen a program that constructs it. I know Sheldon has a program for handling it, but I really don't want to go digging through all the matrix theory. I just want a quick formula. I know if you make a variable change that it becomes pretty elementary.<br />
<br />
So for the moment, I can construct \(\alpha &lt;s&gt;_{\varphi} y\), for pretty much the entire complex plane in \(y\) (excluding branch cuts), excluding where \(y^{1/y} \in \mathfrak{S}\). This is primarily because I don't know a fast way to get both abel functions... I could program in a way, but I think it's going to be way too slow. This program is already pretty slow as it is (we have to consistently reinitialize to account for varying bases of the exponential). I don't want to slow it down any more. I was wondering if there's anywhere on this forum that has an easy to read program I can adapt for this. <br />
<br />
...I just hope I don't have to write too much just to handle the case \(|\log(y)| = 1\) -_-....<br />
<br />
Edit: I thought I'd add that I know how to write in the neutral case but it just nukes the speed of my code. I know how to program in the \(\eta\) case, but I'm wondering what the current fastest way is. For the moment, I'm just returning \(0\) anywhere on the boundary, because it just nukes my code and makes everything so fucking slow for these values of \(y\).]]></description>
			<content:encoded><![CDATA[I'm currently writing a protocol to evaluate the modified bennet operators:<br />
<br />
\[<br />
\alpha &lt;s&gt;_{\varphi} y = \exp_{y^{1/y}}^{\circ s}\left(\log^{\circ s}_{y^{1/y}}(\alpha) + y + \varphi\right)\\<br />
\]<br />
<br />
For \(\varphi\) a complex number--I'm mostly just dealing with real positive values at the moment. The goal is to evaluate the function \(\varphi(\alpha,y,s)\), such that these operators will satisfy Goodstein's equation:<br />
<br />
\[<br />
\alpha &lt;s&gt; \left(\alpha &lt;s+1&gt; y\right) = \alpha &lt;s+1&gt; (y+1)\\<br />
\]<br />
<br />
But for the moment, I'm just concerning myself with calculating the first function. Everything works great so far, but I'm scratching my head for when \(y^{1/y} = \partial \mathfrak{S}\)-- when it's on the boundary of the Shell-Thron region (equivalently \(|\log(y)| = 1\)). Now I know we can construct a repelling and attracting Abel function about these points--and I know all the theory. But I just realized, I've never actually seen a program that constructs it. I know Sheldon has a program for handling it, but I really don't want to go digging through all the matrix theory. I just want a quick formula. I know if you make a variable change that it becomes pretty elementary.<br />
<br />
So for the moment, I can construct \(\alpha &lt;s&gt;_{\varphi} y\), for pretty much the entire complex plane in \(y\) (excluding branch cuts), excluding where \(y^{1/y} \in \mathfrak{S}\). This is primarily because I don't know a fast way to get both abel functions... I could program in a way, but I think it's going to be way too slow. This program is already pretty slow as it is (we have to consistently reinitialize to account for varying bases of the exponential). I don't want to slow it down any more. I was wondering if there's anywhere on this forum that has an easy to read program I can adapt for this. <br />
<br />
...I just hope I don't have to write too much just to handle the case \(|\log(y)| = 1\) -_-....<br />
<br />
Edit: I thought I'd add that I know how to write in the neutral case but it just nukes the speed of my code. I know how to program in the \(\eta\) case, but I'm wondering what the current fastest way is. For the moment, I'm just returning \(0\) anywhere on the boundary, because it just nukes my code and makes everything so fucking slow for these values of \(y\).]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[The beta method program]]></title>
			<link>https://tetrationforum.org/showthread.php?tid=1379</link>
			<pubDate>Fri, 25 Feb 2022 02:05:18 +0000</pubDate>
			<dc:creator><![CDATA[<a href="https://tetrationforum.org/member.php?action=profile&uid=163">JmsNxn</a>]]></dc:creator>
			<guid isPermaLink="false">https://tetrationforum.org/showthread.php?tid=1379</guid>
			<description><![CDATA[Hey, everyone!<br />
<br />
I thought I'd post a link to my github repository for the beta.gp program. I will post the readme of the program and the file itself, along with the github. If only I feel the need to update or fix some errors in my code; I'll do it on github, and not necessarily on this post.<br />
<br />
Here is the readme.txt which gives a run down of everything:<br />
<br />
<div class="codeblock"><div class="title">Code:</div><div class="body" dir="ltr"><code># The-Beta-Method-Thesis<br />
The final program for the beta method of iterated exponentials<br />
<br />
Coded by James David Nixon, with supplementary code by Sheldon Levenstein and Mike3 of the tetration forum.<br />
Levenstein optimized some protocols I had written, and we use Mike3's graphing protocol.<br />
<br />
<br />
To begin use of the program one must execute the file in a pari-gp shell.<br />
We can now choose digit precision by taking "&#92;p d" and series precision by "&#92;ps count"; for d,count positive integers.<br />
<br />
<br />
From here, one must call init(l,b); or init_OFF(l,b) if abs(b) &gt; 1E6, abs(b)&lt;1E-4. The variable l must have a real part greater than zero; and b cannot equal zero (this produces the trivial beta), and the trivial tetration Sexp = 1.<br />
<br />
After initialization, the values l = mult and b = base are global variables. It is possible to initialize these objects as polynomials as well; meaning mult = 1+u or base = 1+v are perfectly valid. This protocol internally uses the variable x, so do not use this variable or reassign this variable else where in the program.<br />
<br />
This produces 4 function protocols (and a few variations):<br />
<br />
beta(z) = exp(base * beta(z-1))/(1+exp(-mult * (z-1)))<br />
<br />
tau(z) = log(1+tau(z+1)/beta(z+1))/base - log(1+exp(-mult * z))/base<br />
<br />
Sexp_N(z+1) = beta(z+1) + tau(z+1) = exp(base * (beta(z) + tau(z)))<br />
<br />
Each of these functions has a period of 2 * Pi * I/mult. They will be accurate to the digit precision, usually; if not, re run the initialization protocol with a higher series precision. Or one can keep the series precision and run init(l,b,COUNT) (resp. init_OFF); where COUNT determines how many iterations to do. One should never have to exceed 1000. There is an optional parameter in tau and Sexp_N which can tell us how many times to do the iteration; the program by default chooses enough for most calculations; sometimes it may be beneficial to induce more iterations.<br />
<br />
We can treat these three functions as polynomials as well; so that beta(1+z), tau(1+z), Sexp_N(1+z), are all viable prompts, which produce the polynomial about 1 in z to the desired series precision.<br />
<br />
There is also a separate initialization protocol you can run after the first which gives the summative form of the error. This would be:<br />
<br />
init_rho(c, {LIMIT = default(seriesprecision)}) which creates up to the series precision a sequence of functions rho, which act as sum(j=1,LIMIT,RHO[j]) = tau(q+CENTER,LIMIT-2). The variable CENTER=c; and this is declared as a global constant. This protocol internally uses the variable q; so it is best warned to not use the variable q elsewhere in the program. <br />
<br />
This spawns the function:<br />
<br />
rho(z,j)<br />
<br />
which is an evaluation of a polynomial centered about CENTER upto the series precision. The variable j indexes up until how many rho terms were made using LIMIT in init_rho. Or, if there's an overflow it sets the protocol to zero; or if j is outside of the index list, sets the protocol to zero. This satisfies:<br />
<br />
rho(z,0) = 0;<br />
rho(z,1) = -log(1+exp(-mult * z))/base<br />
sum(j=0,LIMIT-1, rho(z,j)) = tau(z, LIMIT-2)<br />
<br />
rho(z,j) = tau(z,j-1) - tau(z,j-2);<br />
<br />
And lastly, a protocol:<br />
<br />
tau_rho(z) = tau(z,LIMIT-2);<br />
<br />
Which is just short hand for the sum.<br />
<br />
<br />
/*****************************************************************************************************/<br />
The next functions are a Julia set protocol for beta. <br />
<br />
We want to determine the points that are in the weak Julia set, and the points which are not. <br />
These are points where the orbits escape. A point a belongs to the weak Julia set if, for any D&gt; 0:<br />
<br />
limsup n to infinity sup(|z-a|&lt;D, 1/beta(z+n)) = infinity<br />
<br />
Sadly, there is no efficient way to calculate this, other than the below expression; which tests if 1/beta(z+depth) grows eggregiously fast in a neighborhood.<br />
This is allowed because where beta(z) is very small, nearby we are arbitrarily close to infinity; whether in further orbits or in the same orbit.<br />
<br />
<br />
This is the Julia test, which requires a single for-loop; which is accurate enough.<br />
<br />
The variable depth must come in the form of a nonzero natural number; it tells us how deep to run the recursion.<br />
<br />
The variable rad can be chosen as small as possible; and decides the radius of the circle we sample from; 1E-100 gives a good enough result.<br />
<br />
The variable sample must come in the form of a nonzero natural number. It determines how many samples we take from the circle of radius rad about a.<br />
<br />
<br />
This function takes sample amount of sample points on a disk about a; and tests whether we diverge at depth or not.<br />
The ideal form of this function would be at rad to 0, and sample to infinity; and depth to infinity.<br />
But, nonetheless this is still fairly accurate; and as accurate as possible without unscrupuously shrinking rad and growing the sample; plus, making depth as deep as possible.<br />
<br />
Is_Julia(a,{depth = 25},{rad = 1E-100},{sample = 24})<br />
<br />
<br />
Attached to this function is the Is_Shell_Thron, and Is_Shell_Thron_EXP. This takes a point a and tests upto a depth and a series precision the fixed point (or lack there of) of the exponential exp(log(a) * z) (resp. exp(a * z)); and spits out the constant or a zero for lack of fixed point. This is solely for the purpose of graphing and testing for if a point is in Shell-Thron. <br />
<br />
/*****************************************************************************************************/<br />
<br />
The next functions are a tad more involved. We want to find the normalization constant, and this can be difficult.<br />
Expect this normalization process to fail for values like b=0.0001 or b = -1000; or any extreme values.<br />
At this point, it is much better to just run the super exponential that is not normalized.<br />
<br />
We effectively run a Newtonian root finder algorithm, but we run it twice; in the neighborhood of z = 0<br />
I have included these functions in the normalization initialization; but they may not initialize properly for b = 0.0001, or  b=-1000.<br />
<br />
It can also encounter a good amount of problems with complex b, but it will work; the problem is typically wait times.<br />
<br />
<br />
init_NORM(l,b)  where l and b must be mult and base or else we fail. Then we have access to:<br />
<br />
x_NORM()<br />
<br />
such that<br />
<br />
Sexp(z) = Sexp_N(z+x_NORM())<br />
<br />
in which Sexp(0) = 1; now. Again, this is superfluous and not as well coded as the rest of this program; expect wait times and imprecision. <br />
<br />
/************************************************************************************************************************************<br />
<br />
The following is Mike3's readme for his graphing protocol, used to make phase-plot graphs.<br />
<br />
<br />
/* =============================================================================  <br />
** Color graphing system - mike3 - 20.11.10 04:07<br />
** Hi.<br />
** I thought I'd post the code I use to generate the color graphs from Pari/GP.<br />
** Here it is.<br />
**<br />
** Note: the output is in .PPM format. <br />
** You'll need something else to convert that to .PNG. (I use GIMP.)<br />
** <br />
** Also, I might warn you: it takes a LONG time to graph a complex function<br />
** with a significantly complicated calculation procedure, as it must be<br />
** evaluated at every pixel of the graph.<br />
** <br />
** (updated 12/16/2010 -- program was not all good: <br />
**   * spurious "func" parameter in MakeGraph and "safetyarg" was missing.)<br />
** ------------------------------------------------------------------------------------------ <br />
**  <br />
** ============================================================================= */<br />
<br />
/* =============================== Code: ==================================================== */<br />
/* Complex function magnitude/phase plotter. */<br />
<br />
/* To use:<br />
*     1. Define function to graph as func(z).<br />
*     2. Load this program.<br />
*     3. Execute MakeGraph(width, height, x0, y0, x1, y1, filename) with the parameters given as follows:<br />
*        width, height = width/height of image in pixels<br />
*        x0, y0, x1, y1 = rectangle of complex plane to graph: x0 + y0i in upper-left corner to x1 + y1i in lower-right corner<br />
*        filename = name of file to save as.<br />
* Output is in .PPM format.<br />
*/</code></div></div><br />
<br />
And here's beta.gp<br />
<br />

<br />
<img src="https://tetrationforum.org/images/attachtypes/" title="" border="0" alt=".gp" />
&nbsp;&nbsp;<a href="attachment.php?aid=1687" target="_blank" title="">beta.gp</a> (Size: 23.12 KB / Downloads: 691)
<br />
<br />
<br />
And for further updates; if I feel the need to add anything I will probably just change github, rather than editing this post.<br />
<br />
<a href="https://github.com/JmsNxn92/The-Beta-Method-Thesis/" target="_blank" rel="noopener" class="mycode_url">https://github.com/JmsNxn92/The-Beta-Method-Thesis/</a><br />
<br />
<br />
<br />
This post goes hand in hand with the beta method thesis; introduced in <a href="https://math.eretrandre.org/tetrationforum/showthread.php?tid=1375" target="_blank" rel="noopener" class="mycode_url">this forum post</a>.<br />
<br />
And here's a pretty picture I generated with this program, of what a tetration looks like for \(b=e^{-0.3-i} \approx 0.4002657... - i0.6233770...\) with a period of \(2 \pi i\); graphed over the region \(0 \le \Im(s),\Re(s) \le 2 \pi \). It isn't normalized but you can visually see how to shift the function into tetration--that lone zero in the bottom left corner needs to be positioned at \(\text{Sexp}(-1) = 0\).<br />
<br />

<br />
<img src="https://tetrationforum.org/images/attachtypes/image.gif" title="PNG Image" border="0" alt=".png" />
&nbsp;&nbsp;<a href="attachment.php?aid=1688" target="_blank" title="">INV_ABEL_NEGATIVE_POINT_3_MINUS_I_MULT_1.png</a> (Size: 109.62 KB / Downloads: 726)
<br />
<br />
<br />
Regards, James]]></description>
			<content:encoded><![CDATA[Hey, everyone!<br />
<br />
I thought I'd post a link to my github repository for the beta.gp program. I will post the readme of the program and the file itself, along with the github. If only I feel the need to update or fix some errors in my code; I'll do it on github, and not necessarily on this post.<br />
<br />
Here is the readme.txt which gives a run down of everything:<br />
<br />
<div class="codeblock"><div class="title">Code:</div><div class="body" dir="ltr"><code># The-Beta-Method-Thesis<br />
The final program for the beta method of iterated exponentials<br />
<br />
Coded by James David Nixon, with supplementary code by Sheldon Levenstein and Mike3 of the tetration forum.<br />
Levenstein optimized some protocols I had written, and we use Mike3's graphing protocol.<br />
<br />
<br />
To begin use of the program one must execute the file in a pari-gp shell.<br />
We can now choose digit precision by taking "&#92;p d" and series precision by "&#92;ps count"; for d,count positive integers.<br />
<br />
<br />
From here, one must call init(l,b); or init_OFF(l,b) if abs(b) &gt; 1E6, abs(b)&lt;1E-4. The variable l must have a real part greater than zero; and b cannot equal zero (this produces the trivial beta), and the trivial tetration Sexp = 1.<br />
<br />
After initialization, the values l = mult and b = base are global variables. It is possible to initialize these objects as polynomials as well; meaning mult = 1+u or base = 1+v are perfectly valid. This protocol internally uses the variable x, so do not use this variable or reassign this variable else where in the program.<br />
<br />
This produces 4 function protocols (and a few variations):<br />
<br />
beta(z) = exp(base * beta(z-1))/(1+exp(-mult * (z-1)))<br />
<br />
tau(z) = log(1+tau(z+1)/beta(z+1))/base - log(1+exp(-mult * z))/base<br />
<br />
Sexp_N(z+1) = beta(z+1) + tau(z+1) = exp(base * (beta(z) + tau(z)))<br />
<br />
Each of these functions has a period of 2 * Pi * I/mult. They will be accurate to the digit precision, usually; if not, re run the initialization protocol with a higher series precision. Or one can keep the series precision and run init(l,b,COUNT) (resp. init_OFF); where COUNT determines how many iterations to do. One should never have to exceed 1000. There is an optional parameter in tau and Sexp_N which can tell us how many times to do the iteration; the program by default chooses enough for most calculations; sometimes it may be beneficial to induce more iterations.<br />
<br />
We can treat these three functions as polynomials as well; so that beta(1+z), tau(1+z), Sexp_N(1+z), are all viable prompts, which produce the polynomial about 1 in z to the desired series precision.<br />
<br />
There is also a separate initialization protocol you can run after the first which gives the summative form of the error. This would be:<br />
<br />
init_rho(c, {LIMIT = default(seriesprecision)}) which creates up to the series precision a sequence of functions rho, which act as sum(j=1,LIMIT,RHO[j]) = tau(q+CENTER,LIMIT-2). The variable CENTER=c; and this is declared as a global constant. This protocol internally uses the variable q; so it is best warned to not use the variable q elsewhere in the program. <br />
<br />
This spawns the function:<br />
<br />
rho(z,j)<br />
<br />
which is an evaluation of a polynomial centered about CENTER upto the series precision. The variable j indexes up until how many rho terms were made using LIMIT in init_rho. Or, if there's an overflow it sets the protocol to zero; or if j is outside of the index list, sets the protocol to zero. This satisfies:<br />
<br />
rho(z,0) = 0;<br />
rho(z,1) = -log(1+exp(-mult * z))/base<br />
sum(j=0,LIMIT-1, rho(z,j)) = tau(z, LIMIT-2)<br />
<br />
rho(z,j) = tau(z,j-1) - tau(z,j-2);<br />
<br />
And lastly, a protocol:<br />
<br />
tau_rho(z) = tau(z,LIMIT-2);<br />
<br />
Which is just short hand for the sum.<br />
<br />
<br />
/*****************************************************************************************************/<br />
The next functions are a Julia set protocol for beta. <br />
<br />
We want to determine the points that are in the weak Julia set, and the points which are not. <br />
These are points where the orbits escape. A point a belongs to the weak Julia set if, for any D&gt; 0:<br />
<br />
limsup n to infinity sup(|z-a|&lt;D, 1/beta(z+n)) = infinity<br />
<br />
Sadly, there is no efficient way to calculate this, other than the below expression; which tests if 1/beta(z+depth) grows eggregiously fast in a neighborhood.<br />
This is allowed because where beta(z) is very small, nearby we are arbitrarily close to infinity; whether in further orbits or in the same orbit.<br />
<br />
<br />
This is the Julia test, which requires a single for-loop; which is accurate enough.<br />
<br />
The variable depth must come in the form of a nonzero natural number; it tells us how deep to run the recursion.<br />
<br />
The variable rad can be chosen as small as possible; and decides the radius of the circle we sample from; 1E-100 gives a good enough result.<br />
<br />
The variable sample must come in the form of a nonzero natural number. It determines how many samples we take from the circle of radius rad about a.<br />
<br />
<br />
This function takes sample amount of sample points on a disk about a; and tests whether we diverge at depth or not.<br />
The ideal form of this function would be at rad to 0, and sample to infinity; and depth to infinity.<br />
But, nonetheless this is still fairly accurate; and as accurate as possible without unscrupuously shrinking rad and growing the sample; plus, making depth as deep as possible.<br />
<br />
Is_Julia(a,{depth = 25},{rad = 1E-100},{sample = 24})<br />
<br />
<br />
Attached to this function is the Is_Shell_Thron, and Is_Shell_Thron_EXP. This takes a point a and tests upto a depth and a series precision the fixed point (or lack there of) of the exponential exp(log(a) * z) (resp. exp(a * z)); and spits out the constant or a zero for lack of fixed point. This is solely for the purpose of graphing and testing for if a point is in Shell-Thron. <br />
<br />
/*****************************************************************************************************/<br />
<br />
The next functions are a tad more involved. We want to find the normalization constant, and this can be difficult.<br />
Expect this normalization process to fail for values like b=0.0001 or b = -1000; or any extreme values.<br />
At this point, it is much better to just run the super exponential that is not normalized.<br />
<br />
We effectively run a Newtonian root finder algorithm, but we run it twice; in the neighborhood of z = 0<br />
I have included these functions in the normalization initialization; but they may not initialize properly for b = 0.0001, or  b=-1000.<br />
<br />
It can also encounter a good amount of problems with complex b, but it will work; the problem is typically wait times.<br />
<br />
<br />
init_NORM(l,b)  where l and b must be mult and base or else we fail. Then we have access to:<br />
<br />
x_NORM()<br />
<br />
such that<br />
<br />
Sexp(z) = Sexp_N(z+x_NORM())<br />
<br />
in which Sexp(0) = 1; now. Again, this is superfluous and not as well coded as the rest of this program; expect wait times and imprecision. <br />
<br />
/************************************************************************************************************************************<br />
<br />
The following is Mike3's readme for his graphing protocol, used to make phase-plot graphs.<br />
<br />
<br />
/* =============================================================================  <br />
** Color graphing system - mike3 - 20.11.10 04:07<br />
** Hi.<br />
** I thought I'd post the code I use to generate the color graphs from Pari/GP.<br />
** Here it is.<br />
**<br />
** Note: the output is in .PPM format. <br />
** You'll need something else to convert that to .PNG. (I use GIMP.)<br />
** <br />
** Also, I might warn you: it takes a LONG time to graph a complex function<br />
** with a significantly complicated calculation procedure, as it must be<br />
** evaluated at every pixel of the graph.<br />
** <br />
** (updated 12/16/2010 -- program was not all good: <br />
**   * spurious "func" parameter in MakeGraph and "safetyarg" was missing.)<br />
** ------------------------------------------------------------------------------------------ <br />
**  <br />
** ============================================================================= */<br />
<br />
/* =============================== Code: ==================================================== */<br />
/* Complex function magnitude/phase plotter. */<br />
<br />
/* To use:<br />
*     1. Define function to graph as func(z).<br />
*     2. Load this program.<br />
*     3. Execute MakeGraph(width, height, x0, y0, x1, y1, filename) with the parameters given as follows:<br />
*        width, height = width/height of image in pixels<br />
*        x0, y0, x1, y1 = rectangle of complex plane to graph: x0 + y0i in upper-left corner to x1 + y1i in lower-right corner<br />
*        filename = name of file to save as.<br />
* Output is in .PPM format.<br />
*/</code></div></div><br />
<br />
And here's beta.gp<br />
<br />

<br />
<img src="https://tetrationforum.org/images/attachtypes/" title="" border="0" alt=".gp" />
&nbsp;&nbsp;<a href="attachment.php?aid=1687" target="_blank" title="">beta.gp</a> (Size: 23.12 KB / Downloads: 691)
<br />
<br />
<br />
And for further updates; if I feel the need to add anything I will probably just change github, rather than editing this post.<br />
<br />
<a href="https://github.com/JmsNxn92/The-Beta-Method-Thesis/" target="_blank" rel="noopener" class="mycode_url">https://github.com/JmsNxn92/The-Beta-Method-Thesis/</a><br />
<br />
<br />
<br />
This post goes hand in hand with the beta method thesis; introduced in <a href="https://math.eretrandre.org/tetrationforum/showthread.php?tid=1375" target="_blank" rel="noopener" class="mycode_url">this forum post</a>.<br />
<br />
And here's a pretty picture I generated with this program, of what a tetration looks like for \(b=e^{-0.3-i} \approx 0.4002657... - i0.6233770...\) with a period of \(2 \pi i\); graphed over the region \(0 \le \Im(s),\Re(s) \le 2 \pi \). It isn't normalized but you can visually see how to shift the function into tetration--that lone zero in the bottom left corner needs to be positioned at \(\text{Sexp}(-1) = 0\).<br />
<br />

<br />
<img src="https://tetrationforum.org/images/attachtypes/image.gif" title="PNG Image" border="0" alt=".png" />
&nbsp;&nbsp;<a href="attachment.php?aid=1688" target="_blank" title="">INV_ABEL_NEGATIVE_POINT_3_MINUS_I_MULT_1.png</a> (Size: 109.62 KB / Downloads: 726)
<br />
<br />
<br />
Regards, James]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[Does anyone know any efficient Julia set graphing programs for exponentiation?]]></title>
			<link>https://tetrationforum.org/showthread.php?tid=1371</link>
			<pubDate>Fri, 03 Dec 2021 04:47:32 +0000</pubDate>
			<dc:creator><![CDATA[<a href="https://tetrationforum.org/member.php?action=profile&uid=163">JmsNxn</a>]]></dc:creator>
			<guid isPermaLink="false">https://tetrationforum.org/showthread.php?tid=1371</guid>
			<description><![CDATA[I think the title speaks for itself. I've been using rudimentary visualizations to understand the Julia set of various exponentials; and I'd like to have access to some sort of pari-gp protocols.<br />
<br />
I'm just hoping someone has any idea. I might ask this on stackoverflow, if no one knows any off hand.<br />
<br />
Regards, James]]></description>
			<content:encoded><![CDATA[I think the title speaks for itself. I've been using rudimentary visualizations to understand the Julia set of various exponentials; and I'd like to have access to some sort of pari-gp protocols.<br />
<br />
I'm just hoping someone has any idea. I might ask this on stackoverflow, if no one knows any off hand.<br />
<br />
Regards, James]]></content:encoded>
		</item>
	</channel>
</rss>