/[cmucl]/src/code/irrat.lisp
ViewVC logotype

Log of /src/code/irrat.lisp

Parent Directory Parent Directory | Revision Log Revision Log


Links to HEAD: (view) (annotate)
Sticky Tag:

Revision 1.64 - (view) (annotate) - [select for diffs]
Mon Feb 28 17:14:45 2011 UTC (3 years, 1 month ago) by rtoy
Branch: MAIN
CVS Tags: GIT-CONVERSION, HEAD, snapshot-2011-03, snapshot-2011-04, snapshot-2011-06, snapshot-2011-07, snapshot-2011-09
Changes since 1.63: +2 -2 lines
Diff to previous 1.63 , to selected 1.49
Need to define %sqrt for x86/sse2 so the compiler can constant-fold
SQRT.

Revision 1.63 - (view) (annotate) - [select for diffs]
Tue Apr 20 17:57:44 2010 UTC (4 years ago) by rtoy
Branch: MAIN
CVS Tags: RELEASE_20b, cross-sol-x86-2010-12-20, cross-sol-x86-base, cross-sol-x86-merged, cross-sparc-branch-base, release-20b-pre1, release-20b-pre2, snapshot-2010-05, snapshot-2010-06, snapshot-2010-07, snapshot-2010-08, snapshot-2010-11, snapshot-2010-12, snapshot-2011-01, snapshot-2011-02, sparc-tramp-assem-2010-07-19, sparc-tramp-assem-base
Branch point for: RELEASE-20B-BRANCH, cross-sol-x86-branch, cross-sparc-branch, sparc-tramp-assem-branch
Changes since 1.62: +5 -5 lines
Diff to previous 1.62 , to selected 1.49
Change uses of _"foo" to (intl:gettext "foo").  This is because slime
may get confused with source locations if the reader macros are
installed.

Revision 1.62 - (view) (annotate) - [select for diffs]
Mon Apr 19 02:18:03 2010 UTC (4 years ago) by rtoy
Branch: MAIN
Changes since 1.61: +35 -35 lines
Diff to previous 1.61 , to selected 1.49
Remove _N"" reader macro from docstrings when possible.

Revision 1.61 - (view) (annotate) - [select for diffs]
Fri Mar 19 15:18:59 2010 UTC (4 years, 1 month ago) by rtoy
Branch: MAIN
CVS Tags: post-merge-intl-branch, snapshot-2010-04
Changes since 1.60: +42 -39 lines
Diff to previous 1.60 , to selected 1.49
Merge intl-branch 2010-03-18 to HEAD.  To build, you need to use
boot-2010-02-1 as the bootstrap file.  You should probably also use
the new -P option for build.sh to generate and update the po files
while building.

Revision 1.60.4.1 - (view) (annotate) - [select for diffs]
Thu Feb 25 20:34:50 2010 UTC (4 years, 1 month ago) by rtoy
Branch: intl-2-branch
Changes since 1.60: +44 -39 lines
Diff to previous 1.60 , to next main 1.64 , to selected 1.49
Restart internalization work.  This new branch starts with code from
the intl-branch on date 2010-02-12 18:00:00+0500.  This version works
and

LANG=en@piglatin bin/lisp

works (once the piglatin translation is added).

Revision 1.60.2.6 - (view) (annotate) - [select for diffs]
Thu Feb 25 01:11:57 2010 UTC (4 years, 1 month ago) by rtoy
Branch: intl-branch
CVS Tags: intl-branch-2010-03-18-1300
Changes since 1.60.2.5: +2 -2 lines
Diff to previous 1.60.2.5 , to branch point 1.60 , to next main 1.64 , to selected 1.49
Oops.  Reporter function for intexp-limit-error needs 2 args, not 1.

Revision 1.60.2.5 - (view) (annotate) - [select for diffs]
Sat Feb 13 17:10:09 2010 UTC (4 years, 2 months ago) by rtoy
Branch: intl-branch
CVS Tags: intl-branch-working-2010-02-19-1000
Changes since 1.60.2.4: +4 -6 lines
Diff to previous 1.60.2.4 , to branch point 1.60 , to selected 1.49
Oops.  The restart-case :reports only have a stream parameter.

Revision 1.60.2.4 - (view) (annotate) - [select for diffs]
Wed Feb 10 14:07:36 2010 UTC (4 years, 2 months ago) by rtoy
Branch: intl-branch
CVS Tags: intl-branch-working-2010-02-11-1000
Changes since 1.60.2.3: +7 -3 lines
Diff to previous 1.60.2.3 , to branch point 1.60 , to selected 1.49
Mark translatable strings; update cmucl.pot and ko/cmucl.po
accordingly.

Revision 1.60.2.3 - (view) (annotate) - [select for diffs]
Wed Feb 10 01:28:48 2010 UTC (4 years, 2 months ago) by rtoy
Branch: intl-branch
Changes since 1.60.2.2: +3 -3 lines
Diff to previous 1.60.2.2 , to branch point 1.60 , to selected 1.49
Oops.  :report needs a string.  Will fix this up later.

Revision 1.60.2.2 - (view) (annotate) - [select for diffs]
Tue Feb 9 20:23:02 2010 UTC (4 years, 2 months ago) by rtoy
Branch: intl-branch
Changes since 1.60.2.1: +39 -39 lines
Diff to previous 1.60.2.1 , to branch point 1.60 , to selected 1.49
Mark translatable strings; update cmucl.pot and ko/cmucl.po
accordingly.

Revision 1.60.2.1 - (view) (annotate) - [select for diffs]
Mon Feb 8 17:15:47 2010 UTC (4 years, 2 months ago) by rtoy
Branch: intl-branch
Changes since 1.60: +2 -1 lines
Diff to previous 1.60 , to selected 1.49
Add (intl:textdomain "cmucl") to the files to set the textdomain.

Revision 1.60 - (view) (annotate) - [select for diffs]
Fri Dec 11 00:28:36 2009 UTC (4 years, 4 months ago) by rtoy
Branch: MAIN
CVS Tags: intl-2-branch-base, intl-branch-base, pre-merge-intl-branch, snapshot-2010-01, snapshot-2010-02, snapshot-2010-03
Branch point for: intl-2-branch, intl-branch
Changes since 1.59: +2 -2 lines
Diff to previous 1.59 , to selected 1.49
Oops.  When we continue from the intexp-limit-error condition and set
a new limit, we want to take the absolute value of the power!

Revision 1.55.6.3 - (view) (annotate) - [select for diffs]
Wed Mar 25 21:51:34 2009 UTC (5 years ago) by rtoy
Branch: unicode-utf16-extfmt-branch
CVS Tags: unicode-snapshot-2009-05, unicode-snapshot-2009-06, unicode-utf16-extfmt-2009-03-27, unicode-utf16-extfmt-2009-06-11
Changes since 1.55.6.2: +1 -2 lines
Diff to previous 1.55.6.2 , to branch point 1.55 , to next main 1.64 , to selected 1.49
Merge from unicode-utf16 branch, label
unicode-utf16-char-support-2009-03-25 to get character support.

Revision 1.55.4.3 - (view) (annotate) - [select for diffs]
Wed Mar 25 15:49:51 2009 UTC (5 years ago) by rtoy
Branch: unicode-utf16-branch
CVS Tags: unicode-utf16-char-support-2009-03-25, unicode-utf16-char-support-2009-03-26
Changes since 1.55.4.2: +1 -2 lines
Diff to previous 1.55.4.2 , to branch point 1.55 , to next main 1.64 , to selected 1.49
Merge from HEAD, tag label-2009-03-25.

