Post Reply 
WP 34S and 31S bugs and fixes
11-23-2014, 06:48 PM (This post was last modified: 11-23-2014 07:17 PM by Bit.)
Post: #4
RE: WP 34S and 31S bugs and fixes
Thank you, Marcus.

Another issue: The documentation says that the algorithm that PRIME? uses is believed to work up to 9e18, which is roughly 263, the limit above which the isPrime() function fails with a domain error.

However, because of integer overflows, this is what actually happens (in double precision mode and only considering the integer part of a number):
- Negative numbers are reported as not primes. But odd negative numbers whose absolute value has bit 63 set also produce a domain error. Compare -264+1 and -264-1.
- Between 0 and 263: The algorithm in isPrime() is applied, errors are not produced.
- Even numbers above 263 with bit 63 set: Reported as not primes, see e.g. 263+2.
- Odd numbers above 263 with bit 63 set: A domain error is produced and PRIME? returns true, try 263+1.
- Above 263 if bit 63 is not set: PRIME? returns the result of the input modulo 264, so for example the even number 264+2 is reported as a prime.

I've committed a patch that results in the following more consistent behavior:
- All negative numbers are reported as not primes and errors are never produced.
- The original algorithm in isPrime() is applied to numbers between 0 and 263-1 and errors are never produced.
- Numbers greater than or equal to 263 always produce an error and PRIME? returns true.
(The handling of the two infinities and NaNs didn't change: They're always reported as not primes and no error is produced.)

I think it makes sense to treat the same way all numbers for which the algorithm isn't supposed to work, i.e. produce an error rather than have a special case only for numbers divisible by 2 but not for those divisible by 3, 5 and so on. I'm not sure if PRIME? should return true or false after an error, so I left that unchanged (it returns true).

