mit-scheme.git
5 years agoChange all string operations that accept chars to work for any char.
Chris Hanson [Sun, 9 Dec 2018 05:02:07 +0000 (21:02 -0800)]
Change all string operations that accept chars to work for any char.

They dump the bucky bits as needed to make this work.

5 years agoImplement char->bitless-char.
Chris Hanson [Sun, 9 Dec 2018 02:26:45 +0000 (18:26 -0800)]
Implement char->bitless-char.

5 years agox11/Makefile.am: Fix packaging, TAGS.
Matt Birkholz [Sat, 8 Dec 2018 19:57:24 +0000 (12:57 -0700)]
x11/Makefile.am: Fix packaging, TAGS.

(Re)define c_sources so they appear in TAGS.  Include compile.scm in
EXTRA_DIST.  Punt empty un/install hooks and unnecessary overrides.

5 years agoruntime/rfc2822-headers: Watch out for eof-object.
Matt Birkholz [Sat, 8 Dec 2018 20:07:32 +0000 (13:07 -0700)]
runtime/rfc2822-headers: Watch out for eof-object.

And leave parse-error calls in tail position, so as not to frustrate a
debugger expecting to return the correct answer.

5 years agoffi/build: Mixing strings and pathnames is problematic.
Matt Birkholz [Sat, 8 Dec 2018 19:21:06 +0000 (12:21 -0700)]
ffi/build: Mixing strings and pathnames is problematic.

In this case rewrite-compressed-file expected a string.  It probably
should expect a pathname, but it is just going to get weird with it.

5 years agoUpdate test-syntax-rename to work with syntax changes.
Chris Hanson [Sat, 8 Dec 2018 08:23:06 +0000 (00:23 -0800)]
Update test-syntax-rename to work with syntax changes.

5 years agoAdd param:trace-syntax? to help debugging syntax expansion.
Chris Hanson [Sat, 8 Dec 2018 08:19:31 +0000 (00:19 -0800)]
Add param:trace-syntax? to help debugging syntax expansion.

5 years agoAdd print method to quoted-identifier.
Chris Hanson [Sat, 8 Dec 2018 06:24:59 +0000 (22:24 -0800)]
Add print method to quoted-identifier.

5 years agoFix: allow compiler to be compiled with current release.
Chris Hanson [Thu, 6 Dec 2018 15:04:35 +0000 (07:04 -0800)]
Fix: allow compiler to be compiled with current release.

5 years agoTweak all the syntax tests now that they are fixed.
Chris Hanson [Thu, 6 Dec 2018 07:48:31 +0000 (23:48 -0800)]
Tweak all the syntax tests now that they are fixed.

5 years agoAdd assertion that does pattern matching; useful for syntax testing.
Chris Hanson [Thu, 6 Dec 2018 07:47:01 +0000 (23:47 -0800)]
Add assertion that does pattern matching; useful for syntax testing.

5 years agoEliminate now-unnecessary exports.
Chris Hanson [Thu, 6 Dec 2018 07:46:45 +0000 (23:46 -0800)]
Eliminate now-unnecessary exports.

5 years agoRewrite environment implementation to clear up ambiguities.
Chris Hanson [Thu, 6 Dec 2018 07:46:03 +0000 (23:46 -0800)]
Rewrite environment implementation to clear up ambiguities.

See the extensive note at the beginning for details.

5 years agoImplement spar-funcall to call a procedure and ignore its value.
Chris Hanson [Thu, 6 Dec 2018 07:43:41 +0000 (23:43 -0800)]
Implement spar-funcall to call a procedure and ignore its value.

5 years agoEliminate unnecessary use of strip-syntactic-closures.
Chris Hanson [Thu, 6 Dec 2018 07:43:05 +0000 (23:43 -0800)]
Eliminate unnecessary use of strip-syntactic-closures.

5 years agoFix some minor bugs in syntax renaming.
Chris Hanson [Thu, 6 Dec 2018 07:42:49 +0000 (23:42 -0800)]
Fix some minor bugs in syntax renaming.

5 years agoIn er-macro-transformer, guarantee that two renames of a symbol are eq?.
Chris Hanson [Thu, 6 Dec 2018 07:41:37 +0000 (23:41 -0800)]
In er-macro-transformer, guarantee that two renames of a symbol are eq?.

5 years agoSyntax renaming now handles declarations correctly.
Chris Hanson [Thu, 6 Dec 2018 07:40:36 +0000 (23:40 -0800)]
Syntax renaming now handles declarations correctly.