Still left Config.FreeBSD_gencgc (obsolete), Config.x86_freebsd,
FreeBSD-os.c and FreeBSD-os.h for Alex to merge.

Revision 1.59 - (view) (annotate) - [select for diffs]
Wed Mar 18 01:24:52 2009 UTC (5 years, 1 month ago) by rtoy
Branch: MAIN
CVS Tags: RELEASE_20a, amd64-dd-start, label-2009-03-25, merged-unicode-utf16-extfmt-2009-06-11, portable-clx-base, portable-clx-import-2009-06-16, release-20a-base, release-20a-pre1, snapshot-2009-04, snapshot-2009-05, snapshot-2009-07, snapshot-2009-08, snapshot-2009-11, snapshot-2009-12, unicode-string-buffer-base, unicode-string-buffer-impl-base
Branch point for: RELEASE-20A-BRANCH, amd64-dd-branch, portable-clx-branch, unicode-string-buffer-branch, unicode-string-buffer-impl-branch
Changes since 1.58: +1 -2 lines
Diff to previous 1.58 , to selected 1.49
code/irrat-dd.lisp:
o Declare POLY-EVAL and POLY-EVAL-1 as maybe-inline functions so they
  can be semi-inlined.

code/irrat.lisp:
o I don't think there's any real reason to make the local function
  REAL-EXPT inline.  It's very big and local function call is already
  good enough.

compiler/float-tran.lisp:
o Change some functions to be maybe-inline instead of inline to save
  on space for the the larger double-double functions:  SUB-DD,
  SUB-D-DD, SUB-DD-D, SPLIT.  Semi-inline should be good enough for
  these large functions, saving on cache memory, local function
  calling sequence should be good enough.

Revision 1.55.6.2 - (view) (annotate) - [select for diffs]
Fri Dec 19 01:31:32 2008 UTC (5 years, 4 months ago) by rtoy
Branch: unicode-utf16-extfmt-branch
CVS Tags: unicode-utf16-extfmts-sync-2008-12
Changes since 1.55.6.1: +30 -14 lines
Diff to previous 1.55.6.1 , to branch point 1.55 , to selected 1.49
Merge changes from utf16 branch to update to snapshot 2008-12.

Revision 1.55.4.2 - (view) (annotate) - [select for diffs]
Thu Dec 18 21:50:18 2008 UTC (5 years, 4 months ago) by rtoy
Branch: unicode-utf16-branch
CVS Tags: unicode-utf16-sync-2008-12, unicode-utf16-sync-label-2009-03-16
Changes since 1.55.4.1: +30 -14 lines
Diff to previous 1.55.4.1 , to branch point 1.55 , to selected 1.49
Merge Snapshot 2008-12 to this branch.  Some tweaks needed in
boot-2008-05-cross-unicode-x86.lisp and the Config files.  FreeBSD and
Darwin/x86 untested, but Linux and Solaris build ok.

Revision 1.58 - (view) (annotate) - [select for diffs]
Wed Nov 12 15:04:23 2008 UTC (5 years, 5 months ago) by rtoy
Branch: MAIN
CVS Tags: RELEASE_19f, label-2009-03-16, merge-sse2-packed, merge-with-19f, release-19f-base, release-19f-pre1, snapshot-2008-12, snapshot-2009-01, snapshot-2009-02
Branch point for: RELEASE-19F-BRANCH
Changes since 1.57: +31 -15 lines
Diff to previous 1.57 , to selected 1.49
Merge in SSE2 changes from sse2-packed-branch (tag
sse2-packed-2008-11-12).

Revision 1.55.6.1 - (view) (annotate) - [select for diffs]
Sun Nov 2 13:30:01 2008 UTC (5 years, 5 months ago) by rtoy
Branch: unicode-utf16-extfmt-branch
Changes since 1.55: +94 -12 lines
Diff to previous 1.55 , to selected 1.49
Sync to snapshot 2008-11.  But we didn't sync code/extfmts.lisp or
iso8859-1.lisp and utf-8.lisp.  (I don't think we want those changes,
yet.)

Revision 1.55.4.1 - (view) (annotate) - [select for diffs]
Sat Nov 1 22:40:35 2008 UTC (5 years, 5 months ago) by rtoy
Branch: unicode-utf16-branch
CVS Tags: unicode-utf16-sync-2008-11
Changes since 1.55: +94 -12 lines
Diff to previous 1.55 , to selected 1.49
Sync to snapshot 2008-11.

Revision 1.55.8.2.2.1 - (view) (annotate) - [select for diffs]
Sat Nov 1 16:07:20 2008 UTC (5 years, 5 months ago) by rtoy
Branch: sse2-packed-branch
CVS Tags: sse2-merge-with-2008-11, sse2-packed-2008-11-12
Changes since 1.55.8.2: +94 -12 lines
Diff to previous 1.55.8.2 , to selected 1.49
Sync to snapshot-2008-11.

Revision 1.57 - (view) (annotate) - [select for diffs]
Wed Oct 22 14:02:27 2008 UTC (5 years, 5 months ago) by rtoy
Branch: MAIN
CVS Tags: snapshot-2008-11
Changes since 1.56: +20 -4 lines
Diff to previous 1.56 , to selected 1.49
o Add new condition type for exceeding the intexp maximum exponent.
o Instead of a continuable error, use a restart to allow the user to
  continue the calculation with the option of updating the limit to
  the new power.

Should we also increase the initial limit to something larger?  Should
we just eliminate this altogether?  Or maybe allow the
*intexp-maximum-exponent* to be nil to mean no limit at all?

Revision 1.56 - (view) (annotate) - [select for diffs]
Wed Oct 8 17:03:07 2008 UTC (5 years, 6 months ago) by rtoy
Branch: MAIN
Changes since 1.55: +75 -9 lines
Diff to previous 1.55 , to selected 1.49
Ticket #24.

Take the rule of float precision contagion (CLHS 12.1.4.4) to also
mean that the result should be as accurate as the most accurate
argument.  Effectively, all args are coerced to the highest precision
first before computing expt.

There's a simple test program to check that every case is covered with
the expected precision.  (I think).

