/[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)
Links to snapshot-2004-07: (view) (annotate)
Sticky Tag:

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
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
Merge in 19a-branch fix for the atanh bug.

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
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
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
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
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
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
Give a better error message for atan when given an arg that isn't
REAL in the two arg case.

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
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
Change most PROCLAIMs to DECLAIMs.

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
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, 9 months ago) by dtc
Branch: MAIN
Changes since 1.28: +2 -2 lines
Diff to previous 1.28
Use the fsqrt VOP on the SPARC V7 and up.

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
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
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
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
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
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.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
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
New implementation of real-expt for the expt function; fixes bugs and
improves the handling of special case.

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
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
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
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
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
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
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
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
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, 10 months ago) by wlott
Branch: MAIN
Changes since 1.12: +21 -35 lines
Diff to previous 1.12
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
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
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
Merged new-alien changes onto trunk.

Revision 1.9 - (view) (annotate) - [select for diffs]
Fri Oct 25 20:02:07 1991 UTC (22 years, 5 months ago) by ram
Branch: MAIN
Changes since 1.8: +2 -4 lines
Diff to previous 1.8
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
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
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
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, 5 months ago) by ram
Branch: MAIN
Changes since 1.4: +5 -7 lines
Diff to previous 1.4
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
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
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
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
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