[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

*To*: saxena@cs.albany.edu*Subject*: Arbitrary Precision Arithmetic Package for Common Lisp*From*: Robert S. Boyer <boyer@CLI.COM>*Date*: Wed, 23 Sep 92 10:03:29 CDT*Cc*: kcl@cli.com*Reply-to*: boyer@cli.com

I suspect that the problem being reported with (expt 2 40000) is one of printing it, not with constructing it. I found it necessary to increase the stacks, e.g., (setq si::*multiply-stacks* 4), to print (expt 2 40000) in AKCL 1-615 on a Sun-3. Here are some relevant entries in AKCL 1-615 doc/DOC. *MULTIPLY-STACKS* Variable in SI package: If this variable is set to a positive fixnum, then the next time through the TOP-LEVEL loop, the loop will be exited. The size of the stacks will be multiplied by the value of *multiply-stacks*, and the TOP-LEVEL will be called again. Thus to double the size of the stacks: >(setq si::*multiply-stacks* 2) [exits top level and reinvokes it, with the new stacks in place] > We must exit TOP-LEVEL, because it and any other lisp functions maintain many pointers into the stacks, which would be incorrect when the stacks have been moved. Interrupting the process of growing the stacks, can leave you in an inconsistent state. MULTIPLY-BIGNUM-STACK Function in the SI package: Args: (n) Increase the internal bignum stack by a factor of N. Normally space on this stack is recovered after each complete lisp expression is evaluated. However if you are dealing with large integers, you may need to use this function to increase the stack.

**Follow-Ups**:**Re: Arbitrary Precision Arithmetic Package for Common Lisp***From:*wfs@nicolas.ma.utexas.edu (Bill Schelter)

- Prev by Date:
**Re: Arbitrary Precision Arithmetic Package for Common Lisp** - Next by Date:
**Re: Arbitrary Precision Arithmetic Package for Common Lisp** - Previous by thread:
**Re: Arbitrary Precision Arithmetic Package for Common Lisp** - Next by thread:
**Re: Arbitrary Precision Arithmetic Package for Common Lisp** - Index(es):