(defun test-expt ()
  (dolist (base '(2 2f0 2d0 2w0) t)
    (dolist (power '(1/2 .5f0 .5d0 .5w0))
      (flet ((test-it (b p a eps expected)
	       (let* ((res (expt b p))
		      (absdiff (abs (- res a))))
		 (unless
		     (or (typep (realpart res) (type-of expected))
			 (<= absdiff (* 10 eps)))
		   (format t "FAILED: ~A^~A = ~A (~A)~%" b p res a)))))

	;; Compute base^power.
	(let* ((expected-type
		(let ((prod (* base power)))
		  (if (rationalp prod)
		      1f0
		      prod)))
	       (eps (etypecase expected-type
		      ((or rational single-float)
		       single-float-epsilon)
		      (double-float
		       double-float-epsilon)
		      (double-double-float
		       1w-31)))
	       (answer (sqrt (float base expected-type))))
	  (test-it base power answer eps expected-type)
	  (test-it base (complex power) answer eps expected-type)
	  (test-it (complex base) power answer eps expected-type)
	  (test-it (complex base) (complex power) eps answer expected-type))))))

Revision 1.55.8.2 - (view) (annotate) - [select for diffs]
Fri Sep 26 20:13:10 2008 UTC (5 years, 6 months ago) by rtoy
Branch: sse2-branch
CVS Tags: sse2-checkpoint-2008-10-01, sse2-merge-with-2008-10, sse2-packed-base
Branch point for: sse2-packed-branch
Changes since 1.55.8.1: +24 -25 lines
Diff to previous 1.55.8.1 , to branch point 1.55 , to next main 1.64 , to selected 1.49
Clean up conditionals.

Revision 1.55.8.1 - (view) (annotate) - [select for diffs]
Fri Sep 26 18:56:40 2008 UTC (5 years, 6 months ago) by rtoy
Branch: sse2-branch
Changes since 1.55: +33 -16 lines
Diff to previous 1.55 , to selected 1.49
Initial support for SSE2.  This compiles itself ok on Linux, and
should work on OSX.  Much cleanup is needed, and still need to restore
buildability without SSE2.

Use bootfiles/19e/boot-2008-09-sse2.lisp as the cross-compile script.

The key changes are in these new files:

o float-sse2.lisp: implements all of the floating-point stuff with
  SSE2
o sse2-array.lisp: replacement vops using sse2 instead of x87
o sse2-c-call.lisp: replacement vops using sse2 instead of x87.
o sse2-sap.lisp: replacement vops using sse2 instead of x87



code/irrat.lisp:
o Basically turn off all the special routines that use the x87 trig,
  log, or exp instructions.  We don't support that currently.  (Would
  be nice, though.)
o Turn on %%sin and friends, like on ppc.
o Turn off %sin-quick and friends since we don't want to use x87 now.

code/misc.lisp:
o Register :sse2 feature.

compiler/float-tran.lisp:
o Disable transforms for x86 that use x87 instructions.  We don't
  support that with sse2.

compiler/loadbackend.lisp:
o Load up the appropriate sse2 files for the compiler.  This will
  currently overwrite existing vops with vops for SSE2.

compiler/x86/float.lisp:
o Disable various vops using the x87 instructions, since
  float-sse2.lisp doesn't have equivalents.  (Just in case.  Since
  this isn't compiled or loaded, we shouldn't need to do this.)

compiler/x86/insts.lisp:
o Add support for SSE2 instructions.  Shamelessly borrowed from our
  SBCL friends.

compiler/x86/vm.lisp:
o Turn off some fp-constants that are not supported with sse2.
o Print FP registers as XMM instead of FR.

lisp/Config.linux_gencgc:
lisp/Config.x86_darwin:
o Enable FEATURE_SSE2 flag when compiling.

lisp/Darwin-os.c:
lisp/Linux-os.c:
o Get the mxcsr status bits too when getting the FPU status from a
  sigcontext.

lisp/x86-assem.S:
o For SSE2, we copy any floating-point result (in ST(0)) to XMM0, so
  Lisp code can get it.

tools/comcom.lisp:
o Compile up the SSE2 files as needed.

Revision 1.55 - (view) (annotate) - [select for diffs]
Thu Jan 31 19:12:40 2008 UTC (6 years, 2 months ago) by rtoy
Branch: MAIN
CVS Tags: release-19e, release-19e-base, release-19e-pre1, release-19e-pre2, snapshot-2008-02, snapshot-2008-03, snapshot-2008-04, snapshot-2008-05, snapshot-2008-06, snapshot-2008-07, snapshot-2008-08, snapshot-2008-09, snapshot-2008-10, sse2-base, unicode-utf16-base, unicode-utf16-extfmts-pre-sync-2008-11, unicode-utf16-string-support, unicode-utf16-sync-2008-07, unicode-utf16-sync-2008-09
Branch point for: release-19e-branch, sse2-branch, unicode-utf16-branch, unicode-utf16-extfmt-branch
Changes since 1.54: +10 -9 lines
Diff to previous 1.54 , to selected 1.49
Correct some comments.

Revision 1.54 - (view) (annotate) - [select for diffs]
Mon Jan 28 18:21:03 2008 UTC (6 years, 2 months ago) by rtoy
Branch: MAIN
Changes since 1.53: +37 -23 lines
Diff to previous 1.53 , to selected 1.49
Add new interface to ieee754_rem_pio2.  No longer need to pass in an
array. The new function returns 2 new output values.

code/irrat.lisp:
o Rename the original %ieee754-rem-pi/2 to %%ieee754-rem-pi-2.
o Define the new %ieee754-rem-pi/2 function.  This returns the output
  as two output values instead of an array.
o Use the new function.  We should have wrapped the original with
  without-gcing, but we don't have to anymore.

lisp/ppc-arch.c:
lisp/x86-arch.c:
o Implement the new C interface to __ieee754_rem_pio2

lisp/Config.linux_gencgc:
o Use -ffloat-store when compiling e_rem_pio2.c and k_rem_pio2.c, just
  to be sure.

Revision 1.53 - (view) (annotate) - [select for diffs]
Fri Aug 3 14:28:22 2007 UTC (6 years, 8 months ago) by rtoy
Branch: MAIN
CVS Tags: pre-telent-clx, snapshot-2007-09, snapshot-2007-10, snapshot-2007-11, snapshot-2007-12, snapshot-2008-01
Changes since 1.52: +3 -2 lines
Diff to previous 1.52 , to selected 1.49
Add (INHIBIT-WARNINGS 3) to get rid of unavoidable note.

Revision 1.52 - (view) (annotate) - [select for diffs]
Thu Jan 18 17:36:22 2007 UTC (7 years, 3 months ago) by rtoy
Branch: MAIN
CVS Tags: snapshot-2007-02, snapshot-2007-03, snapshot-2007-04, snapshot-2007-05, snapshot-2007-06, snapshot-2007-07, snapshot-2007-08
Changes since 1.51: +46 -76 lines
Diff to previous 1.51 , to selected 1.49
Merge LOG2 and LOG2-DD into one function.

Revision 1.51 - (view) (annotate) - [select for diffs]
Thu Jan 18 16:16:13 2007 UTC (7 years, 3 months ago) by rtoy
Branch: MAIN
Changes since 1.50: +147 -28 lines
Diff to previous 1.50 , to selected 1.49
Fix trac ticket #8: 2-arg log function can't compute some logs.

Extend LOG2 function to handle more cases, and make LOG call LOG2
appropriately, and add LOG2-DD to handle the double-double-float
cases.

Revision 1.50 - (view) (annotate) - [select for diffs]
Wed Jul 19 14:58:52 2006 UTC (7 years, 9 months ago) by rtoy
Branch: MAIN
CVS Tags: release-19d, release-19d-base, release-19d-pre1, release-19d-pre2, snapshot-2006-08, snapshot-2006-09, snapshot-2006-10, snapshot-2006-11, snapshot-2006-12, snapshot-2007-01
Branch point for: release-19d-branch
Changes since 1.49: +5 -19 lines
Diff to previous 1.49
o Remove unused code in ABS for double-double-float
o Implement ABS for complex double-double-floats.

Revision 1.49 - (view) (annotate) - [selected]
Wed Jul 19 13:02:45 2006 UTC (7 years, 9 months ago) by rtoy
Branch: MAIN
Changes since 1.48: +25 -2 lines
Diff to previous 1.48
Just add some comment about the routines implementing accurate sin,
cos, tan.