5 years agoEliminate inaccurate comment.
Chris Hanson [Tue, 4 Dec 2018 04:47:55 +0000 (20:47 -0800)]
Eliminate inaccurate comment.

5 years agosyntax-rules: eliminate use of rename for creating new identifiers.
Chris Hanson [Fri, 30 Nov 2018 06:45:50 +0000 (22:45 -0800)]
syntax-rules: eliminate use of rename for creating new identifiers.

This confusion is one of several that has resulted from long-term muddy thinking
on my part, and is a contributor to the bug that was filed.

Also, clean up the code a bit in preparation for further changes required by
R7RS.

5 years agoUse the parser state, not the value produced, to determine success.
Taylor R Campbell [Fri, 7 Dec 2018 17:11:07 +0000 (17:11 +0000)]
Use the parser state, not the value produced, to determine success.

5 years agoMore polar screw cases.
Taylor R Campbell [Fri, 7 Dec 2018 17:10:38 +0000 (17:10 +0000)]
More polar screw cases.

5 years agoPass the _type_ of complex component through the parser.
Taylor R Campbell [Fri, 7 Dec 2018 17:03:02 +0000 (17:03 +0000)]
Pass the _type_ of complex component through the parser.

Restores polar notation.

5 years agoOops, this broke polar notation.
Taylor R Campbell [Fri, 7 Dec 2018 16:57:01 +0000 (16:57 +0000)]
Oops, this broke polar notation.

5 years agoReject multiple zero real components by parse states.
Taylor R Campbell [Fri, 7 Dec 2018 16:51:48 +0000 (16:51 +0000)]
Reject multiple zero real components by parse states.

Rejecting on a zero real part of parsing an imaginary suffix was cute
but leads to wacky quirks in accepted notation.

5 years agoAdd some more screw cases.
Taylor R Campbell [Fri, 7 Dec 2018 16:42:30 +0000 (16:42 +0000)]
Add some more screw cases.

5 years agoReject inf and NaN with #e notation.
Taylor R Campbell [Fri, 7 Dec 2018 16:00:07 +0000 (16:00 +0000)]
Reject inf and NaN with #e notation.

There is no exact infinity or exact NaN.

5 years agoProvide notation for NaN payload and signalling NaN.
Taylor R Campbell [Fri, 7 Dec 2018 15:51:28 +0000 (15:51 +0000)]
Provide notation for NaN payload and signalling NaN.

Reader has various edge cases we fail to make errors still.

5 years agostring->number returns false on error.
Taylor R Campbell [Fri, 7 Dec 2018 15:45:43 +0000 (15:45 +0000)]
string->number returns false on error.

5 years agoMake this unreachable case an error.
Taylor R Campbell [Fri, 7 Dec 2018 04:48:47 +0000 (04:48 +0000)]
Make this unreachable case an error.

5 years agoFix printing NaN sign.
Taylor R Campbell [Fri, 7 Dec 2018 04:48:34 +0000 (04:48 +0000)]
Fix printing NaN sign.

5 years agoMore tests for signed NaN notation.
Taylor R Campbell [Fri, 7 Dec 2018 04:45:33 +0000 (04:45 +0000)]
More tests for signed NaN notation.

Only the positive quiet NaN with payload 0 is read/write invariant so
far.

5 years agoFix sign of NaN in reader.
Taylor R Campbell [Fri, 7 Dec 2018 04:42:29 +0000 (04:42 +0000)]
Fix sign of NaN in reader.

5 years agoExpand test-numpar.scm a little with some bugs.
Taylor R Campbell [Fri, 7 Dec 2018 04:38:20 +0000 (04:38 +0000)]
Expand test-numpar.scm a little with some bugs.

5 years agoMake flo:nan.0 reliably return a `positive' quiet NaN with payload 0.
Taylor R Campbell [Fri, 7 Dec 2018 04:16:41 +0000 (04:16 +0000)]
Make flo:nan.0 reliably return a `positive' quiet NaN with payload 0.

5 years agoFix bug in flo:make-nan error reporting.
Taylor R Campbell [Fri, 7 Dec 2018 04:12:03 +0000 (04:12 +0000)]
Fix bug in flo:make-nan error reporting.

error_bad_range_arg takes argument number, not argument value.

