home *** CD-ROM | disk | FTP | other *** search
/ Enter 2004 January / enter-2004-01.iso / files / maxima-5.9.0.exe / {app} / share / maxima / 5.9.0 / src / inmis.lisp < prev    next >
Encoding:
Text File  |  2003-02-09  |  3.6 KB  |  106 lines

  1. ;;; -*-  Mode: Lisp; Package: Maxima; Syntax: Common-Lisp; Base: 10 -*- ;;;;
  2. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  3. ;;;     The data in this file contains enhancments.                    ;;;;;
  4. ;;;                                                                    ;;;;;
  5. ;;;  Copyright (c) 1984,1987 by William Schelter,University of Texas   ;;;;;
  6. ;;;     All rights reserved                                            ;;;;;
  7. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  8. ;;;  (c) Copyright 1976, 1983 Massachusetts Institute of Technology      ;;;
  9. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  10.  
  11. (in-package "MAXIMA")
  12. (macsyma-module inmis)
  13.  
  14. (DECLARE-TOP (SPECIAL LISTOFVARS))
  15.  
  16. (DEFMVAR $LISTCONSTVARS NIL
  17.   "Causes LISTOFVARS to include %E, %PI, %I, and any variables declared
  18.    constant in the list it returns if they appear in exp.  The default is
  19.    to omit these." BOOLEAN SEE-ALSO $LISTOFVARS)
  20.  
  21. (DEFMVAR $LISTDUMMYVARS T)
  22.  
  23. (DEFMVAR $POLYFACTOR NIL)
  24.  
  25. (DEFMFUN $UNKNOWN (F) (CATCH 'unknown (UNKNOWN (SPECREPCHECK F))))
  26.  
  27. (DEFUN UNKNOWN (F)
  28.   (AND (NOT (MAPATOM F))
  29.        (COND ((AND (EQ (CAAR F) 'MQAPPLY)
  30.            (NOT (OLDGET (CAAADR F) 'SPECSIMP)))
  31.           (THROW 'unknown T))
  32.          ((NOT (OLDGET (CAAR F) 'OPERATORS)) (THROW 'unknown T))
  33.          (T (MAPC #'UNKNOWN (CDR F)) NIL))))
  34.  
  35. (DEFMFUN $LISTOFVARS (E) 
  36.   (LET ((LISTOFVARS (NCONS '(MLIST))))
  37.     (WHEN ($RATP E)
  38.       (AND (MEMQ 'TRUNC (CDDAR E)) (SETQ E ($TAYTORAT E)))
  39.       (SETQ E (CONS '(MLIST)
  40.             (SUBLIS (MAPCAR #'CONS
  41.                     (CAR (CDDDAR E))
  42.                     ;; GENSYMLIST
  43.                     (CADDAR E))
  44.                 ;; VARLIST
  45.                 (UNION* (LISTOVARS (CADR E))
  46.                     (LISTOVARS (CDDR E)))))))
  47.     (ATOMVARS E)
  48.     (IF (NOT $LISTDUMMYVARS)
  49.     (DOLIST (U (CDR LISTOFVARS))
  50.       (IF (FREEOF U E) (zl-DELETE U LISTOFVARS 1))))
  51.     LISTOFVARS))
  52.  
  53. (DEFUN ATOMVARS (E) 
  54.   (COND ((AND (SYMBOLP E) (OR $LISTCONSTVARS (NOT ($CONSTANTP E))))
  55.      (ADD2LNC E LISTOFVARS))
  56.     ((ATOM E))
  57.     ((SPECREPP E) (ATOMVARS (SPECDISREP E)))
  58.     ((MEMQ 'array (CAR E)) (MYADD2LNC E LISTOFVARS))
  59.     (T (MAPC #'ATOMVARS (MARGS E))))) 
  60.  
  61. (DEFUN MYADD2LNC (ITEM LIST) 
  62.   (AND (NOT (MEMALIKE ITEM LIST)) (NCONC LIST (NCONS ITEM)))) 
  63.  
  64. ;; Reset the settings of all Macsyma user-level switches to their initial
  65. ;; values.
  66.  
  67. #+ITS
  68. (DEFMFUN $RESET NIL (LOAD '((DSK MACSYM) RESET FASL)) '$DONE)
  69.  
  70. #+Multics
  71. (DEFMFUN $RESET () (LOAD (EXECUTABLE-DIR "RESET")) '$DONE)
  72.  
  73. #+NIL
  74. (DEFMFUN $RESET ()
  75.   (LOAD "MAX$DISK:[MAXDMP]RESET" :set-default-pathname nil))
  76.  
  77. ;; Please do not use the following version on MC without consulting with me.
  78. ;; I already fixed several bugs in it, but the +ITS version works fine on MC 
  79. ;; and takes less address space. - JPG
  80. (DECLARE-TOP(SPECIAL MODULUS $FPPREC))
  81. #-(or cl ITS Multics NIL) ;This version should be eventually used on Multics.
  82. (DEFMFUN $RESET ()
  83.     (SETQ *print-base* 10. *read-base* 10. ; *NOPOINT T
  84.           MODULUS NIL
  85.           ;ZUNDERFLOW T
  86.           )
  87.     ($DEBUGMODE NIL)
  88.     (COND ((NOT (= $FPPREC 16.)) ($FPPREC 16.) (SETQ $FPPREC 16.))) 
  89.    #+GC ($DSKGC NIL)
  90.     (LOAD #+PDP10   '((ALJABR) INIT RESET)
  91.           #+Lispm   "MACSYMA-OBJECT:ALJABR;INIT"
  92.           #+Multics (executable-dir "init_reset")
  93.           #+Franz    (concat vaxima-main-dir "//aljabr//reset"))
  94.     ;; *** This can be flushed when all Macsyma user-switches are defined
  95.     ;; *** with DEFMVAR.  This is part of an older mechanism.
  96.  #+PDP10 (LOAD '((MACSYM) RESET FASL))
  97.     '$DONE)
  98.  
  99. (defmfun $reset ()
  100.   (setq *print-base* 10.)
  101.   (setq *read-base* 10.)
  102.   (maphash #'(lambda (key val)
  103.            (format t "Resetting ~S to ~S~%" key val)
  104.            (setf (symbol-value key) val))
  105.        *variable-initial-values*))
  106.