Revision 1.48 - (view) (annotate) - [select for diffs]
Wed Jul 19 03:52:38 2006 UTC (7 years, 9 months ago) by rtoy
Branch: MAIN
Changes since 1.47: +57 -37 lines
Diff to previous 1.47 , to selected 1.49
Add better trig arg reduction via Sun's fdlibm.

lisp/Config.ppc_darwin
o Compile e_rem_pio2.c and k_rem_pio2.c

code/irrat.lisp:
o Update the arg reduction code to support ppc.  We call out to the C
  sin, cos, and tan functions, after the argument has been accurately
  reduced.

Revision 1.47 - (view) (annotate) - [select for diffs]
Wed Jul 19 02:54:30 2006 UTC (7 years, 9 months ago) by rtoy
Branch: MAIN
Changes since 1.46: +47 -1 lines
Diff to previous 1.46 , to selected 1.49
Add the trig argument reduction routines from Sun's fdlibm so we can
accurately reduce the arg and therefore compute the value of trig
functions accurately.

lisp/Config.linux_gencgc:
o Compile e_rem_pio2.c and k_rem_pio2.c

code/irrat.lisp:
o Disable %sin, %cos, %tan functions.
o Implement %sin, %cos, and %tan to call the fdlibm routine
  __ieee754_rem_pio2 to do argument reduction before calling the sin,
  cos, tan vops.

compiler/x86/float.lisp:
o Disable the vops for %sin, %cos, and %tan, so the Lisp code in
  irrat.lisp is used.

Revision 1.46 - (view) (annotate) - [select for diffs]
Fri Jun 30 18:41:22 2006 UTC (7 years, 9 months ago) by rtoy
Branch: MAIN
CVS Tags: snapshot-2006-07
Changes since 1.45: +136 -16 lines
Diff to previous 1.45 , to selected 1.49
This large checkin merges the double-double float support to HEAD.
The merge is from the tag "double-double-irrat-end".  The
double-double branch is now obsolete.

The code should build without double-double support (tested on sparc)
as well as build with double-double support (tested also on sparc).

Revision 1.45.2.1.2.1.2.3 - (view) (annotate) - [select for diffs]
Thu Jun 29 14:50:27 2006 UTC (7 years, 9 months ago) by rtoy
Branch: double-double-array-branch
CVS Tags: double-double-irrat-end
Changes since 1.45.2.1.2.1.2.2: +12 -4 lines
Diff to previous 1.45.2.1.2.1.2.2 , to branch point 1.45.2.1.2.1 , to selected 1.49
code/irrat-dd.lisp:
o Fix a warning
o Implement x^y for real x < 0 and non-integer y, which returns a
  complex number.

code/irrat.lisp:
o Tell EXPT how to handle double-double-float.
o Tell Log how to handle double-double-float when two args are given.

Revision 1.45.2.1.2.1.2.2 - (view) (annotate) - [select for diffs]
Thu Jun 29 01:28:02 2006 UTC (7 years, 9 months ago) by rtoy
Branch: double-double-array-branch
Changes since 1.45.2.1.2.1.2.1: +89 -22 lines
Diff to previous 1.45.2.1.2.1.2.1 , to branch point 1.45.2.1.2.1 , to selected 1.49
Add implementation of special functions for double-double-float.  More
testing required, but basic functionality works.

code/irrat-dd.lisp:
o New file which implements all the required special functions for
  double-double.  Modify existing COMPLEX-<foo> functions to handle
  double-double numbers.

code/irrat.lisp:
o Update HANDLE-REALS to handle double-double float case.
o Update EXPT for double-double float.  (But negative number to
  non-integer power not working yet.)
o LOG handles double-double, but not 2-arg log yet.
o SQRT handles double-double, including complex result.
o ASIN handles double-double.
o ACOS handles double-double.
o ATAN handles double-double.
o ACOSH handles double-double.
o ATANH handles double-double.
o Adjust declaration for SQUARE, SCALB, LOGB-FINITE, and LOGB to allow
  any float type.
o COMPLEX-SQRT handles double-doubles.
o COMPLEX-LOG handles double-doubles.
o COMPLEX-ATANH handles double-doubles.
o COMPLEX-TANH handles double-doubles.
o COMPLEX-ACOS handles double-doubles.
o COMPLEX-ASIN handles double-doubles.
o COMPLEX-ASINH handles double-doubles.
o COMPLEX-ATAN handles double-doubles.
o COMPLEX-TAN handles double-doubles.

tools/worldbuild.lisp:
o Load irrat-dd.

tools/worldcom.lisp:
o Compile irrat-dd.

Revision 1.45.2.1.2.1.2.1 - (view) (annotate) - [select for diffs]
Sat Jun 17 02:59:42 2006 UTC (7 years, 10 months ago) by rtoy
Branch: double-double-array-branch
CVS Tags: double-double-array-checkpoint, double-double-irrat-start, double-double-sparc-checkpoint-1
Changes since 1.45.2.1.2.1: +2 -2 lines
Diff to previous 1.45.2.1.2.1 , to selected 1.49
Initial support for (complex double-double-float).

Use boot-2006-06-2-cross-dd* to cross compile this change (along with
the simple-array double-double-float change).

Revision 1.45.2.1.2.1 - (view) (annotate) - [select for diffs]
Sun Jun 11 20:11:45 2006 UTC (7 years, 10 months ago) by rtoy
Branch: double-double-reader-branch
CVS Tags: double-double-array-base, double-double-reader-checkpoint-1
Branch point for: double-double-array-branch
Changes since 1.45.2.1: +4 -3 lines
Diff to previous 1.45.2.1 , to selected 1.49
Add basic support for reading and printing double-double-floats.  I
think this needs to be built from a binary that already has basic
double-double support.  That is, you need to compile these changes
with a binary built from the double-double-branch.  (It may work
to cross-compile this from the 2006-06 snapshot, but I did not try
it.)

Reading double-double-floats appears to work.  PRINT appears to work.
However, formatted output of double-double-floats may not be accurate
because SCALE-EXPONENT still only supports double-floats.

code/bignum.lisp:
o Add support for coercing a BIGNUM to a DOUBLE-DOUBLE-FLOAT.

code/float.lisp:
o Add support for converting a RATIO to a DOUBLE-DOUBLE-FLOAT.  This
  is needed to be able to read a double-double-float correctly.
o INTEGER-DECODE-DOUBLE-DOUBLE-FLOAT seems to be buggy.  Use a new
  version that works but probably conses more than is necessary and is
  probably slower than necessary.  This is needed to print out
  DOUBLE-DOUBLE-FLOATs correctly.
o Add DECODE-DOUBLE-DOUBLE-FLOAT while we're at it.
o Add SCALE-DOUBLE-DOUBLE-FLOAT.  This is also needed for printing.
o Disable %DOUBLE-DOUBLE-FLOAT.  There's already an implementation in
  float-tran.  (We really should move the float-tran version to here.)


code/format.lisp:
o Tell printer to use #\w when printing double-double-floats.

code/irrat.lisp:
o The deftransform for ABS is working, so use that instead of the
  hack.

code/numbers.lisp:
o Update FLOAT-CONTAGION to support mixing rationals with
  double-double-floats.

code/print.lisp:
o Recognize double-double-floats for printing.  Use "w" as the
  exponent marker for double-double floats.
o Very minor change to FLONUM-TO-DIGITS to support
  double-double-floats.

code/reader.lisp:
o Tell the reader that #\w and #\W are exponent markers for
  double-double-float numbers by giving them the secondary attribute
  constituent-expt.