5 years agoflo:make-nan error reporting is busted.
Taylor R Campbell [Fri, 7 Dec 2018 04:11:01 +0000 (04:11 +0000)]
flo:make-nan error reporting is busted.

5 years agoConfirm #i works with inf and nan.
Taylor R Campbell [Fri, 7 Dec 2018 03:55:05 +0000 (03:55 +0000)]
Confirm #i works with inf and nan.

5 years agoThere is no exact infinity or NaN, so #e should reject them.
Taylor R Campbell [Fri, 7 Dec 2018 03:54:00 +0000 (03:54 +0000)]
There is no exact infinity or NaN, so #e should reject them.

But we produce them anyway.

5 years agox86 push can take a memory reference operand.
Taylor R Campbell [Wed, 5 Dec 2018 05:56:55 +0000 (05:56 +0000)]
x86 push can take a memory reference operand.

Conveniently, it evaluates rsp before modifying it too.

Shaves about 1% off the runtime.

5 years agoPrint newline in debugging-printer primitive.
Taylor R Campbell [Wed, 5 Dec 2018 05:58:07 +0000 (05:58 +0000)]
Print newline in debugging-printer primitive.

5 years agoDisable allocator open coders.
Taylor R Campbell [Tue, 4 Dec 2018 06:15:17 +0000 (06:15 +0000)]
Disable allocator open coders.

These don't actually do anything useful.  What they do is open-code a
type check -- and then branch to the same primitive call whether the
type check passed or failed.  So they serve only to expand the code.
This appears to have been an aborted experiment in the HP PA-RISC back
end from 1993.

5 years agoAdd missing type checks to some bit string operations.
Taylor R Campbell [Mon, 3 Dec 2018 09:19:01 +0000 (09:19 +0000)]
Add missing type checks to some bit string operations.

5 years agoBit string primitives are missing type checks.
Taylor R Campbell [Mon, 3 Dec 2018 09:18:13 +0000 (09:18 +0000)]
Bit string primitives are missing type checks.

5 years agoTeach pp to respect custom print methods for tagged vectors.
Taylor R Campbell [Sun, 2 Dec 2018 03:32:42 +0000 (03:32 +0000)]
Teach pp to respect custom print methods for tagged vectors.

5 years agopp doesn't respect custom print methods for tagged vectors.
Taylor R Campbell [Sun, 2 Dec 2018 03:29:16 +0000 (03:29 +0000)]
pp doesn't respect custom print methods for tagged vectors.

5 years agoRework vector tag printer methods so they work again.
Taylor R Campbell [Sun, 2 Dec 2018 02:45:35 +0000 (02:45 +0000)]
Rework vector tag printer methods so they work again.

XXX Needs tests, but these are a pain to construct...

5 years agopp _is_ busted after all but it takes a hairier example.
Taylor R Campbell [Sun, 2 Dec 2018 02:08:58 +0000 (02:08 +0000)]
pp _is_ busted after all but it takes a hairier example.

5 years agopp is not busted; I just didn't know about pp-avoid-circularity.
Taylor R Campbell [Sun, 2 Dec 2018 02:00:17 +0000 (02:00 +0000)]
pp is not busted; I just didn't know about pp-avoid-circularity.

TIL.

5 years agoMake pp's job easier in this test. (Still busted.)
Taylor R Campbell [Sun, 2 Dec 2018 01:56:52 +0000 (01:56 +0000)]
Make pp's job easier in this test.  (Still busted.)

5 years agoFix find-shared-objects. pp is still busted.
Taylor R Campbell [Sun, 2 Dec 2018 01:55:45 +0000 (01:55 +0000)]
Fix find-shared-objects.  pp is still busted.

5 years agofind-shared-objects is busted for multiple references.
Taylor R Campbell [Sun, 2 Dec 2018 01:53:02 +0000 (01:53 +0000)]
find-shared-objects is busted for multiple references.

5 years agopp is busted on circular data structures.
Taylor R Campbell [Sun, 2 Dec 2018 01:35:04 +0000 (01:35 +0000)]
pp is busted on circular data structures.

5 years agoAllow the full form of FLUID-LET with ACCESS.
Taylor R Campbell [Sun, 2 Dec 2018 01:34:41 +0000 (01:34 +0000)]
Allow the full form of FLUID-LET with ACCESS.

5 years agoFLUID-LET of ACCESS broke.
Taylor R Campbell [Sun, 2 Dec 2018 01:33:44 +0000 (01:33 +0000)]
FLUID-LET of ACCESS broke.

