My new ABEL_L.gp program
#14
(10/05/2021, 12:46 AM)JmsNxn Wrote: Hey, Ember

What do you think is the most efficient way to assign overflows/underflows a gray value. 

First we need to define what overflows and underflows are. It's simple. 
Too far from 0 is an overflow, too close to 0 is a underflow. Whether real or complex or quaternion or p-adic floating-point numbers are defined in this way, it is right.

Second, why we need to separate Overflow and Underflow. It's simple too. 
You can see the typical characteristics of tetration in your tetration picture: the black and white striped "petals". If we have separated Overflow and Underflow, then we can still capture the bounds of the moment when both transitions occur. 
If we are not prepared for this, we can only know the Pari-GP strike from the sexp function.

Third, how do we separate Overflow and Underflow. A simple way to handle this is:
After tetration enters the iterative process, each iteration makes a determination of whether it is converging to 0. (It is not difficult to determine whether it is far from 0 or approaching 0, even if you are using a series rather than an iteration)
If ture, underflow_test = 1. Then trap(e_OVERFLOW, if(underflow_test == 1, error(z" is too close to 0!"), sexp(z)), sexp(z))

Finally, we can also do some processing to reduce underflow. like:

Code:
Chop(z, {delta="Automatic"})={local(dd);

if(delta=="Automatic", trap(,1E-80807124,dd=abs(log(4E-347063955532709820*(1+I))));if(dd>7E17,dd=4E-347063955532709820), dd=delta);
/* x86-32/x86-64 test */

if((real(z)!=0)&&(imag(z)<=dd),return(real(z)));
if((imag(z)!=0)&&(real(z)<=dd),return(imag(z)*I));
return(0)
}

Then create a new function NSexp(), perform a chop() for every important calculation

If the calculation only leaves logs to be processed, it might still be possible to use log Identity to avoid logs hitting the Pari-GP limit, but I'm too lazy to think of a concrete solution

I tried it, it didn't work, it's likely that the identity I'm using is the route Pari-GP uses to calculate the complex log, so don't waste time.

Code:
SafeArg(z) ={trap(,
 if (imag(z)!=0, return(2*arctan(imag(z)/(sqrt(real(z)^2+imag(z)^2)+x))));
 if (real(z)>0, return(Pi));
 return(0),
arg(z));
}

SafeLog(z) ={trap(,
 I*SafeArg(z)+log(real(z)^2+imag(z)^2),
log(z));
}
(Tested, no improvement)
Reply


Messages In This Thread
My new ABEL_L.gp program - by JmsNxn - 05/21/2021, 03:44 AM
RE: My new ABEL_L.gp program - by tommy1729 - 05/22/2021, 12:11 PM
RE: My new ABEL_L.gp program - by JmsNxn - 05/22/2021, 11:19 PM
RE: My new ABEL_L.gp program - by JmsNxn - 05/31/2021, 07:34 AM
RE: My new ABEL_L.gp program - by JmsNxn - 06/03/2021, 05:47 AM
RE: My new ABEL_L.gp program - by JmsNxn - 06/07/2021, 03:34 AM
RE: My new ABEL_L.gp program - by JmsNxn - 06/09/2021, 01:23 AM
RE: My new ABEL_L.gp program - by Ember Edison - 06/17/2021, 04:29 AM
RE: My new ABEL_L.gp program - by JmsNxn - 06/17/2021, 06:54 PM
RE: My new ABEL_L.gp program - by JmsNxn - 07/14/2021, 12:42 AM
RE: My new ABEL_L.gp program - by Ember Edison - 09/29/2021, 07:40 PM
RE: My new ABEL_L.gp program - by JmsNxn - 09/30/2021, 03:08 AM
RE: My new ABEL_L.gp program - by JmsNxn - 10/05/2021, 12:46 AM
RE: My new ABEL_L.gp program - by Ember Edison - 10/06/2021, 07:18 PM

Possibly Related Threads…
Thread Author Replies Views Last Post
Wink new fatou.gp program sheldonison 34 101,499 04/10/2026, 02:09 PM
Last Post: Pentalogue
  The beta method program JmsNxn 0 4,154 02/25/2022, 03:05 AM
Last Post: JmsNxn
  Natural complex tetration program + video MorgothV8 1 8,922 04/27/2018, 07:54 PM
Last Post: MorgothV8
  Mathematica program for tetration based on the series with q-binomial coefficients Vladimir Reshetnikov 0 7,430 01/13/2017, 10:51 PM
Last Post: Vladimir Reshetnikov
  complex base tetration program sheldonison 23 111,970 10/26/2016, 10:02 AM
Last Post: Gottfried
  C++ program for generatin complex map in EPS format MorgothV8 0 7,518 09/17/2014, 04:14 PM
Last Post: MorgothV8



Users browsing this thread: 1 Guest(s)