o Tell the reader to creat double-double-floats when reading such
  numbers.

Revision 1.45.2.1 - (view) (annotate) - [select for diffs]
Fri Jun 9 16:04:57 2006 UTC (7 years, 10 months ago) by rtoy
Branch: double-double-branch
CVS Tags: double-double-init-%make-sparc, double-double-init-checkpoint-1, double-double-init-ppc, double-double-init-sparc, double-double-init-sparc-2, double-double-init-x86, double-double-reader-base
Branch point for: double-double-reader-branch
Changes since 1.45: +49 -5 lines
Diff to previous 1.45 , to next main 1.64 , to selected 1.49
Add basic support for kernel:double-double-float type.  The primitive
type is there, and basic arithmetic operations work as well as PRINT.
But many things do not work: No reader, formatted output, many mixed
type arithmetic operations, special functions are just double-float
values, coerced to double-double-float.

compiler/generic/interr.lisp:
o Add new error

compiler/generic/new-genesis.lisp:
o Dump double-double-float objects (barely tested)

compiler/generic/primtype.lisp:
o Tell compiler about the new primitive type double-double-float.

compiler/generic/vm-fndb.lisp:
o Make double-double-float-p a known function.

compiler/generic/vm-type.lisp:
o Update FLOAT-FORMAT-NAME to include double-double-float

compiler/generic/vm-typetran.lisp:
o Tell compiler about double-double-float type predicate.

compiler/sparc/float.lisp:
o Add necessary vops to move double-double-float args, store and load
  double-double-floats to/from the double-double-stack,
  double-double-reg moves, box and unbox double-double-floats, move
  double-double-floats to and from args
o Add necessary vops to create a double-double-float and to extract
  the high and low parts out of a double-double-float.

compiler/sparc/parms.lisp:
o Define double-double-float-digits

compiler/sparc/type-vops.lisp:
o Define double-double-float type vop
o Adjust number hierarchy to include double-double-float

compiler/sparc/vm.lisp:
o Define the necessary storage class and storage base for the
  double-double-reg and double-double-stack.

lisp/gencgc.c:
o Tell GC about double-double-float objects.

lisp/purify.c:
o Tell purify about double-double-float objects.

code/class.lisp:
o Add the new double-double-float class.

code/exports.lisp:
o Add the necessary symbols to the various packages.  (This is
  important to get right otherwise there's confusion on what symbol
  really represents double-double-float stuff.)

code/float.lisp:
o Implement some of the necessary functions to support
  double-double-float.

code/hash-new.lisp:
o Hash double-double-floats by xor'ing the hashes of each double-float
  part.  (Is that good enough?)

code/irrat.lisp:
o Implement the special functions by calling the double-float versions
  and coercing the result to a double-double-float.  This is needed to
  get type-derivation working, but the precise value isn't that
  important right now.  We'll have to implement them later.

code/kernel.lisp:
o Make make-double-double-float, double-double-hi, and
  double-double-lo known functions.

code/lispinit.lisp:
o Register the :double-double float feature.

code/load.lisp:
o Add FOP for reading double-double-float values from fasls.  (Barely
  tested, if at all.)

code/numbers.lisp:
o Implement basic arithmetic operations for double-double-floats.
  This needs quite a bit of work to clean up, but most things work.

code/pred.lisp:
o Tell the type system about double-double-float type.

code/print.lisp:
o Add very rudimentary printing for double-double-float.  Basically
  copied from code written by Richard Fateman, with permission.

code/seq.lisp:
o Tell coerce how to coerce things to a double-double-float.

code/type.lisp:
o Tell type system about the new float format double-double-float and
  how numeric contagion works with double-double-float.

code/dump.lisp:
o Tell dumper how to dump double-double-float values to a fasl.

compiler/float-tran.lisp:
o Add appropriate deftransforms to handle conversion of things to
  double-double-float and from from double-double-float to other float
  types.
o The basic implmentation of double-double-float arithmetic is also
  here.
o Add deftransforms to tell the compiler how to do basic arithmetic
  and comparisions on double-double-float numbers.

compiler/srctran.lisp:
o Fix a bug in interval-range-info when :low is 0dd0 and :high is 0.
  We weren't returning the right value, which confuses interval-div,
  which caused an infinite loop because we couldn't split the
  numerator into positive and negative parts.
o Tell other parts about double-double-float.

Revision 1.45 - (view) (annotate) - [select for diffs]
Mon May 15 23:56:11 2006 UTC (7 years, 11 months ago) by rtoy
Branch: MAIN
CVS Tags: double-double-base, snapshot-2006-06
Branch point for: double-double-branch
Changes since 1.44: +7 -1 lines
Diff to previous 1.44 , to selected 1.49
Don't produce a continuable error in INTEXP, if we're raising 1 to
some power.  (Maxima does this sometimes, and it's annoying to have
CMUCL stop for this.)

Revision 1.44 - (view) (annotate) - [select for diffs]
Wed May 3 19:39:56 2006 UTC (7 years, 11 months ago) by rtoy
Branch: MAIN
Changes since 1.43: +12 -1 lines
Diff to previous 1.43 , to selected 1.49
It seems we need kernel::%sqrt to be defined for sparc.  It's used,
sometimes, during constant folding in the compiler.  (What else is
missing?)

Revision 1.41.2.1 - (view) (annotate) - [select for diffs]
Mon Dec 19 01:09:51 2005 UTC (8 years, 4 months ago) by rtoy
Branch: ppc_gencgc_branch
CVS Tags: ppc_gencgc_snap_2005-12-17, ppc_gencgc_snap_2006-01-06
Changes since 1.41: +47 -10 lines
Diff to previous 1.41 , to next main 1.64 , to selected 1.49
Merge code from main branch of 2005-12-17 to ppc gencgc branch.  Still
doesn't work of course.

Revision 1.43 - (view) (annotate) - [select for diffs]
Thu Oct 20 12:32:08 2005 UTC (8 years, 6 months ago) by rtoy
Branch: MAIN
CVS Tags: snapshot-2005-11, snapshot-2005-12, snapshot-2006-01, snapshot-2006-02, snapshot-2006-03, snapshot-2006-04, snapshot-2006-05
Changes since 1.42: +37 -2 lines
Diff to previous 1.42 , to selected 1.49
Fix some issues with two-arg log function.  (log 17 10f0), (log 17f0
10), and (log 17 10) returned different single-float results.  I think
this is allowed by ANSI CL, but I think it's unfortunate.

Therefore, try to apply float contagion to the arguments before
computing the log function.  Also, if both args are single-floats or
rationals, we coerce them to double-floats before computing the
result.  This makes (log 17 10) = (log 17.0 10).

There are other cases still to be considered.

Revision 1.42 - (view) (annotate) - [select for diffs]
Thu Aug 25 21:21:32 2005 UTC (8 years, 7 months ago) by rtoy
Branch: MAIN
CVS Tags: release-19c, release-19c-base, release-19c-pre1, snapshot-2005-10
Branch point for: release-19c-branch
Changes since 1.41: +11 -9 lines
Diff to previous 1.41 , to selected 1.49
ASIN and ACOS were getting errors when given NaN's.  Check for that
case and dispatch to the real-valued C functions in that case.  This
fixes some errors in the asin and acos tests from ieeefp-tests (at
common-lisp.net).

