From: <cli...@li...> - 2008-04-23 18:52:51
|
Send clisp-cvs mailing list submissions to cli...@li... To subscribe or unsubscribe via the World Wide Web, visit https://lists.sourceforge.net/lists/listinfo/clisp-cvs or, via email, send a message with subject or body 'help' to cli...@li... You can reach the person managing the list at cli...@li... When replying, please edit your Subject line so it is more specific than "Re: Contents of clisp-cvs digest..." CLISP CVS commits for today Today's Topics: 1. clisp/doc impbody.xml,1.503,1.504 (Sam Steingold) 2. clisp/doc cl-ent.xml,1.125,1.126 impbody.xml,1.504,1.505 (Sam Steingold) 3. clisp/doc cl-ent.xml,1.126,1.127 faq.xml,1.67,1.68 (Sam Steingold) 4. clisp/doc Makefile,1.102,1.103 (Sam Steingold) 5. clisp/doc wildcard.html,1.3,NONE (Sam Steingold) 6. clisp/modules/wildcard Makefile.in, 1.15, 1.16 wildcard.dvi, 1.1.1.1, NONE (Sam Steingold) 7. clisp/modules/regexp README,1.3,1.4 (Sam Steingold) 8. clisp/modules/regexp regexp.xml,1.27,1.28 (Sam Steingold) 9. clisp/doc Symbol-Table.text,1.15,1.16 (Sam Steingold) 10. clisp/src ChangeLog, 1.6131, 1.6132 comptran.d, 1.49, 1.50 realtran.d, 1.31, 1.32 (Sam Steingold) ---------------------------------------------------------------------- Message: 1 Date: Tue, 22 Apr 2008 21:27:33 +0000 From: Sam Steingold <sd...@us...> Subject: clisp/doc impbody.xml,1.503,1.504 To: cli...@li... Message-ID: <E1J...@ma...> Update of /cvsroot/clisp/clisp/doc In directory sc8-pr-cvs4.sourceforge.net:/tmp/cvs-serv24972/doc Modified Files: impbody.xml Log Message: generic-function & standard-generic-function are not built-in classes Index: impbody.xml =================================================================== RCS file: /cvsroot/clisp/clisp/doc/impbody.xml,v retrieving revision 1.503 retrieving revision 1.504 diff -u -d -r1.503 -r1.504 --- impbody.xml 22 Apr 2008 16:29:25 -0000 1.503 +++ impbody.xml 22 Apr 2008 21:27:31 -0000 1.504 @@ -792,7 +792,6 @@ <para>Among those classes listed in <ulink url="&clhs;/Body/sec_4-3-7.html#classtypecorrespondence">Figure 4-8</ulink>, only the following are instances of &built-in-class;: - <itemizedlist> <listitem><simpara>&t-t;</simpara></listitem> <listitem><simpara>&character-t;</simpara></listitem> @@ -803,12 +802,10 @@ &string-t;</simpara></listitem> <listitem><simpara>&list-t;, &cons-t;</simpara></listitem> <listitem><simpara>&symbol-t;, &null-t;</simpara></listitem> - <listitem><simpara>&function-t;, &generic-function-t;, - &standard-generic-function-t;</simpara></listitem> + <listitem><simpara>&function-t;</simpara></listitem> <listitem><simpara>&hash-table-t;</simpara></listitem> <listitem><simpara>&package-t;</simpara></listitem> - <listitem><simpara>&pathname-t;, &logical-pathname-t; - </simpara></listitem> + <listitem><simpara>&pathname-t;, &logical-pathname-t;</simpara></listitem> <listitem><simpara>&random-state-t;</simpara></listitem> <listitem><simpara>&readtable-t;</simpara></listitem> <listitem><simpara>&stream-t;, &broadcast-stream-t;, @@ -857,7 +854,7 @@ </chapter> <chapter id="data"><title>Data and Control Flow - <ulink role="clhs" url="chap-5"/></title> + <ulink role="clhs" url="chap-5"/></title> <section id="gen-ref"><title>Generalized Reference <ulink role="clhs" url="sec_5-1"/></title> ------------------------------ Message: 2 Date: Tue, 22 Apr 2008 22:09:14 +0000 From: Sam Steingold <sd...@us...> Subject: clisp/doc cl-ent.xml,1.125,1.126 impbody.xml,1.504,1.505 To: cli...@li... Message-ID: <E1J...@ma...> Update of /cvsroot/clisp/clisp/doc In directory sc8-pr-cvs4.sourceforge.net:/tmp/cvs-serv9716/doc Modified Files: cl-ent.xml impbody.xml Log Message: (readline-link): new entity Index: impbody.xml =================================================================== RCS file: /cvsroot/clisp/clisp/doc/impbody.xml,v retrieving revision 1.504 retrieving revision 1.505 diff -u -d -r1.504 -r1.505 --- impbody.xml 22 Apr 2008 21:27:31 -0000 1.504 +++ impbody.xml 22 Apr 2008 22:09:11 -0000 1.505 @@ -3746,8 +3746,8 @@ Arrow keys can be used to move within the input history. The &tab-c; key completes the &symbol-t; name or &pathname-t; that is being typed. - See <ulink url="http://cnswww.cns.cwru.edu/~chet/readline/rluserman.html" - >readline user manual</ulink> for general details and + See <ulink url="&readline-link;rluserman.html">readline user + manual</ulink> for general details and <olink targetdoc="man" targetptr="completion"/> for &clisp;-specific extensions.</para> <warning><simpara>The &readline; library is ¬-e; used (even when Index: cl-ent.xml =================================================================== RCS file: /cvsroot/clisp/clisp/doc/cl-ent.xml,v retrieving revision 1.125 retrieving revision 1.126 diff -u -d -r1.125 -r1.126 --- cl-ent.xml 22 Apr 2008 17:45:08 -0000 1.125 +++ cl-ent.xml 22 Apr 2008 22:09:11 -0000 1.126 @@ -110,7 +110,8 @@ <!ENTITY libiconv '&gnu; <ulink url="http://www.gnu.org/software/libiconv/">libiconv</ulink>'> <!ENTITY libsigsegv '&gnu; <ulink url="http://libsigsegv.sourceforge.net/">libsigsegv</ulink>'> <!ENTITY libffcall '&gnu; <ulink url="http://libffcall.sourceforge.net/">libffcall</ulink>'> -<!ENTITY readline '&gnu; <ulink url="http://tiswww.case.edu/php/chet/readline/readline.html">readline</ulink>'> +<!ENTITY readline-link 'http://tiswww.case.edu/php/chet/readline/'> +<!ENTITY readline '&gnu; <ulink url="&readline-link;readline.html">readline</ulink>'> <!ENTITY gdbm '&gnu; <ulink url="http://www.gnu.org/software/gdbm">DataBase Manager</ulink>'> <!ENTITY gnulib '&gnu; <ulink url="http://www.gnu.org/software/gnulib/">Portability Library</ulink>'> <!ENTITY autoconf '&gnu; <ulink url="http://www.gnu.org/software/autoconf/">autoconf</ulink>'> ------------------------------ Message: 3 Date: Tue, 22 Apr 2008 22:38:26 +0000 From: Sam Steingold <sd...@us...> Subject: clisp/doc cl-ent.xml,1.126,1.127 faq.xml,1.67,1.68 To: cli...@li... Message-ID: <E1J...@ma...> Update of /cvsroot/clisp/clisp/doc In directory sc8-pr-cvs4.sourceforge.net:/tmp/cvs-serv20422/doc Modified Files: cl-ent.xml faq.xml Log Message: (sf-cf): remove entity (faq-bin-distrib): update for the SF CF disappearance Index: faq.xml =================================================================== RCS file: /cvsroot/clisp/clisp/doc/faq.xml,v retrieving revision 1.67 retrieving revision 1.68 diff -u -d -r1.67 -r1.68 --- faq.xml 22 Apr 2008 16:14:32 -0000 1.67 +++ faq.xml 22 Apr 2008 22:38:24 -0000 1.68 @@ -524,13 +524,18 @@ <qandaentry id="faq-bin-distrib"><question id="faq-bin-distrib-q"><para>Where is the binary distribution for my platform?</para></question> -<answer><para>The &clisp; maintainers can only build &clisp; binary - distributions on those &sf-cf; platforms that are up an running at - the time of the &clisp; release and also have a reasonably modern - &c-lang; compiler.</para> - <para>Note that &clisp; is included in many software distributions, see - the section <quote>Get CLISP</quote> on the &clisp;'s home page.</para> -</answer></qandaentry> +<answer><para>The &clisp; maintainers do not offer &clisp; binary + distributions, we believe that software packagers specializing on a + particular platform are in a better position to provide quality binaries. + Indeed, the section <quote>Get CLISP</quote> on the &clisp;'s home + page points to &clisp; packages for all major &linux; and &bsd; + variants.</para> + <para>The only exception is &win32; for which there is no centralized + packager: <emphasis>usually</emphasis>, after each &clisp; release, + a &clisp; user <emphasis>volunteers</emphasis> to build a &win32; + binary package, which we then distribute at + <ulink url="http://sourceforge.net/project/showfiles.php?group_id=1355"/>. +</para></answer></qandaentry> <qandaentry id="faq-bin-distrib-prev"><question id="faq-bin-distrib-prev-q"> Index: cl-ent.xml =================================================================== RCS file: /cvsroot/clisp/clisp/doc/cl-ent.xml,v retrieving revision 1.126 retrieving revision 1.127 diff -u -d -r1.126 -r1.127 --- cl-ent.xml 22 Apr 2008 22:09:11 -0000 1.126 +++ cl-ent.xml 22 Apr 2008 22:38:24 -0000 1.127 @@ -104,8 +104,7 @@ <!ENTITY eff '<ulink url="http://www.eff.org">Electronic Frontier Foundation</ulink>'> <!ENTITY gnu '<ulink url="http://www.gnu.org">GNU</ulink>'> <!ENTITY sf '<ulink url="http://sourceforge.net">SourceForge</ulink>'> -<!ENTITY sf-cf '&sf; <ulink url="http://sourceforge.net/docs/compile_farm">CompileFarm</ulink>'> -<!ENTITY ggettext '&gnu; <ulink url="http://www.gnu.org/software/gettext/gettext.html">gettext</ulink>'> +<!ENTITY ggettext '&gnu; <ulink url="http://www.gnu.org/software/gettext/">gettext</ulink>'> <!ENTITY glibc '&gnu; <ulink url="http://www.gnu.org/software/libc/">libc</ulink>'> <!ENTITY libiconv '&gnu; <ulink url="http://www.gnu.org/software/libiconv/">libiconv</ulink>'> <!ENTITY libsigsegv '&gnu; <ulink url="http://libsigsegv.sourceforge.net/">libsigsegv</ulink>'> @@ -146,6 +145,7 @@ <!ENTITY ascii '<ulink url="http://en.wikipedia.org/wiki/ASCII"><emphasis role="platform">ASCII</emphasis></ulink>'> <!ENTITY atari '<ulink url="http://www.atari.org/"><emphasis role="platform">Atari</emphasis></ulink>'> <!ENTITY beos '<ulink url="http://www.bebits.com/app/2680"><emphasis role="platform">BeOS</emphasis></ulink>'> +<!ENTITY bsd '<ulink url="http://www.bsd.org/"><emphasis role="platform">*BSD</emphasis></ulink>'> <!ENTITY cygwin '<ulink url="http://cygwin.com/"><emphasis role="platform">Cygwin</emphasis></ulink>'> <!ENTITY dos '<ulink url="http://www.freedos.org/"><emphasis role="platform">DOS</emphasis></ulink>'> <!ENTITY gnome '<ulink url="http://www.gnome.org/"><emphasis role="platform">Gnome</emphasis></ulink>'> ------------------------------ Message: 4 Date: Wed, 23 Apr 2008 14:29:14 +0000 From: Sam Steingold <sd...@us...> Subject: clisp/doc Makefile,1.102,1.103 To: cli...@li... Message-ID: <E1J...@ma...> Update of /cvsroot/clisp/clisp/doc In directory sc8-pr-cvs4.sourceforge.net:/tmp/cvs-serv24889/doc Modified Files: Makefile Log Message: (count, search): go through $(CHECK_DEPS) too Index: Makefile =================================================================== RCS file: /cvsroot/clisp/clisp/doc/Makefile,v retrieving revision 1.102 retrieving revision 1.103 diff -u -d -r1.102 -r1.103 --- Makefile 10 Mar 2008 14:43:39 -0000 1.102 +++ Makefile 23 Apr 2008 14:29:12 -0000 1.103 @@ -220,7 +220,7 @@ $(RM) impnotes.xml impnotes.texi impnotes.html impnotes.pdf html \ clisp.xml clisp.html clisp.1 *.tdb $(CATALOG_FILE) impnotes.fo -count: $(IMPNOTES) +count: $(IMPNOTES) $(CHECK_DEPS) wc $^ DTD_DOWNLOAD=http://www.docbook.org/xml/$(DTDVER)/docbook-xml-$(DTDVER).zip @@ -235,6 +235,6 @@ SEARCH= search: force @if test -z "$(SEARCH)"; then echo "usage: make search SEARCH=string"; \ - else grep -n '$(SEARCH)' $(IMPNOTES); fi + else grep -n '$(SEARCH)' $(IMPNOTES) $(CHECK_DEPS); fi force: ------------------------------ Message: 5 Date: Wed, 23 Apr 2008 14:30:31 +0000 From: Sam Steingold <sd...@us...> Subject: clisp/doc wildcard.html,1.3,NONE To: cli...@li... Message-ID: <E1J...@ma...> Update of /cvsroot/clisp/clisp/doc In directory sc8-pr-cvs4.sourceforge.net:/tmp/cvs-serv25305/doc Removed Files: wildcard.html Log Message: remove the last vestiges of converting wildcard.texinfo (removed 2005/04/14) to wildcard.xml --- wildcard.html DELETED --- ------------------------------ Message: 6 Date: Wed, 23 Apr 2008 14:30:33 +0000 From: Sam Steingold <sd...@us...> Subject: clisp/modules/wildcard Makefile.in, 1.15, 1.16 wildcard.dvi, 1.1.1.1, NONE To: cli...@li... Message-ID: <E1J...@ma...> Update of /cvsroot/clisp/clisp/modules/wildcard In directory sc8-pr-cvs4.sourceforge.net:/tmp/cvs-serv25305/modules/wildcard Modified Files: Makefile.in Removed Files: wildcard.dvi Log Message: remove the last vestiges of converting wildcard.texinfo (removed 2005/04/14) to wildcard.xml Index: Makefile.in =================================================================== RCS file: /cvsroot/clisp/clisp/modules/wildcard/Makefile.in,v retrieving revision 1.15 retrieving revision 1.16 diff -u -d -r1.15 -r1.16 --- Makefile.in 26 Feb 2008 21:42:24 -0000 1.15 +++ Makefile.in 23 Apr 2008 14:30:31 -0000 1.16 @@ -13,7 +13,7 @@ SHELL = /bin/sh -DISTRIBFILES = wildcard.o link.sh Makefile README wildcard.lisp wildcard.xml wildcard.dvi +DISTRIBFILES = wildcard.o link.sh Makefile README wildcard.lisp wildcard.xml distribdir = all : wildcard.o wildcard.fas @@ -33,10 +33,8 @@ clean : force rm -f core *.o *.a - rm -f *.aux *.cp *.fn *.ky *.log *.pg *.toc *.tp *.vr distclean : clean - rm -f *.dvi force : --- wildcard.dvi DELETED --- ------------------------------ Message: 7 Date: Wed, 23 Apr 2008 14:31:09 +0000 From: Sam Steingold <sd...@us...> Subject: clisp/modules/regexp README,1.3,1.4 To: cli...@li... Message-ID: <E1J...@ma...> Update of /cvsroot/clisp/clisp/modules/regexp In directory sc8-pr-cvs4.sourceforge.net:/tmp/cvs-serv25499/modules/regexp Modified Files: README Log Message: updated: regexp is a base module Index: README =================================================================== RCS file: /cvsroot/clisp/clisp/modules/regexp/README,v retrieving revision 1.3 retrieving revision 1.4 diff -u -d -r1.3 -r1.4 --- README 15 Oct 2007 17:41:52 -0000 1.3 +++ README 23 Apr 2008 14:31:06 -0000 1.4 @@ -1,10 +1,4 @@ This directory contains a CLISP add-on module for regular expression matching and searching. -The library routines regex.[ch] come from the GNU gnulib. - -To use it, add "regexp" to MODULES in Makefile in your build directory -and type - $ make regexp && make full -there. -Try it with - $ ./clisp -K full +It relies on the system-wide regex implementation or GNU gnulib. +This is a "base" module, normally present in all CLISP linking sets. ------------------------------ Message: 8 Date: Wed, 23 Apr 2008 16:43:51 +0000 From: Sam Steingold <sd...@us...> Subject: clisp/modules/regexp regexp.xml,1.27,1.28 To: cli...@li... Message-ID: <E1J...@ma...> Update of /cvsroot/clisp/clisp/modules/regexp In directory sc8-pr-cvs4.sourceforge.net:/tmp/cvs-serv11197/modules/regexp Modified Files: regexp.xml Log Message: typo Index: regexp.xml =================================================================== RCS file: /cvsroot/clisp/clisp/modules/regexp/regexp.xml,v retrieving revision 1.27 retrieving revision 1.28 diff -u -d -r1.27 -r1.28 --- regexp.xml 16 Oct 2006 04:31:27 -0000 1.27 +++ regexp.xml 23 Apr 2008 16:43:49 -0000 1.28 @@ -4,7 +4,7 @@ <para>The ®exp-pac; module implements the <ulink url="regexp.html">POSIX regular expressions</ulink> -by calling the standard &c-lang; system facilities. +matching by calling the standard &c-lang; system facilities. The syntax of these ®-exp;s is described in many places, such as your local <filename role="unix">regex.h</filename> manual and &emacs; info pages.</para> @@ -112,7 +112,7 @@ </simpara></listitem></varlistentry> <varlistentry id="re-eflags"><term>&re-eflags-opts;</term> - <listitem><simpara>These options constrol execution of a pattern. + <listitem><simpara>These options control execution of a pattern. See <filename role="unix">regex.h</filename> for their meaning. </simpara></listitem></varlistentry> ------------------------------ Message: 9 Date: Wed, 23 Apr 2008 18:15:34 +0000 From: Sam Steingold <sd...@us...> Subject: clisp/doc Symbol-Table.text,1.15,1.16 To: cli...@li... Message-ID: <E1J...@ma...> Update of /cvsroot/clisp/clisp/doc In directory sc8-pr-cvs4.sourceforge.net:/tmp/cvs-serv13652/doc Modified Files: Symbol-Table.text Log Message: add FFI:FOREIGN-POINTER-INFO Index: Symbol-Table.text =================================================================== RCS file: /cvsroot/clisp/clisp/doc/Symbol-Table.text,v retrieving revision 1.15 retrieving revision 1.16 diff -u -d -r1.15 -r1.16 --- Symbol-Table.text 19 Feb 2008 17:23:55 -0000 1.15 +++ Symbol-Table.text 23 Apr 2008 18:15:21 -0000 1.16 @@ -826,6 +826,8 @@ ffi-extern-output FFI:*FOREIGN-GUARD* ffi-guard +FFI:FOREIGN-POINTER-INFO +fptr-info FFI:MEMORY-AS memory-as FFI:C-POINTER ------------------------------ Message: 10 Date: Wed, 23 Apr 2008 18:52:29 +0000 From: Sam Steingold <sd...@us...> Subject: clisp/src ChangeLog, 1.6131, 1.6132 comptran.d, 1.49, 1.50 realtran.d, 1.31, 1.32 To: cli...@li... Message-ID: <E1J...@ma...> Update of /cvsroot/clisp/clisp/src In directory sc8-pr-cvs4.sourceforge.net:/tmp/cvs-serv26848/src Modified Files: ChangeLog comptran.d realtran.d Log Message: followup to the 2008-04-08 patch which broke log for very small numbers * comptran.d (N_log_abs_R): avoid the log(1 + (x^2 + y^2 - 1)) trick for small numbers * realtran.d (ln2_F_float_F): use F_lnx1_F instead of F_lnx_F (F_lnx_F): move most of the calculation from R_ln1_R here (R_ln1_R): use either F_lnx1_F (small arg) or F_lnx_F (others) (R_ln_R): do not call R_ln1_R, call F_lnx_F directly Index: comptran.d =================================================================== RCS file: /cvsroot/clisp/clisp/src/comptran.d,v retrieving revision 1.49 retrieving revision 1.50 diff -u -d -r1.49 -r1.50 --- comptran.d 8 Apr 2008 22:41:28 -0000 1.49 +++ comptran.d 23 Apr 2008 18:52:26 -0000 1.50 @@ -106,13 +106,24 @@ pushSTACK(z); pushSTACK(R_abs_R(TheComplex(z)->c_real)); z = R_abs_R(TheComplex(STACK_1)->c_imag); - z = R_R_comp(z,STACK_0) < 0 - ? R_R_norm2_1_R(TheComplex(STACK_1)->c_real,TheComplex(STACK_1)->c_imag) - : R_R_norm2_1_R(TheComplex(STACK_1)->c_imag,TheComplex(STACK_1)->c_real); - if (R_R_equal(z,Fixnum_minus1)) - divide_0(); - z = R_ln1_R(z,end_p); /* log(1 + (x^2 + y^2 - 1)) */ - z = floatp(z) /* log(x^2 + y^2)/2 */ + if (R_R_comp(z,SF_two_thirds) < 0 && R_R_comp(STACK_0,SF_two_thirds) < 0) { + /* z is small ==> log(x^2 + y^2) */ + pushSTACK(R_square_R(z)); /* y^2 */ + STACK_1 = R_square_R(STACK_1); /* x^2 */ + z = R_R_plus_R(STACK_1,STACK_0); /* x^2 + y^2 */ + z = R_ln_R(z,end_p); /* log (x^2 + y^2) */ + skipSTACK(1); + } else { /* z is big => log(1 + (x^2 + y^2 - 1)) */ + z = R_R_comp(z,STACK_0) < 0 + ? R_R_norm2_1_R(TheComplex(STACK_1)->c_real, + TheComplex(STACK_1)->c_imag) + : R_R_norm2_1_R(TheComplex(STACK_1)->c_imag, + TheComplex(STACK_1)->c_real); + if (R_R_equal(z,Fixnum_minus1)) + divide_0(); + z = R_ln1_R(z,end_p); /* log(1 + (x^2 + y^2 - 1)) */ + } + z = floatp(z) /* log(x^2 + y^2)/2 */ ? F_I_scale_float_F(z,Fixnum_minus1) : RA_RA_div_RA(z,fixnum(2)); skipSTACK(2); Index: realtran.d =================================================================== RCS file: /cvsroot/clisp/clisp/src/realtran.d,v retrieving revision 1.31 retrieving revision 1.32 diff -u -d -r1.31 -r1.32 --- realtran.d 8 Apr 2008 22:41:28 -0000 1.31 +++ realtran.d 23 Apr 2008 18:52:27 -0000 1.32 @@ -661,7 +661,7 @@ if (R_zerop(x)) /* y=0.0 -> y as result */ return x; pushSTACK(x); pushSTACK(x); - STACK_1 = R_1_plus_R(x); /* x := (+ y 1) */ + STACK_1 = R_R_plus_R(x,Fixnum_1); /* x := (+ y 1) */ /* Stack layout: x, y. */ var uintL d = F_float_digits(STACK_0); var sintL e = F_exponent_L(STACK_0); @@ -701,8 +701,6 @@ skipSTACK(3); return F_I_scale_float_F(erg,k); /* because of recursion multiply with 2^k */ } -local inline maygc object F_lnx_F (object x) -{ return F_lnx1_F(R_minus1_plus_R(x)); } /* ln2_F_float_F(f) returns ln(2) as number in the same float-format as f. can trigger GC */ @@ -723,15 +721,40 @@ if (f_len == len) return ln2; } - /* wanted > given length -> must recalculate: */ - { + { /* wanted > given length -> must recalculate: */ var uintC len = lf_len_extend(f_len); /* need some more digits */ - var object temp = F_lnx_F(I_to_LF(fixnum(2),len,true)); /* (ln 2.0) */ + var object temp = F_lnx1_F(I_to_LF(Fixnum_1,len,true)); /* (ln 2.0) */ /* temp = ln(2) is finished. */ return O(LF_ln2) = LF_shorten_LF(temp,f_len); /* shorten, and store as LF_ln2 */ } } +/* short-float 2/3 */ +#define SF_two_thirds make_SF(0,0+SF_exp_mid,floor(bit(SF_mant_len+2),3)) + +/* F_lnx_F computes log(x) for x > 0 + by scaling close to 1 and then using ln2 and lnx1 above */ +local maygc object F_lnx_F (object x) +{ + F_decode_float_F_I_F(x); /* compute m,e,s */ + /* Stack layout: m, e, s. */ + if (F_F_comp(STACK_2,SF_two_thirds) < 0) { /* m < 2/3 -> */ + STACK_2 = F_I_scale_float_F(STACK_2,Fixnum_1); /* double m */ + STACK_1 = I_minus1_plus_I(STACK_1); /* decrement e */ + } + STACK_2 = F_lnx1_F(R_R_plus_R(STACK_2,Fixnum_minus1)); /* ln(m) in the more accurate float format */ + if (!eq(STACK_1,Fixnum_0)) { + x = ln2_F_float_F(STACK_0); /* ln(2) in that float format */ + x = R_R_mult_R(STACK_1,x); /* e*ln(2) */ + x = R_R_plus_R(STACK_2,x); /* ln(m)+e*ln(2) */ + } else + /* Avoid computing 0*ln(2) since it triggers a + warn_floating_point_rational_contagion() call. */ + x = STACK_2; + skipSTACK(3); + return x; +} + /* Extends a Long-Float length n, so that from d = intDsize*n it becomes at least d+sqrt(d)+2+(LF_exp_len-1). Generally: intDsize*n + sqrt(intDsize*n) + 2 + 31 < intDsize*(n+inc) @@ -775,6 +798,7 @@ ); } + /* R_ln1_R(x,&end_precision) returns for a real number x>-1 ln(x+1) as number. can trigger GC Method: @@ -787,42 +811,29 @@ ln(m) calculate, ln(x)=ln(m)+e*ln(2) as result. */ local maygc object R_ln1_R (object x, gcv_object_t* end_p) { - if (R_zerop(x)) return Fixnum_0; /* x=1 -> return 0 */ + if (eq(x,Fixnum_0)) return Fixnum_0; /* x=1 => return 0 */ if (R_rationalp(x)) x = RA_float_F(x); /* convert to float */ /* x -- float */ x = F_extend2_F(x); /* increase computational precision */ - var sintL e = F_exponent_L(x); - if (e < 0) { /* |x|<1/2 */ - x = F_lnx1_F(x); - if (end_p != NULL) /* (float ... x) */ - x = F_R_float_F(x,*end_p); - return x; - } - F_decode_float_F_I_F(R_1_plus_R(x)); /* compute m,e,s */ - /* Stack layout: m, e, s. */ - if (F_F_comp(STACK_2, - make_SF(0,0+SF_exp_mid,floor(bit(SF_mant_len+2),3))) /* short-float 2/3 */ - < 0) { /* m < 2/3 -> */ - STACK_2 = F_I_scale_float_F(STACK_2,Fixnum_1); /* double m */ - STACK_1 = I_minus1_plus_I(STACK_1); /* decrement e */ - } - STACK_2 = F_lnx_F(STACK_2); /* ln(m) in the more accurate float format */ - if (!eq(STACK_1,Fixnum_0)) { - x = ln2_F_float_F(STACK_0); /* ln(2) in that float format */ - x = R_R_mult_R(STACK_1,x); /* e*ln(2) */ - x = R_R_plus_R(STACK_2,x); /* ln(m)+e*ln(2) */ - } else - /* Avoid computing 0*ln(2) since it triggers a - warn_floating_point_rational_contagion() call. */ - x = STACK_2; + x = F_exponent_L(x) < 0 /* |x|<1/2 */ + ? F_lnx1_F(x) : F_lnx_F(R_R_plus_R(x,Fixnum_1)); if (end_p != NULL) /* (float ... x) */ x = F_R_float_F(x,*end_p); - skipSTACK(3); return x; } local inline maygc object R_ln_R (object x, gcv_object_t* end_p) -{ return R_ln1_R(R_minus1_plus_R(x),end_p); } +{ + if (eq(x,Fixnum_1)) return Fixnum_0; /* x=1 => return 0 */ + if (R_rationalp(x)) + x = RA_float_F(x); /* convert to float */ + /* x -- float */ + x = F_extend2_F(x); /* increase computational precision */ + x = F_lnx_F(x); + if (end_p != NULL) /* (float ... x) */ + x = F_R_float_F(x,*end_p); + return x; +} #define F_ln_F R_ln_R /* I_I_log_RA(a,b) returns for Integers a>0, b>1 the logarithm log(a,b) Index: ChangeLog =================================================================== RCS file: /cvsroot/clisp/clisp/src/ChangeLog,v retrieving revision 1.6131 retrieving revision 1.6132 diff -u -d -r1.6131 -r1.6132 --- ChangeLog 22 Apr 2008 18:24:47 -0000 1.6131 +++ ChangeLog 23 Apr 2008 18:52:25 -0000 1.6132 @@ -1,3 +1,13 @@ +2008-04-23 Sam Steingold <sd...@gn...> + + followup to the 2008-04-08 patch which broke log for very small numbers + * comptran.d (N_log_abs_R): avoid the log(1 + (x^2 + y^2 - 1)) + trick for small numbers + * realtran.d (ln2_F_float_F): use F_lnx1_F instead of F_lnx_F + (F_lnx_F): move most of the calculation from R_ln1_R here + (R_ln1_R): use either F_lnx1_F (small arg) or F_lnx_F (others) + (R_ln_R): do not call R_ln1_R, call F_lnx_F directly + 2008-04-22 Sam Steingold <sd...@gn...> * makemake.in (installdirs, install-bin, uninstall): pass DESTDIR @@ -529,7 +539,7 @@ * eval.d (FUNTAB): add check_function_name, typep_class, defined_class_p, proper_list_p, pcompiled_function_p, make_macro, macrop, macro_expander, symbol_macro_p, standard_instance_access, - set_standard_instance_access, encodingp; + set_standard_instance_access, encodingp (FUNTABR): add mapcap * constobj.d (version): bump @@ -661,7 +671,7 @@ 2008-02-24 Bruno Haible <br...@cl...> - Fix [ 1836142 ] part 2. + fix bug #[ 1836142 ] part 2. * lispbibl.d (STACK_register, mv_count_register, value1_register) (back_trace_register): Don't define for gcc-4.2 and newer when USE_GCC_REGISTER_VARIABLES is not defined. @@ -673,7 +683,7 @@ 2008-02-23 Bruno Haible <br...@cl...> - Fix [ 1836142 ] part 1. + fix bug #[ 1836142 ] part 1. * floatparam.c (check): Change argument types to 'volatile type*'. This defeats optimizations of gcc 4.3.0 snapshots. ------------------------------ ------------------------------------------------------------------------- This SF.net email is sponsored by the 2008 JavaOne(SM) Conference Don't miss this year's exciting event. There's still time to save $100. Use priority code J8TL2D2. http://ad.doubleclick.net/clk;198757673;13503038;p?http://java.sun.com/javaone ------------------------------ _______________________________________________ clisp-cvs mailing list cli...@li... https://lists.sourceforge.net/lists/listinfo/clisp-cvs End of clisp-cvs Digest, Vol 24, Issue 20 ***************************************** |