Mercurial > octave
comparison scripts/specfun/primes.m @ 25232:8a92b651838b
primes.m: Improve input validation (bug #53472).
* primes.m: Accept only a numeric scalar for input N.
Add BIST test.
author | Rik <rik@octave.org> |
---|---|
date | Thu, 12 Apr 2018 13:19:25 -0700 |
parents | 6652d3823428 |
children | 00f796120a6d |
comparison
equal
deleted
inserted
replaced
25230:b68abed2db20 | 25232:8a92b651838b |
---|---|
46 | 46 |
47 if (nargin != 1) | 47 if (nargin != 1) |
48 print_usage (); | 48 print_usage (); |
49 endif | 49 endif |
50 | 50 |
51 if (! isscalar (n)) | 51 if (! (isnumeric (n) && isscalar (n))) |
52 error ("primes: N must be a scalar"); | 52 error ("primes: N must be a numeric scalar"); |
53 endif | 53 endif |
54 | 54 |
55 if (n > 100e3) | 55 if (n > 100e3) |
56 ## Optimization: 1/6 less memory, and much faster (asymptotically) | 56 ## Optimization: 1/6 less memory, and much faster (asymptotically) |
57 ## 100K happens to be the cross-over point for Paul's machine; | 57 ## 100K happens to be the cross-over point for Paul's machine; |
105 %!assert (class (primes (single (10))), "single") | 105 %!assert (class (primes (single (10))), "single") |
106 %!assert (class (primes (uint8 (10))), "uint8") | 106 %!assert (class (primes (uint8 (10))), "uint8") |
107 | 107 |
108 %!error primes () | 108 %!error primes () |
109 %!error primes (1, 2) | 109 %!error primes (1, 2) |
110 %!error <N must be a scalar> primes (ones (2,2)) | 110 %!error <N must be a numeric scalar> primes ("1") |
111 %!error <N must be a numeric scalar> primes (ones (2,2)) |