Revision 1.41 - (view) (annotate) - [select for diffs]
Tue Oct 19 15:07:30 2004 UTC (9 years, 6 months ago) by rtoy
Branch: MAIN
CVS Tags: ppc_gencgc_snap_2005-05-14, release-19b-base, release-19b-pre1, release-19b-pre2, snapshot-2004-11, snapshot-2004-12, snapshot-2005-01, snapshot-2005-02, snapshot-2005-03, snapshot-2005-04, snapshot-2005-05, snapshot-2005-06, snapshot-2005-07, snapshot-2005-08, snapshot-2005-09
Branch point for: ppc_gencgc_branch, release-19b-branch
Changes since 1.40: +77 -68 lines
Diff to previous 1.40 , to selected 1.49
CMUCL was computing the values of asin, acos, and atanh on the branch
cuts on the real line incorrectly.  This shows up when calling these
functions with real-valued args, not complex.  The problem was the
computed values were not continuous with the quadrants specified by
ANSI CL.

Issue noted by Bruno Haible, cmucl-imp, 2004-10-11.

See also some tests on cmucl-imp, 2004-10-19.

Revision 1.40 - (view) (annotate) - [select for diffs]
Wed Jun 9 14:48:15 2004 UTC (9 years, 10 months ago) by rtoy
Branch: MAIN
CVS Tags: prm-before-macosx-merge-tag, snapshot-2004-07, snapshot-2004-08, snapshot-2004-09, snapshot-2004-10
Changes since 1.39: +11 -1 lines
Diff to previous 1.39 , to selected 1.49
EXPT sometimes returned NaN when the power was 0 instead of 1.  Make
it return 1 (of the right type) in these cases.  We still produce a FP
trap, if enabled, though.  Is that right?

Revision 1.39 - (view) (annotate) - [select for diffs]
Fri Jun 4 13:25:07 2004 UTC (9 years, 10 months ago) by rtoy
Branch: MAIN
CVS Tags: snapshot-2004-06
Changes since 1.38: +11 -11 lines
Diff to previous 1.38 , to selected 1.49
Merge in 19a-branch fix for the atanh bug.

Revision 1.37.14.2 - (view) (annotate) - [select for diffs]
Thu Jun 3 13:37:02 2004 UTC (9 years, 10 months ago) by rtoy
Branch: release-19a-branch
CVS Tags: release-19a, release-19a-pre2, release-19a-pre3
Changes since 1.37.14.1: +11 -11 lines
Diff to previous 1.37.14.1 , to branch point 1.37 , to next main 1.64 , to selected 1.49
Fix bug in atanh(1 + i*y), and also for x + i*y for large x or y.

Revision 1.37.14.1 - (view) (annotate) - [select for diffs]
Fri May 14 16:26:07 2004 UTC (9 years, 11 months ago) by rtoy
Branch: release-19a-branch
Changes since 1.37: +36 -7 lines
Diff to previous 1.37 , to selected 1.49
Merge in rev 1.38 to fix the problem where we were returning wrong
values for asin and acos when the arg was on the branch cut.

Revision 1.38 - (view) (annotate) - [select for diffs]
Wed May 12 02:52:42 2004 UTC (9 years, 11 months ago) by rtoy
Branch: MAIN
CVS Tags: amd64-merge-start
Changes since 1.37: +36 -7 lines
Diff to previous 1.37 , to selected 1.49
Fix some issues with the complex functions with signed zeroes.  See
comment for full details, but the issue is that Lisp says mixing a
real and a complex requires converting the real to complex before
doing the operation.  But Kahan's algorithms assume that this doesn't
happen, like z-1 should not be computed as z-(1+0*i).

One place where this was wrong was for acos(2 +/- 0i).  Kahan says
acos(2+0i) is +0 - i*acosh(2) and acos(2-0i) is +0 + i*acosh(2).  We
had this backwards for the above reason.

I think this was caused by the erroneous deftransforms for real op
complex which were removed sometime ago, causing these function to
compute the wrong thing.

Revision 1.37 - (view) (annotate) - [select for diffs]
Wed Jan 29 18:51:48 2003 UTC (11 years, 2 months ago) by toy
Branch: MAIN
CVS Tags: cold-pcl-base, dynamic-extent-base, lisp-executable-base, mod-arith-base, release-18e, release-18e-base, release-18e-pre1, release-18e-pre2, release-19a-base, release-19a-pre1, remove_negative_zero_not_zero, snapshot-2003-10, snapshot-2003-11, snapshot-2003-12, snapshot-2004-04, snapshot-2004-05, sparc_gencgc, sparc_gencgc_merge
Branch point for: cold-pcl, dynamic-extent, lisp-executable, mod-arith-branch, release-18e-branch, release-19a-branch, sparc_gencgc_branch
Changes since 1.36: +14 -9 lines
Diff to previous 1.36 , to selected 1.49
Chrisophe Rhodes noted that (log 19/3) was losing precision.  Fix that
by calling log2 instead of log to compute the result.

Revision 1.36 - (view) (annotate) - [select for diffs]
Fri Jan 10 17:19:22 2003 UTC (11 years, 3 months ago) by toy
Branch: MAIN
Changes since 1.35: +3 -3 lines
Diff to previous 1.35 , to selected 1.49
Fix typo in computing log of rational where the numerator and
denominator are different lengths.  Should be log, not log2.

Revision 1.35 - (view) (annotate) - [select for diffs]
Wed Jan 8 23:28:47 2003 UTC (11 years, 3 months ago) by toy
Branch: MAIN
Changes since 1.34: +20 -6 lines
Diff to previous 1.34 , to selected 1.49
Was losing precision for (log x) when x is a rational near 1.  Handle
this better by using %log1p when needed.

Problem noted by Christophe Rhodes.

Revision 1.34 - (view) (annotate) - [select for diffs]
Tue Dec 31 14:28:08 2002 UTC (11 years, 3 months ago) by toy
Branch: MAIN
Changes since 1.33: +39 -7 lines
Diff to previous 1.33 , to selected 1.49
Allow computation of log's of big integers that might not fit in a
single-float or double-float.  Thus (log (expt 2 32768) 2) will return
32768.0 instead of causing an error.

Revision 1.33 - (view) (annotate) - [select for diffs]
Thu Sep 5 16:13:46 2002 UTC (11 years, 7 months ago) by toy
Branch: MAIN
CVS Tags: UNICODE-BASE
Branch point for: UNICODE-BRANCH
Changes since 1.32: +3 -2 lines
Diff to previous 1.32 , to selected 1.49
Give a better error message for atan when given an arg that isn't
REAL in the two arg case.

Revision 1.19.2.5 - (view) (annotate) - [select for diffs]
Sat Mar 23 18:50:03 2002 UTC (12 years, 1 month ago) by pw
Branch: RELENG_18
CVS Tags: RELEASE_18d
Changes since 1.19.2.4: +166 -228 lines
Diff to previous 1.19.2.4 , to branch point 1.19 , to next main 1.64 , to selected 1.49
Mega commit to bring RELENG_18 branch in sync with HEAD in preparation
for release tagging 18d.

Revision 1.32 - (view) (annotate) - [select for diffs]
Mon Apr 16 16:13:56 2001 UTC (13 years ago) by toy
Branch: MAIN
CVS Tags: LINKAGE_TABLE, PRE_LINKAGE_TABLE
Changes since 1.31: +165 -227 lines
Diff to previous 1.31 , to selected 1.49
o Fix the declaration bug in complex-log-scaled
o Remove the old special function routines
o Add logb-finite to help optimize the use of logb
o Remove some unneeded declarations since the compiler is smarter now
  than when this was originally written.