(Yes, I know it's legacy, but I need it for another test at the
moment.)

5 years agoTickled a bug in connectivity analysis with arity error.
Taylor R Campbell [Sun, 2 Dec 2018 01:00:20 +0000 (01:00 +0000)]
Tickled a bug in connectivity analysis with arity error.

5 years agoCompiler chokes on a variable named |#[continuation]|.
Taylor R Campbell [Sun, 2 Dec 2018 00:14:53 +0000 (00:14 +0000)]
Compiler chokes on a variable named |#[continuation]|.

5 years agoOpen-code some flonum predicates on amd64.
Taylor R Campbell [Sat, 1 Dec 2018 23:04:19 +0000 (23:04 +0000)]
Open-code some flonum predicates on amd64.

- flonum-is-equal?
- flonum-is-finite?
- flonum-is-infinite?
- flonum-is-nan?
- flonum-is-normal?
- flonum-is-zero?

5 years agoTeach sf about flo:safe-zero? and flo:safe=.
Taylor R Campbell [Sat, 1 Dec 2018 22:50:22 +0000 (22:50 +0000)]
Teach sf about flo:safe-zero? and flo:safe=.

5 years agoSpeed this up a little at the expense of coverage.
Taylor R Campbell [Sat, 1 Dec 2018 22:50:07 +0000 (22:50 +0000)]
Speed this up a little at the expense of coverage.

5 years agoAdd some more spot checks. Zero is not exact here, for sign.
Taylor R Campbell [Sat, 1 Dec 2018 22:49:17 +0000 (22:49 +0000)]
Add some more spot checks.  Zero is not exact here, for sign.

5 years agoTest some more edge cases and exception flags.
Taylor R Campbell [Sat, 1 Dec 2018 22:44:17 +0000 (22:44 +0000)]
Test some more edge cases and exception flags.

5 years agoTeach Scheme about the floating-point subnormal-operand exception.
Taylor R Campbell [Sat, 1 Dec 2018 22:41:56 +0000 (22:41 +0000)]
Teach Scheme about the floating-point subnormal-operand exception.

5 years agoMake flo:clear-exceptions! register interest in fp env.
Taylor R Campbell [Sat, 1 Dec 2018 22:39:12 +0000 (22:39 +0000)]
Make flo:clear-exceptions! register interest in fp env.

Not sure why I made it conditional before.  Makes sense for
flo:raise-exceptions! for functions whose callers might or might not
want them, but usually you do flo:clear-exceptions! only if you are
actually going to use them afterward.

5 years agoEarlier change to flo:clear-exceptions! is busted.
Taylor R Campbell [Sat, 1 Dec 2018 22:34:55 +0000 (22:34 +0000)]
Earlier change to flo:clear-exceptions! is busted.

In particular, the pattern

(flo:preserving-environment
 (lambda ()
   (flo:clear-exceptions! (flo:supported-exceptions))
   ...))

ought to give you an environment where the exceptions are cleared,
but it doesn't.

5 years agoTeach the compiler about more boolean and function primitives.
Taylor R Campbell [Sat, 1 Dec 2018 15:32:48 +0000 (15:32 +0000)]
Teach the compiler about more boolean and function primitives.

5 years agoRecursively integrate after substitution.
Taylor R Campbell [Sat, 1 Dec 2018 15:16:49 +0000 (15:16 +0000)]
Recursively integrate after substitution.

The declarations in this context may have changed.  This way, you can
get a lot of straight-line floating-point arithmetic like so:

(define (flo:sinh-taylor19 x)
  (declare (no-type-checks))
  (let* ((x^2 (flo:* x x))
         (t8 (flo:/ 1. 121645100408832000.))
         (t7 (flo:+ (flo:/ 1. 355687428096000.) (flo:* x^2 t8)))
         (t6 (flo:+ (flo:/ 1. 1307674368000.) (flo:* x^2 t7)))
         (t5 (flo:+ (flo:/ 1. 6227020800.) (flo:* x^2 t6)))
         (t4 (flo:+ (flo:/ 1. 39916800.) (flo:* x^2 t5)))
         (t3 (flo:+ (flo:/ 1. 362880.) (flo:* x^2 t4)))
         (t2 (flo:+ (flo:/ 1. 5040.) (flo:* x^2 t3)))
         (t1 (flo:+ (flo:/ 1. 120.) (flo:* x^2 t2)))
         (t0 (flo:+ (flo:/ 1. 6.) (flo:* x^2 t1))))
    (declare (integrate t0 t1 t2 t3 t4 t5 t6 t7 t8 x^2))
    (flo:* x (flo:+ 1. (flo:* x^2 t0)))))