The documentation states that PRIME? uses the absolute value of numbers but the original code explicitly (it didn't look like a typo) tested the sign to exclude negative numbers. I didn't change that and I suggest we keep this behavior because it makes sense and just update the documentation. But it'd be easy to use absolute values if that's what's desired. Please comment.
Find all posts by this user
Quote this message in a reply
Post Reply 


Messages In This Thread
WP 34S and 31S bugs and fixes - Bit - 11-22-2014, 07:49 PM
RE: WP 34S and 31S bugs and fixes - Bit - 11-23-2014 06:48 PM
RE: WP 34S and 31S bugs and fixes - Bit - 11-24-2014, 02:21 AM
RE: WP 34S and 31S bugs and fixes - Bit - 11-25-2014, 05:11 AM
RE: WP 34S and 31S bugs and fixes - Bit - 11-26-2014, 05:24 AM
RE: WP 34S and 31S bugs and fixes - Bit - 11-26-2014, 01:35 PM
RE: WP 34S and 31S bugs and fixes - Bit - 11-26-2014, 01:38 PM
RE: WP 34S and 31S bugs and fixes - Bit - 11-26-2014, 07:56 PM
RE: WP 34S and 31S bugs and fixes - Bit - 11-27-2014, 02:13 AM
RE: WP 34S and 31S bugs and fixes - Bit - 01-31-2015, 01:32 AM
RE: WP 34S and 31S bugs and fixes - Bit - 11-29-2014, 08:31 PM
RE: WP 34S and 31S bugs and fixes - Bit - 12-06-2014, 03:23 AM
RE: WP 34S and 31S bugs and fixes - Bit - 12-06-2014, 03:02 PM
RE: WP 34S and 31S bugs and fixes - Bit - 12-07-2014, 09:38 PM
RE: WP 34S and 31S bugs and fixes - Bit - 12-12-2014, 03:20 PM
RE: WP 34S and 31S bugs and fixes - Bit - 12-06-2014, 08:44 PM
RE: WP 34S and 31S bugs and fixes - Bit - 12-07-2014, 10:01 PM
RE: WP 34S and 31S bugs and fixes - Bit - 12-08-2014, 03:38 PM
RE: WP 34S and 31S bugs and fixes - Bit - 12-08-2014, 05:19 PM
RE: WP 34S and 31S bugs and fixes - Bit - 12-08-2014, 05:49 PM
RE: WP 34S and 31S bugs and fixes - Bit - 12-08-2014, 06:34 PM
RE: WP 34S and 31S bugs and fixes - Bit - 12-16-2014, 02:57 AM
RE: WP 34S and 31S bugs and fixes - Bit - 12-24-2014, 01:09 PM
RE: WP 34S and 31S bugs and fixes - Bit - 12-24-2014, 02:36 PM
RE: WP 34S and 31S bugs and fixes - Bit - 12-24-2014, 04:30 PM
RE: WP 34S and 31S bugs and fixes - Bit - 12-17-2014, 12:55 AM
RE: WP 34S and 31S bugs and fixes - Bit - 12-23-2014, 04:03 AM
RE: WP 34S and 31S bugs and fixes - Bit - 12-23-2014, 01:23 PM
RE: WP 34S and 31S bugs and fixes - Bit - 12-23-2014, 04:48 AM
RE: WP 34S and 31S bugs and fixes - Bit - 12-23-2014, 01:38 PM
RE: WP 34S and 31S bugs and fixes - Bit - 01-01-2015, 10:42 PM
RE: WP 34S and 31S bugs and fixes - Bit - 12-24-2014, 01:11 PM
RE: WP 34S and 31S bugs and fixes - Bit - 12-24-2014, 04:36 PM
RE: WP 34S and 31S bugs and fixes - Bit - 01-08-2015, 03:04 AM
RE: WP 34S and 31S bugs and fixes - Bit - 01-08-2015, 04:34 AM
RE: WP 34S and 31S bugs and fixes - Bit - 01-08-2015, 05:28 AM
RE: WP 34S and 31S bugs and fixes - Bit - 01-09-2015, 12:32 AM
RE: WP 34S and 31S bugs and fixes - Bit - 01-09-2015, 12:38 AM
RE: WP 34S and 31S bugs and fixes - Bit - 01-10-2015, 06:28 PM
RE: WP 34S and 31S bugs and fixes - Bit - 01-17-2015, 04:50 PM
RE: WP 34S and 31S bugs and fixes - Bit - 01-18-2015, 03:42 AM
RE: WP 34S and 31S bugs and fixes - Bit - 01-18-2015, 05:32 PM
RE: WP 34S and 31S bugs and fixes - Bit - 01-18-2015, 06:47 PM
RE: WP 34S and 31S bugs and fixes - Bit - 01-18-2015, 08:54 PM
RE: WP 34S and 31S bugs and fixes - Bit - 01-18-2015, 09:12 PM
RE: WP 34S and 31S bugs and fixes - Bit - 01-18-2015, 09:37 PM
RE: WP 34S and 31S bugs and fixes - Bit - 01-11-2015, 05:07 AM
RE: WP 34S and 31S bugs and fixes - DMaier - 01-11-2015, 06:51 PM
RE: WP 34S and 31S bugs and fixes - Bit - 01-12-2015, 12:48 AM
RE: WP 34S and 31S bugs and fixes - Bit - 01-12-2015, 01:31 AM
RE: WP 34S and 31S bugs and fixes - Bit - 01-12-2015, 02:00 AM
RE: WP 34S and 31S bugs and fixes - Bit - 01-12-2015, 05:44 AM
RE: WP 34S and 31S bugs and fixes - Bit - 01-12-2015, 11:39 PM
RE: WP 34S and 31S bugs and fixes - Bit - 01-17-2015, 02:34 AM
RE: WP 34S and 31S bugs and fixes - Bit - 01-17-2015, 05:16 AM
RE: WP 34S and 31S bugs and fixes - Bit - 01-17-2015, 05:47 AM
RE: WP 34S and 31S bugs and fixes - Bit - 01-17-2015, 04:20 PM
RE: WP 34S and 31S bugs and fixes - Bit - 01-17-2015, 04:35 PM
RE: WP 34S and 31S bugs and fixes - Bit - 01-18-2015, 03:11 AM
RE: WP 34S and 31S bugs and fixes - Bit - 01-18-2015, 09:56 PM
RE: WP 34S and 31S bugs and fixes - Bit - 01-24-2015, 04:37 AM
RE: WP 34S and 31S bugs and fixes - Bit - 01-25-2015, 04:42 PM
RE: WP 34S and 31S bugs and fixes - Bit - 01-25-2015, 05:27 PM
RE: WP 34S and 31S bugs and fixes - Bit - 01-25-2015, 05:50 PM
RE: WP 34S and 31S bugs and fixes - Bit - 01-25-2015, 06:08 PM
RE: WP 34S and 31S bugs and fixes - Bit - 01-28-2015, 12:26 AM
RE: WP 34S and 31S bugs and fixes - Bit - 01-21-2015, 12:40 AM
RE: WP 34S and 31S bugs and fixes - Bit - 01-22-2015, 05:16 AM
RE: WP 34S and 31S bugs and fixes - Bit - 01-31-2015, 12:52 AM
RE: WP 34S and 31S bugs and fixes - Bit - 02-07-2015, 06:17 PM
RE: WP 34S and 31S bugs and fixes - Bit - 02-08-2015, 05:58 PM
RE: WP 34S and 31S bugs and fixes - Bit - 02-20-2015, 04:52 AM
RE: WP 34S and 31S bugs and fixes - Bit - 02-24-2015, 03:50 AM
RE: WP 34S and 31S bugs and fixes - Bit - 03-15-2015, 04:55 PM
RE: WP 34S and 31S bugs and fixes - Dieter - 03-15-2015, 10:41 PM
RE: WP 34S and 31S bugs and fixes - Bit - 03-15-2015, 10:50 PM
RE: WP 34S and 31S bugs and fixes - Pascal - 05-07-2015, 07:47 AM
RE: WP 34S and 31S bugs and fixes - fhub - 05-07-2015, 11:56 AM
RE: WP 34S and 31S bugs and fixes - fhub - 05-07-2015, 02:05 PM
RE: WP 34S and 31S bugs and fixes - fhub - 05-07-2015, 03:23 PM
RE: WP 34S and 31S bugs and fixes - fhub - 05-09-2015, 05:19 PM
RE: WP 34S and 31S bugs and fixes - Marcio - 06-10-2015, 07:06 AM
RE: WP 34S and 31S bugs and fixes - Marcio - 06-10-2015, 01:06 PM
RE: WP 34S and 31S bugs and fixes - 2far - 08-27-2015, 11:06 AM
RE: WP 34S and 31S bugs and fixes - 2far - 08-27-2015, 04:09 PM
RE: WP 34S and 31S bugs and fixes - 2far - 08-27-2015, 09:55 PM
RE: WP 34S and 31S bugs and fixes - fhub - 10-01-2015, 03:37 PM
RE: WP 34S and 31S bugs and fixes - d b - 10-02-2015, 03:21 AM
RE: WP 34S and 31S bugs and fixes - Pascal - 12-21-2015, 04:40 PM
RE: WP 34S and 31S bugs and fixes - Marcio - 12-21-2015, 08:41 PM
RE: WP 34S and 31S bugs and fixes - fhub - 12-22-2015, 10:39 AM
RE: WP 34S and 31S bugs and fixes - fhub - 12-22-2015, 01:20 PM
Moving off-screen window - striegel - 01-13-2016, 11:10 AM
RE: WP 34S and 31S bugs and fixes - fhub - 01-13-2016, 03:10 PM
RE: WP 34S and 31S bugs and fixes - Leonid - 02-04-2017, 06:48 AM
RE: WP 34S and 31S bugs and fixes - Nick - 02-07-2017, 02:47 PM
RE: WP 34S and 31S bugs and fixes - Leonid - 02-08-2017, 08:10 AM
RE: WP 34S and 31S bugs and fixes - Nick - 02-08-2017, 08:41 AM
RE: WP 34S and 31S bugs and fixes - vido - 02-07-2017, 08:00 AM
RE: WP 34S and 31S bugs and fixes - vido - 02-07-2017, 07:35 PM
RE: WP 34S and 31S bugs and fixes - Dieter - 05-23-2017, 12:19 PM
RE: WP 34S and 31S bugs and fixes - Dieter - 05-23-2017, 05:05 PM



User(s) browsing this thread: 1 Guest(s)