o Add inhibit-warnings to coerce-to-complex-type since their
  unavoidable.
o The cores of some routines are compiled with speed 3 and space 0 to
  get some maybe-inline routines inlined.

Revision 1.31 - (view) (annotate) - [select for diffs]
Sun Mar 4 20:12:37 2001 UTC (13 years, 1 month ago) by pw
Branch: MAIN
Changes since 1.30: +3 -3 lines
Diff to previous 1.30 , to selected 1.49
Change most PROCLAIMs to DECLAIMs.

Revision 1.19.2.4 - (view) (annotate) - [select for diffs]
Tue May 23 16:36:34 2000 UTC (13 years, 11 months ago) by pw
Branch: RELENG_18
CVS Tags: RELEASE_18c
Changes since 1.19.2.3: +2 -2 lines
Diff to previous 1.19.2.3 , to branch point 1.19 , to selected 1.49
This set of revisions brings the RELENG_18 branch up to HEAD in preparation
for an 18c release.

Revision 1.30 - (view) (annotate) - [select for diffs]
Fri Nov 19 14:55:53 1999 UTC (14 years, 5 months ago) by dtc
Branch: MAIN
Changes since 1.29: +2 -2 lines
Diff to previous 1.29 , to selected 1.49
Use only one of :sparc-v7, :sparc-v8, or :sparc-v9 when building to
get the desired features. From Raymond Toy.

Revision 1.29 - (view) (annotate) - [select for diffs]
Wed Jun 23 14:05:17 1999 UTC (14 years, 10 months ago) by dtc
Branch: MAIN
Changes since 1.28: +2 -2 lines
Diff to previous 1.28 , to selected 1.49
Use the fsqrt VOP on the SPARC V7 and up.

Revision 1.19.2.3 - (view) (annotate) - [select for diffs]
Tue Jun 23 11:22:02 1998 UTC (15 years, 10 months ago) by pw
Branch: RELENG_18
CVS Tags: RELEASE_18b
Changes since 1.19.2.2: +153 -52 lines
Diff to previous 1.19.2.2 , to branch point 1.19 , to selected 1.49
This (huge) revision brings the RELENG_18 branch up to the current HEAD.
Note code/unix-glib2.lisp not yet included -- not sure it is ready to go.

Revision 1.28 - (view) (annotate) - [select for diffs]
Wed Apr 15 01:29:57 1998 UTC (16 years ago) by dtc
Branch: MAIN
Changes since 1.27: +2 -3 lines
Diff to previous 1.27 , to selected 1.49
Kahan says (sqrt -0.0) returns -0.0.

Revision 1.27 - (view) (annotate) - [select for diffs]
Tue Feb 24 18:18:17 1998 UTC (16 years, 1 month ago) by dtc
Branch: MAIN
Changes since 1.26: +6 -3 lines
Diff to previous 1.26 , to selected 1.49
Now have an inline verion of %log1p for the x86 port so don't need
to call the C library version.

Revision 1.26 - (view) (annotate) - [select for diffs]
Thu Feb 19 03:49:49 1998 UTC (16 years, 2 months ago) by dtc
Branch: MAIN
Changes since 1.25: +4 -4 lines
Diff to previous 1.25 , to selected 1.49
Fix float-trapping-nan-p which was returning T for quiet NaN and Nil
of trapping NaN.

Revision 1.25 - (view) (annotate) - [select for diffs]
Mon Dec 15 06:46:54 1997 UTC (16 years, 4 months ago) by dtc
Branch: MAIN
Changes since 1.24: +2 -10 lines
Diff to previous 1.24 , to selected 1.49
Return #C(0.0 0.0) rather than -0.0 for (sqrt -0.0).

Revision 1.24 - (view) (annotate) - [select for diffs]
Sat Nov 1 22:58:14 1997 UTC (16 years, 5 months ago) by dtc
Branch: MAIN
Changes since 1.23: +3 -3 lines
Diff to previous 1.23 , to selected 1.49
Improved support for (complex single-float) and (complex double-float)
types. Adds storage classes to the backend for these so they can be
stored in registers or on the stack without consing; new primitive
types etc. Also adds (simple-array (complex {single,double}-float))
array types to avoid consing and speed vectors operations.  All
these changes are conditional on the :complex-float feature. More work
is needed to exploit these changes: improving the type dispatch in the
various function; maybe compiler transforms or more VOPs to handle
common functions inline.

Revision 1.19.2.2 - (view) (annotate) - [select for diffs]
Mon Sep 8 00:22:00 1997 UTC (16 years, 7 months ago) by dtc
Branch: RELENG_18
CVS Tags: RELEASE_18a
Changes since 1.19.2.1: +3 -3 lines
Diff to previous 1.19.2.1 , to branch point 1.19 , to selected 1.49
Check the accrued exceptions (sticky-bits) within
with-float-traps-masked; more reliable than the exceptions-byte on
many ports.
Call %tan directly in complex-tanh, saves a compiler note on x86.

Revision 1.23 - (view) (annotate) - [select for diffs]
Mon Sep 8 00:17:42 1997 UTC (16 years, 7 months ago) by dtc
Branch: MAIN
Changes since 1.22: +2 -2 lines
Diff to previous 1.22 , to selected 1.49
Check the accrued exceptions (sticky-bits) within
with-float-traps-masked; more reliable than the exceptions-byte on
many ports.

Revision 1.22 - (view) (annotate) - [select for diffs]
Sat Aug 30 18:29:21 1997 UTC (16 years, 7 months ago) by dtc
Branch: MAIN
Changes since 1.21: +144 -37 lines
Diff to previous 1.21 , to selected 1.49
New implementation of real-expt for the expt function; fixes bugs and
improves the handling of special case.

Revision 1.19.2.1 - (view) (annotate) - [select for diffs]
Sat Aug 30 18:24:51 1997 UTC (16 years, 7 months ago) by dtc
Branch: RELENG_18
Changes since 1.19: +46 -71 lines
Diff to previous 1.19 , to selected 1.49
New macro WITH-FLOAT-TRAPS-MASKED to execute a body of code with some
floating point exceptions disabled. It avoids the overhead of
{set,get}-floating-point-modes, saving some consing and generally
giving smaller code. Exploit this new macro where
{set,get}-floating-point-modes has been used.

Revision 1.21 - (view) (annotate) - [select for diffs]
Sat Aug 30 18:21:36 1997 UTC (16 years, 7 months ago) by dtc
Branch: MAIN
Changes since 1.20: +46 -71 lines
Diff to previous 1.20 , to selected 1.49
New macro WITH-FLOAT-TRAPS-MASKED to execute a body of code with some
floating point exceptions disabled. It avoids the overhead of
{set,get}-floating-point-modes, saving some consing and generally
giving smaller code. Exploit this new macro where
{set,get}-floating-point-modes has been used.

Revision 1.20 - (view) (annotate) - [select for diffs]
Tue Aug 26 18:00:24 1997 UTC (16 years, 7 months ago) by dtc
Branch: MAIN
Changes since 1.19: +2 -2 lines
Diff to previous 1.19 , to selected 1.49
In complex-tanh change tan -> %tan to avoid a compiler warning on the
x86 port.

