From: <cli...@li...> - 2010-06-03 12:04:24
|
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/modules/pari pari.lisp, 1.59, 1.60 pari.xml, 1.10, 1.11 test.tst, 1.24, 1.25 (Sam Steingold) 2. clisp/src ChangeLog,1.7386,1.7387 (Sam Steingold) 3. clisp/src NEWS,1.530,1.531 TODO,1.156,1.157 (Sam Steingold) ---------------------------------------------------------------------- Message: 1 Date: Wed, 02 Jun 2010 22:40:15 +0000 From: Sam Steingold <sd...@us...> Subject: clisp/modules/pari pari.lisp, 1.59, 1.60 pari.xml, 1.10, 1.11 test.tst, 1.24, 1.25 To: cli...@li... Message-ID: <E1O...@sf...> Update of /cvsroot/clisp/clisp/modules/pari In directory sfp-cvsdas-2.v30.ch3.sourceforge.com:/tmp/cvs-serv27836/modules/pari Modified Files: pari.lisp pari.xml test.tst Log Message: (pari-real-precision-words): add a function on top of a variable (pari-call-out-prec): prec is specified in number of decimals Index: pari.xml =================================================================== RCS file: /cvsroot/clisp/clisp/modules/pari/pari.xml,v retrieving revision 1.10 retrieving revision 1.11 diff -u -d -r1.10 -r1.11 --- pari.xml 2 Jun 2010 20:00:53 -0000 1.10 +++ pari.xml 2 Jun 2010 22:40:13 -0000 1.11 @@ -39,19 +39,17 @@ which specifies the default precision in decimal digits: <programlisting language="lisp"> pari:pari-real-precision -<computeroutput>327</computeroutput> +<computeroutput>19</computeroutput> (&length; (&prin1-to-string; (pari:pari-to-lisp (pari:pari-pi)))) -<computeroutput>331</computeroutput> +<computeroutput>23</computeroutput> </programlisting> -One can also pass the precision parameter explicitly, specifying the number of -<type>ffi:ulong</type> words which the resulting PARI number should occupy: +One can also pass the precision parameter explicitly: <programlisting language="lisp"> -(&length; (&prin1-to-string; (pari:pari-to-lisp (pari:pari-pi :prec 40)))) -<computeroutput>735</computeroutput><lineannotation>on 64-bit platforms</lineannotation> -<computeroutput>368</computeroutput><lineannotation>on 32-bit platforms</lineannotation> -(pari:pari-real-precision 40) -<computeroutput>732</computeroutput><lineannotation>on 64-bit platforms</lineannotation> -<computeroutput>366</computeroutput><lineannotation>on 32-bit platforms</lineannotation> -</programlisting></para> +(&length; (&prin1-to-string; (pari:pari-to-lisp (pari:pari-pi :prec 38)))) +<computeroutput>41</computeroutput> +</programlisting> +Note that the <emphasis>actual</emphasis> precision is determined by the +size of the mantissa which can be incremented only in steps of +<code>(&bitsizeof; 'ffi:ulong)</code> (64 bits or 32 bits).</para> </simplesect> </section> Index: test.tst =================================================================== RCS file: /cvsroot/clisp/clisp/modules/pari/test.tst,v retrieving revision 1.24 retrieving revision 1.25 diff -u -d -r1.24 -r1.25 --- test.tst 2 Jun 2010 20:00:53 -0000 1.24 +++ test.tst 2 Jun 2010 22:40:13 -0000 1.25 @@ -70,10 +70,10 @@ (pari:equal? (pari:best-rational-approximation (pari:pari-pi) #Z"10000") #Z"355/113") T (pari:equal? (pari:continued-fraction #Z"355/113") #Z"[3,7,16]") T -(subseq (pari:pari-to-lisp (pari:continued-fraction (pari:pari-pi))) 0 6) -#(:ROW 3 7 15 1 292) -(subseq (pari:pari-to-lisp (pari:continued-fraction (pari:euler))) 0 30) -#(:ROW 0 1 1 2 1 2 1 4 3 13 5 1 1 8 1 2 4 1 1 40 1 11 3 7 1 7 1 1 5) +(pari:pari-to-lisp (pari:continued-fraction (pari:pari-pi))) +#(:ROW 3 7 15 1 292 1 1 1 2 1 3 1 14 2 1 1 2 2) +(pari:pari-to-lisp (pari:continued-fraction (pari:euler))) +#(:ROW 0 1 1 2 1 2 1 4 3 13 5 1 1 8 1 2 4 1 1 41) (pari:pari-to-lisp (pari:continued-fraction (exp 1l0))) #(:ROW 2 1 2 1 1 4 1 1 6 1 1 8 1 1 10 1 1 12 1 1 14 2) @@ -288,14 +288,16 @@ (pari:pari-to-lisp (pari:vector-sort-key #(#(1 10) #(2 40) #(3 30) #(4 20)) 2)) #(:ROW #(:ROW 1 10) #(:ROW 4 20) #(:ROW 3 30) #(:ROW 2 40)) -(pari:precision (pari:pari-pi)) 19 -(loop :for n :from 5 :to 50 +pari:pari-real-precision 19 +(length (prin1-to-string (pari:pari-to-lisp (pari:pari-pi)))) 23 +(length (prin1-to-string (pari:pari-to-lisp (pari:pari-pi :prec 38)))) 41 +(loop :for n :from 3 :to 50 :unless (= (- n 2) (length (pari::pari-mantissa (pari::%pari-pi n)))) :collect n) () -(loop :for n :from 5 :to 50 +(loop :for n :from 3 :to 50 :for mypi0 = (pari:pari-to-lisp (pari:pari-pi :prec n)) :for mypi1 = (pari::convert-from-pari (pari::convert-to-pari mypi0)) :unless (= mypi0 mypi1) :collect (list n mypi0 mypi1)) () - +(= pi (pari:pari-to-lisp (pari:pari-pi))) T Index: pari.lisp =================================================================== RCS file: /cvsroot/clisp/clisp/modules/pari/pari.lisp,v retrieving revision 1.59 retrieving revision 1.60 diff -u -d -r1.59 -r1.60 --- pari.lisp 2 Jun 2010 20:00:53 -0000 1.59 +++ pari.lisp 2 Jun 2010 22:40:13 -0000 1.60 @@ -117,11 +117,12 @@ (defun bits2digits (bits) (values (floor (* #.(log 2 10) bits)))) (defun digits2bits (digits) (values (ceiling (* #.(log 10 2) digits)))) (defvar pari-real-precision-words - (bits2digits (ext:long-float-digits)) + (+ 2 (ceiling (ext:long-float-digits) #,(bitsizeof 'ulong))) "The default precision argument for PARI functions which accept it. This is always equal to (+ 2 (length (pari-mantissa (%foo PRPD)))), t.e., this is the memory size for the real return value in ulong words.") - +(defun pari-real-precision-words (digits) + (+ 2 (ceiling (digits2bits digits) #,(bitsizeof 'ulong)))) (defun pari-real-precision (&optional (words pari-real-precision-words)) "The real PARI precision in decimal digits." (bits2digits (* #,(bitsizeof 'ulong) (- words 2)))) @@ -268,8 +269,14 @@ ((1 2) (list (first arg))) ((3 4) (if (eq (third arg) :out) '() (list (first arg)))) (t `(,@(if flag '() (progn (setq flag t) '(&key))) - (,(first arg) ,(fifth arg))))))) + (,(first arg) ,(fifth arg) + ,@(and (sixth arg) `(,(sixth arg))))))))) args))) + (defun arg-preprocessing (args) + (mapcan (lambda (arg) + (let ((p (and (consp arg) (seventh arg)))) + (and p (list p)))) + args)) (defun convert-to-arglist (args) (mapcan #'(lambda (arg) (if (symbolp arg) @@ -300,6 +307,7 @@ `(progn (export ',name) (defun ,name ,(convert-to-lambdalist args) + ,@(arg-preprocessing args) ,(case type (pari-gen `(make-internal-pari-object @@ -314,6 +322,7 @@ `(progn (export ',name) (defun ,name ,(convert-to-lambdalist args) + ,@(arg-preprocessing args) (multiple-value-bind ,temp-vars (,pari-name ,@(convert-to-arglist args)) (values @@ -379,7 +388,9 @@ ;;; provides a keyword argument prec defaulting to pari-real-precision-words. (defmacro pari-call-out-prec (fun lib-name args &optional (gp-name lib-name)) `(pari-call-out ,fun ,lib-name - (,@args (prec long :in :none pari-real-precision-words)) ,gp-name)) + (,@args (prec long :in :none pari-real-precision-words prec-p + (when prec-p (setq prec (pari-real-precision-words prec))))) + ,gp-name)) ;;; /* alglin.c */ ------------------------------ Message: 2 Date: Wed, 02 Jun 2010 22:40:15 +0000 From: Sam Steingold <sd...@us...> Subject: clisp/src ChangeLog,1.7386,1.7387 To: cli...@li... Message-ID: <E1O...@sf...> Update of /cvsroot/clisp/clisp/src In directory sfp-cvsdas-2.v30.ch3.sourceforge.com:/tmp/cvs-serv27836/src Modified Files: ChangeLog Log Message: (pari-real-precision-words): add a function on top of a variable (pari-call-out-prec): prec is specified in number of decimals Index: ChangeLog =================================================================== RCS file: /cvsroot/clisp/clisp/src/ChangeLog,v retrieving revision 1.7386 retrieving revision 1.7387 diff -u -d -r1.7386 -r1.7387 --- ChangeLog 2 Jun 2010 20:00:53 -0000 1.7386 +++ ChangeLog 2 Jun 2010 22:40:13 -0000 1.7387 @@ -4,6 +4,8 @@ (variable-order): add (call reorder) (euler): remove DEFINE-SYMBOL-MACRO (pari-real-precision): re-add function, setf, and symbol-macro + (pari-real-precision-words): add a function on top of a variable + (pari-call-out-prec): prec is specified in number of decimals 2010-06-01 Sam Steingold <sd...@gn...> ------------------------------ Message: 3 Date: Wed, 02 Jun 2010 22:42:27 +0000 From: Sam Steingold <sd...@us...> Subject: clisp/src NEWS,1.530,1.531 TODO,1.156,1.157 To: cli...@li... Message-ID: <E1O...@sf...> Update of /cvsroot/clisp/clisp/src In directory sfp-cvsdas-2.v30.ch3.sourceforge.com:/tmp/cvs-serv28356/src Modified Files: NEWS TODO Log Message: PARI is now ready for prime time Index: NEWS =================================================================== RCS file: /cvsroot/clisp/clisp/src/NEWS,v retrieving revision 1.530 retrieving revision 1.531 diff -u -d -r1.530 -r1.531 --- NEWS 1 Jun 2010 21:23:59 -0000 1.530 +++ NEWS 2 Jun 2010 22:42:25 -0000 1.531 @@ -45,6 +45,10 @@ (Older versions are, of course, still supported). See <http://clisp.cons.org/impnotes/postgresql.html> for details. +* Module pari has been updated to support both 64 & 32 bit platforms + with and without GMP. + See <http://clisp.cons.org/impnotes/pari.html> for details. + * Bug fixes: + Do not eliminate function calls which are advertised to have exceptional situation in unsafe code (bug#2868166). Index: TODO =================================================================== RCS file: /cvsroot/clisp/clisp/src/TODO,v retrieving revision 1.156 retrieving revision 1.157 diff -u -d -r1.156 -r1.157 --- TODO 25 May 2010 22:44:11 -0000 1.156 +++ TODO 2 Jun 2010 22:42:25 -0000 1.157 @@ -54,10 +54,6 @@ Embeddability: additional API in spvw.d; example. RFE#423264 -Update PARI module: -Many functions have been added since the module has been written. - - nested REQUIRE is broken <http://article.gmane.org/gmane.lisp.clisp.devel:13691>: suppose I have a library which consists of 10 files - which create ------------------------------ ------------------------------------------------------------------------------ ThinkGeek and WIRED's GeekDad team up for the Ultimate GeekDad Father's Day Giveaway. ONE MASSIVE PRIZE to the lucky parental unit. See the prize list and enter to win: http://p.sf.net/sfu/thinkgeek-promo ------------------------------ _______________________________________________ clisp-cvs mailing list cli...@li... https://lists.sourceforge.net/lists/listinfo/clisp-cvs End of clisp-cvs Digest, Vol 50, Issue 4 **************************************** |