Previously, the number of variables in this sequence that would be
integrated depended on the number of surrounding integrated calls in
the body of the let (!).

5 years agoRestore parallel compilation of compiler.
Taylor R Campbell [Sat, 1 Dec 2018 14:53:19 +0000 (14:53 +0000)]
Restore parallel compilation of compiler.

5 years agoFix thinko.
Taylor R Campbell [Sat, 1 Dec 2018 14:34:07 +0000 (14:34 +0000)]
Fix thinko.

5 years agoUse real:abs, real:copysign.
Taylor R Campbell [Sat, 1 Dec 2018 02:09:21 +0000 (02:09 +0000)]
Use real:abs, real:copysign.

These aren't guaranteed to be flonums here.

Mixed-exactness complex numbers are pretty silly.

5 years agoSqrt is busted on sone mixed-infinite/exact cases.
Taylor R Campbell [Sat, 1 Dec 2018 02:07:03 +0000 (02:07 +0000)]
Sqrt is busted on sone mixed-infinite/exact cases.

5 years agoMake ieee754-binary-hex-string follow IEEE 754-2008.
Taylor R Campbell [Sat, 1 Dec 2018 02:05:40 +0000 (02:05 +0000)]
Make ieee754-binary-hex-string follow IEEE 754-2008.

5 years agoNew procedure (flo:logb x) gives the integer exponent of x.
Taylor R Campbell [Fri, 30 Nov 2018 18:31:20 +0000 (18:31 +0000)]
New procedure (flo:logb x) gives the integer exponent of x.

5 years agoImplement and fix fenceposts in inf and NaN encoding.
Taylor R Campbell [Fri, 30 Nov 2018 18:06:44 +0000 (18:06 +0000)]
Implement and fix fenceposts in inf and NaN encoding.

5 years agoUse ieee754-binary-parameters to reduce magic constants.
Taylor R Campbell [Fri, 30 Nov 2018 17:42:26 +0000 (17:42 +0000)]
Use ieee754-binary-parameters to reduce magic constants.

5 years agoFix broken hexadecimal floating-point printing.
Taylor R Campbell [Fri, 30 Nov 2018 17:42:04 +0000 (17:42 +0000)]
Fix broken hexadecimal floating-point printing.

5 years agoWhat was I thinking. This is all wrong if the top bit is not 1.
Taylor R Campbell [Fri, 30 Nov 2018 16:24:12 +0000 (16:24 +0000)]
What was I thinking.  This is all wrong if the top bit is not 1.

5 years agoNote copysign procedure.
Taylor R Campbell [Fri, 30 Nov 2018 08:50:19 +0000 (08:50 +0000)]
Note copysign procedure.

5 years agoRemove bogus note about flo:compare and flo:safe-compare.
Taylor R Campbell [Fri, 30 Nov 2018 08:47:59 +0000 (08:47 +0000)]
Remove bogus note about flo:compare and flo:safe-compare.

Never actually committed these; decided a four-way comparison wasn't
worth it without a motivating application.  Won't work for anything
that expects a three-way -1/0/+1 compare.

5 years agoOpen-code flo:copysign on amd64.
Taylor R Campbell [Fri, 30 Nov 2018 00:43:36 +0000 (00:43 +0000)]
Open-code flo:copysign on amd64.

5 years agoAdd a copysign test case that bit me in a state I can't reproduce.
Taylor R Campbell [Fri, 30 Nov 2018 08:22:27 +0000 (08:22 +0000)]
Add a copysign test case that bit me in a state I can't reproduce.

5 years agoDon't futz with floenv if not in use.
Taylor R Campbell [Fri, 30 Nov 2018 07:59:04 +0000 (07:59 +0000)]
Don't futz with floenv if not in use.

Makes flo:raise-exceptions! kosher to use anywhere without incurring
cost in threads that don't care.

5 years agoClear exceptions so residual crud doesn't trap.
Taylor R Campbell [Fri, 30 Nov 2018 07:46:42 +0000 (07:46 +0000)]
Clear exceptions so residual crud doesn't trap.