Revision 1.19 - (view) (annotate) - [select for diffs]
Mon Feb 10 23:24:21 1997 UTC (17 years, 2 months ago) by dtc
Branch: MAIN
Branch point for: RELENG_18
Changes since 1.18: +17 -17 lines
Diff to previous 1.18 , to selected 1.49
Inline scalb and better declare its 'n' argument so the compiler can
generate inline code for this operation. Few other little cleanups.

Revision 1.18 - (view) (annotate) - [select for diffs]
Wed Feb 5 16:15:51 1997 UTC (17 years, 2 months ago) by pw
Branch: MAIN
Changes since 1.17: +18 -31 lines
Diff to previous 1.17 , to selected 1.49
initial post 1.3.7 merge

Revision 1.17 - (view) (annotate) - [select for diffs]
Sat Jan 18 14:30:40 1997 UTC (17 years, 3 months ago) by ram
Branch: MAIN
Changes since 1.16: +699 -64 lines
Diff to previous 1.16 , to selected 1.49
Werkowskis source kit 1.03.7

Revision 1.16 - (view) (annotate) - [select for diffs]
Mon Jul 8 19:17:28 1996 UTC (17 years, 9 months ago) by ram
Branch: MAIN
Changes since 1.15: +6 -7 lines
Diff to previous 1.15 , to selected 1.49
Merge fix from Douglas Crosher to make acosh and atanh return the right thing.

Revision 1.15 - (view) (annotate) - [select for diffs]
Mon Oct 31 04:11:27 1994 UTC (19 years, 5 months ago) by ram
Branch: MAIN
Changes since 1.14: +1 -3 lines
Diff to previous 1.14 , to selected 1.49
Fix headed boilerplate.

Revision 1.14 - (view) (annotate) - [select for diffs]
Sat Nov 6 04:15:47 1993 UTC (20 years, 5 months ago) by wlott
Branch: MAIN
Changes since 1.13: +30 -7 lines
Diff to previous 1.13 , to selected 1.49
Removed %exp1m, %log1p, and %cbrt because nobody used them, and HPUX
doens't have them.  Added #+hpux defuns for %asinh, %acosh, and %atanh
because HPUX doesn't have them either, but we want to use them.

Revision 1.13 - (view) (annotate) - [select for diffs]
Tue May 25 22:09:17 1993 UTC (20 years, 11 months ago) by wlott
Branch: MAIN
Changes since 1.12: +21 -35 lines
Diff to previous 1.12 , to selected 1.49
Now that +0.0 and -0.0 are no longer eql, fixed atan to deal with them
correctly.

Revision 1.12 - (view) (annotate) - [select for diffs]
Sat May 8 04:49:36 1993 UTC (20 years, 11 months ago) by wlott
Branch: MAIN
Changes since 1.11: +36 -18 lines
Diff to previous 1.11 , to selected 1.49
Fixed atan to handle zeros better.  It still isn't right because the
compiler thinks that +0.0d0 and -0.0d0 are similar as a constant.

Revision 1.11 - (view) (annotate) - [select for diffs]
Mon Mar 1 15:24:54 1993 UTC (21 years, 1 month ago) by ram
Branch: MAIN
Changes since 1.10: +1 -20 lines
Diff to previous 1.10 , to selected 1.49
Move ISQRT to numbers.lisp

Revision 1.10 - (view) (annotate) - [select for diffs]
Fri Feb 14 23:45:06 1992 UTC (22 years, 2 months ago) by wlott
Branch: MAIN
Changes since 1.9: +2 -2 lines
Diff to previous 1.9 , to selected 1.49
Merged new-alien changes onto trunk.

Revision 1.9.1.1 - (view) (annotate) - [select for diffs] (vendor branch)
Fri Jan 24 08:47:04 1992 UTC (22 years, 3 months ago) by wlott
Changes since 1.9: +2 -2 lines
Diff to previous 1.9 , to next main 1.64 , to selected 1.49
Mods for new aliens.

Revision 1.9 - (view) (annotate) - [select for diffs]
Fri Oct 25 20:02:07 1991 UTC (22 years, 6 months ago) by ram
Branch: MAIN
Changes since 1.8: +2 -4 lines
Diff to previous 1.8 , to selected 1.49
Fixed EXPT to deal with SINGLE-FLOAT x SINGLE-FLOAT arg type combination.

Revision 1.8 - (view) (annotate) - [select for diffs]
Wed Sep 4 14:26:37 1991 UTC (22 years, 7 months ago) by ram
Branch: MAIN
Changes since 1.7: +4 -4 lines
Diff to previous 1.7 , to selected 1.49
Fixed EXPT to handle double-float x ratio combination.

Revision 1.7 - (view) (annotate) - [select for diffs]
Fri Feb 8 13:33:39 1991 UTC (23 years, 2 months ago) by ram
Branch: MAIN
Changes since 1.6: +9 -5 lines
Diff to previous 1.6 , to selected 1.49
New file header with RCS header FILE-COMMENT.

Revision 1.6 - (view) (annotate) - [select for diffs]
Thu Jan 3 13:16:27 1991 UTC (23 years, 3 months ago) by ram
Branch: MAIN
Changes since 1.5: +53 -37 lines
Diff to previous 1.5 , to selected 1.49
Fixed EXPT to correctly return complex results for negative numbers
raised to fractional powers.

Revision 1.5 - (view) (annotate) - [select for diffs]
Wed Oct 24 16:42:48 1990 UTC (23 years, 6 months ago) by ram
Branch: MAIN
Changes since 1.4: +5 -7 lines
Diff to previous 1.4 , to selected 1.49
Made the C callout stubs for the math library routines be inline, since
the C call is pretty compact.

Revision 1.4 - (view) (annotate) - [select for diffs]
Thu Oct 18 02:56:15 1990 UTC (23 years, 6 months ago) by ram
Branch: MAIN
Changes since 1.3: +20 -20 lines
Diff to previous 1.3 , to selected 1.49
Made all the C stubs be exported and maybe-inline.  Put the generic
functions under (space 0) so that the stubs will be inline expanded.
Changed some uses of INTEGER-DECODE-FLOAT to FLOAT-SIGN, since only
the sign was being used.
Note that EXPT is broken, since (expt -2.0 0.5) should be a complex,
not 0.

Revision 1.3 - (view) (annotate) - [select for diffs]
Tue Jul 31 17:22:14 1990 UTC (23 years, 8 months ago) by wlott
Branch: MAIN
Changes since 1.2: +117 -47 lines
Diff to previous 1.2 , to selected 1.49
Wrote the rest of the trigonometric functions and fixed the complex case
of several others.

Revision 1.2 - (view) (annotate) - [select for diffs]
Sat Jul 21 15:33:08 1990 UTC (23 years, 9 months ago) by wlott
Branch: MAIN
Changes since 1.1: +24 -4 lines
Diff to previous 1.1 , to selected 1.49
Moved phase, cis, and abs here from numbers.  Commented out defconstant
of e, because other code uses e as a local.  I guess single letter
constants are kind of stupid.

Revision 1.1 - (view) (annotate) - [select for diffs]
Fri Jul 20 23:52:13 1990 UTC (23 years, 9 months ago) by wlott
Branch: MAIN
Diff to selected 1.49
Initial revision

This form allows you to request diffs between any two revisions of this file. For each of the two "sides" of the diff, select a symbolic revision name using the selection box, or choose 'Use Text Field' and enter a numeric revision.

  Diffs between and
  Type of Diff should be a

Sort log by:

  ViewVC Help
Powered by ViewVC 1.1.5