;;; -*- Mode:LISP; Package:USER; Readtable:ZL; Base:10 -*-

(defvar bigarray nil)

(defvar bigfile "lm:temp;big-array.qfasl")

(defun makebig()
  (setq bigarray
	(make-array '(2. 90000.)
		    :type 'art-q)))

(defmacro inbig(&body body)
  `(loop for i from 0 to 1
	do
	(loop for j from 0 to 89999
	      do ,@body)))




(defun fillbig()
  (inbig
    (setf (aref bigarray i j)
	  (+ j (* i 9.23)))))

(defun checkbig()
  (inbig
    (unless
      (equal (aref bigarray i j)
	     (+ j (* i 9.23)))
      (format t "~&Elt. ~s ~s bashed to ~s"
	      i j (aref bigarray i j)))))

(defun savebig()
  (compiler:fasd-symbol-value
    bigfile 'bigarray))

(defun testbig()
  (format t "~&Making...") (makebig)
  (format t "Filling...")  (fillbig)
  (format t "Checking...") (checkbig)
  (format t "Saving...")   (savebig)
  (setq bigarray nil)
  (format t "Loading...")  (load bigfile)
  (format t "Checking...") (checkbig))