5 years agoTidy up some negative tests. No functional change intended.
Taylor R Campbell [Fri, 30 Nov 2018 07:26:07 +0000 (07:26 +0000)]
Tidy up some negative tests.  No functional change intended.

5 years agoRename flo:safe-negative? -> flo:sign-negative?.
Taylor R Campbell [Fri, 30 Nov 2018 07:19:49 +0000 (07:19 +0000)]
Rename flo:safe-negative? -> flo:sign-negative?.

It was confusing that (flo:safe< x 0.) was not the same as
(flo:safe-negative? x) -- they disagree on -0 and NaN values with
negative sign bits.

5 years agoFix some things that I was mistakenly testing with an old compiler.
Taylor R Campbell [Fri, 30 Nov 2018 07:11:27 +0000 (07:11 +0000)]
Fix some things that I was mistakenly testing with an old compiler.

sqrt should not trap on qNaN, which requires some care with
comparisons.  Further, since sqrt(-0) is supposed to be -0, we can't
just use flo:safe-negative? (which returns true for -0.); we must
instead use (flo:safe< x 0.) (which returns false for -0.).

5 years agoDefine and expose flo:precision.
Taylor R Campbell [Fri, 30 Nov 2018 06:48:05 +0000 (06:48 +0000)]
Define and expose flo:precision.

This is the same as flo:significand-digits-base-2, but its name
doesn't imply base 2 -- it refers to whatever the floating-point
radix is.  Not that we're likely to do decimal floating-point ever,
but maybe you might want to write code that could be used in another
environment that does.

5 years agoSimplify and test some more exception cases.
Taylor R Campbell [Fri, 30 Nov 2018 06:45:46 +0000 (06:45 +0000)]
Simplify and test some more exception cases.

5 years agoTest NaN preservation of sqrt.
Taylor R Campbell [Fri, 30 Nov 2018 06:37:51 +0000 (06:37 +0000)]
Test NaN preservation of sqrt.

5 years agoHandle more sqrt edge cases.
Taylor R Campbell [Fri, 30 Nov 2018 06:29:58 +0000 (06:29 +0000)]
Handle more sqrt edge cases.

5 years agoEnable traps here to confirm they don't happen.
Taylor R Campbell [Fri, 30 Nov 2018 05:51:26 +0000 (05:51 +0000)]
Enable traps here to confirm they don't happen.

5 years agoRaise the appropriate exceptions in exact->exact.
Taylor R Campbell [Fri, 30 Nov 2018 05:49:03 +0000 (05:49 +0000)]
Raise the appropriate exceptions in exact->exact.

- inexact-result if result is changed by rounding
- overflow if result is infinite.

5 years agoTest exceptions in exact->inexact.
Taylor R Campbell [Fri, 30 Nov 2018 05:45:06 +0000 (05:45 +0000)]
Test exceptions in exact->inexact.

5 years agoTeach exact->inexact to return infinity rather than crash.
Taylor R Campbell [Fri, 30 Nov 2018 05:11:35 +0000 (05:11 +0000)]
Teach exact->inexact to return infinity rather than crash.

5 years agoTest exact->inexact near integer edge cases.
Taylor R Campbell [Fri, 30 Nov 2018 04:43:02 +0000 (04:43 +0000)]
Test exact->inexact near integer edge cases.

5 years agoUse exact-integer-sqrt in sqrt for exact integers and rationals.
Taylor R Campbell [Fri, 30 Nov 2018 04:39:18 +0000 (04:39 +0000)]
Use exact-integer-sqrt in sqrt for exact integers and rationals.

5 years agoDeduplicate test cases.
Taylor R Campbell [Fri, 30 Nov 2018 04:30:29 +0000 (04:30 +0000)]
Deduplicate test cases.

5 years agoFix sqrt along negative real axis with inexact zero imaginary part.
Taylor R Campbell [Fri, 30 Nov 2018 04:29:55 +0000 (04:29 +0000)]
Fix sqrt along negative real axis with inexact zero imaginary part.

5 years agoSqrt shouldn't discard an inexact zero imaginary component.
Taylor R Campbell [Fri, 30 Nov 2018 04:24:20 +0000 (04:24 +0000)]
Sqrt shouldn't discard an inexact zero imaginary component.

5 years agoTest sqrt along the negative real line with/without inexact imaginary part.
Taylor R Campbell [Fri, 30 Nov 2018 04:13:51 +0000 (04:13 +0000)]
Test sqrt along the negative real line with/without inexact imaginary part.