[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Emacs-diffs] Changes to emacs/lisp/calc/calc-graph.el
From: |
Jay Belanger |
Subject: |
[Emacs-diffs] Changes to emacs/lisp/calc/calc-graph.el |
Date: |
Fri, 12 Nov 2004 17:37:12 -0500 |
Index: emacs/lisp/calc/calc-graph.el
diff -c emacs/lisp/calc/calc-graph.el:1.12 emacs/lisp/calc/calc-graph.el:1.13
*** emacs/lisp/calc/calc-graph.el:1.12 Thu Oct 21 15:40:18 2004
--- emacs/lisp/calc/calc-graph.el Fri Nov 12 22:31:12 2004
***************
*** 66,71 ****
--- 66,72 ----
(defvar calc-graph-data-cache-limit 10)
(defvar calc-graph-no-auto-view nil)
(defvar calc-graph-no-wait nil)
+ (defvar calc-gnuplot-trail-mark)
(defun calc-graph-fast (many)
(interactive "P")
***************
*** 224,234 ****
thing
(let ((found (assoc thing calc-graph-var-cache)))
(or found
! (progn
! (setq varname (concat "PlotData"
! (int-to-string
! (1+ (length calc-graph-var-cache))))
! var (list 'var (intern varname)
(intern (concat "var-" varname)))
found (cons thing var)
calc-graph-var-cache (cons found calc-graph-var-cache))
--- 225,234 ----
thing
(let ((found (assoc thing calc-graph-var-cache)))
(or found
! (let ((varname (concat "PlotData"
! (int-to-string
! (1+ (length calc-graph-var-cache))))))
! (setq var (list 'var (intern varname)
(intern (concat "var-" varname)))
found (cons thing var)
calc-graph-var-cache (cons found calc-graph-var-cache))
***************
*** 275,280 ****
--- 275,321 ----
(interactive "P")
(calc-graph-plot flag t))
+ (defvar var-DUMMY)
+ (defvar var-DUMMY2)
+ (defvar var-PlotRejects)
+
+ ;; The following variables are local to calc-graph-plot, but are
+ ;; used in the functions calc-graph-compute-2d, calc-graph-refine-2d,
+ ;; calc-graph-recompute-2d, calc-graph-compute-3d and
+ ;; calc-graph-format-data, which are called by calc-graph-plot.
+ (defvar calc-graph-yvalue)
+ (defvar calc-graph-yvec)
+ (defvar calc-graph-numsteps)
+ (defvar calc-graph-numsteps3)
+ (defvar calc-graph-xvalue)
+ (defvar calc-graph-xvec)
+ (defvar calc-graph-xname)
+ (defvar calc-graph-yname)
+ (defvar calc-graph-xstep)
+ (defvar calc-graph-ycache)
+ (defvar calc-graph-ycacheptr)
+ (defvar calc-graph-refine)
+ (defvar calc-graph-keep-file)
+ (defvar calc-graph-xval)
+ (defvar calc-graph-xlow)
+ (defvar calc-graph-xhigh)
+ (defvar calc-graph-yval)
+ (defvar calc-graph-yp)
+ (defvar calc-graph-xp)
+ (defvar calc-graph-zp)
+ (defvar calc-graph-yvector)
+ (defvar calc-graph-resolution)
+ (defvar calc-graph-y3value)
+ (defvar calc-graph-y3name)
+ (defvar calc-graph-y3step)
+ (defvar calc-graph-zval)
+ (defvar calc-graph-stepcount)
+ (defvar calc-graph-is-splot)
+ (defvar calc-graph-surprise-splot)
+ (defvar calc-graph-blank)
+ (defvar calc-graph-non-blank)
+ (defvar calc-graph-curve-num)
+
(defun calc-graph-plot (flag &optional printing)
(interactive "P")
(calc-slow-wrapper
***************
*** 282,303 ****
(tempbuf (get-buffer-create "*Gnuplot Temp-2*"))
(tempbuftop 1)
(tempoutfile nil)
! (curve-num 0)
! (refine (and flag (> (prefix-numeric-value flag) 0)))
(recompute (and flag (< (prefix-numeric-value flag) 0)))
! (surprise-splot nil)
(tty-output nil)
! cache-env is-splot device output resolution precision samples-pos)
! (or (boundp 'calc-graph-prev-kill-hook)
! (setq calc-graph-prev-kill-hook nil)
! (add-hook 'kill-emacs-hook 'calc-graph-kill-hook))
(save-excursion
(calc-graph-init)
(set-buffer tempbuf)
(erase-buffer)
(set-buffer calc-gnuplot-input)
(goto-char (point-min))
! (setq is-splot (re-search-forward "^splot[ \t]" nil t))
(let ((str (buffer-string))
(ver calc-gnuplot-version))
(set-buffer (get-buffer-create "*Gnuplot Temp*"))
--- 323,342 ----
(tempbuf (get-buffer-create "*Gnuplot Temp-2*"))
(tempbuftop 1)
(tempoutfile nil)
! (calc-graph-curve-num 0)
! (calc-graph-refine (and flag (> (prefix-numeric-value flag) 0)))
(recompute (and flag (< (prefix-numeric-value flag) 0)))
! (calc-graph-surprise-splot nil)
(tty-output nil)
! cache-env calc-graph-is-splot device output calc-graph-resolution
precision samples-pos)
! (add-hook 'kill-emacs-hook 'calc-graph-kill-hook)
(save-excursion
(calc-graph-init)
(set-buffer tempbuf)
(erase-buffer)
(set-buffer calc-gnuplot-input)
(goto-char (point-min))
! (setq calc-graph-is-splot (re-search-forward "^splot[ \t]" nil t))
(let ((str (buffer-string))
(ver calc-gnuplot-version))
(set-buffer (get-buffer-create "*Gnuplot Temp*"))
***************
*** 313,326 ****
"set nogrid\nset nokey\nset nopolar\n"))
(if (>= ver 3)
(insert "set surface\nset nocontour\n"
! "set " (if is-splot "" "no") "parametric\n"
"set notime\nset border\nset ztics\nset zeroaxis\n"
"set view 60,30,1,1\nset offsets 0,0,0,0\n"))
(setq samples-pos (point))
(insert "\n\n" str))
(goto-char (point-min))
! (if is-splot
! (if refine
(error "This option works only for 2d plots")
(setq recompute t)))
(let ((calc-gnuplot-input (current-buffer))
--- 352,365 ----
"set nogrid\nset nokey\nset nopolar\n"))
(if (>= ver 3)
(insert "set surface\nset nocontour\n"
! "set " (if calc-graph-is-splot "" "no") "parametric\n"
"set notime\nset border\nset ztics\nset zeroaxis\n"
"set view 60,30,1,1\nset offsets 0,0,0,0\n"))
(setq samples-pos (point))
(insert "\n\n" str))
(goto-char (point-min))
! (if calc-graph-is-splot
! (if calc-graph-refine
(error "This option works only for 2d plots")
(setq recompute t)))
(let ((calc-gnuplot-input (current-buffer))
***************
*** 366,375 ****
(if (equal output "STDOUT")
""
(prin1-to-string output)))))
! (setq resolution (calc-graph-find-command "samples"))
! (if resolution
! (setq resolution (string-to-int resolution))
! (setq resolution (if is-splot
calc-graph-default-resolution-3d
calc-graph-default-resolution)))
(setq precision (calc-graph-find-command "precision"))
--- 405,414 ----
(if (equal output "STDOUT")
""
(prin1-to-string output)))))
! (setq calc-graph-resolution (calc-graph-find-command "samples"))
! (if calc-graph-resolution
! (setq calc-graph-resolution (string-to-int calc-graph-resolution))
! (setq calc-graph-resolution (if calc-graph-is-splot
calc-graph-default-resolution-3d
calc-graph-default-resolution)))
(setq precision (calc-graph-find-command "precision"))
***************
*** 381,388 ****
(calc-graph-set-command "samples")
(calc-graph-set-command "precision"))
(goto-char samples-pos)
! (insert "set samples " (int-to-string (max (if is-splot 20 200)
! (+ 5 resolution))) "\n")
(while (re-search-forward "{\\*[^}]+}[^,\n]*" nil t)
(delete-region (match-beginning 0) (match-end 0))
(if (looking-at ",")
--- 420,427 ----
(calc-graph-set-command "samples")
(calc-graph-set-command "precision"))
(goto-char samples-pos)
! (insert "set samples " (int-to-string (max (if calc-graph-is-splot 20
200)
! (+ 5 calc-graph-resolution)))
"\n")
(while (re-search-forward "{\\*[^}]+}[^,\n]*" nil t)
(delete-region (match-beginning 0) (match-end 0))
(if (looking-at ",")
***************
*** 398,404 ****
calc-simplify-mode
calc-infinite-mode
calc-word-size
! precision is-splot))
(if (and (not recompute)
(equal (cdr (car calc-graph-data-cache)) cache-env))
(while (> (length calc-graph-data-cache)
--- 437,443 ----
calc-simplify-mode
calc-infinite-mode
calc-word-size
! precision calc-graph-is-splot))
(if (and (not recompute)
(equal (cdr (car calc-graph-data-cache)) cache-env))
(while (> (length calc-graph-data-cache)
***************
*** 408,495 ****
(setq calc-graph-data-cache (list (cons nil cache-env)))))
(calc-graph-find-plot t t)
(while (re-search-forward
! (if is-splot
"{\\([^{}:\n]+\\):\\([^{}:\n]+\\):\\([^{}:\n]+\\)}"
"{\\([^{}:\n]+\\)\\(:\\)\\([^{}:\n]+\\)}")
nil t)
! (setq curve-num (1+ curve-num))
! (let* ((xname (buffer-substring (match-beginning 1) (match-end 1)))
! (xvar (intern (concat "var-" xname)))
! (xvalue (math-evaluate-expr (calc-var-value xvar)))
! (y3name (and is-splot
(buffer-substring (match-beginning 2)
(match-end 2))))
! (y3var (and is-splot (intern (concat "var-" y3name))))
! (y3value (and is-splot (calc-var-value y3var)))
! (yname (buffer-substring (match-beginning 3) (match-end 3)))
! (yvar (intern (concat "var-" yname)))
! (yvalue (calc-var-value yvar))
filename)
(delete-region (match-beginning 0) (match-end 0))
! (setq filename (calc-temp-file-name curve-num))
(save-excursion
(set-buffer calcbuf)
(let (tempbuftop
! (xp xvalue)
! (yp yvalue)
! (zp nil)
! (xlow nil) (xhigh nil) (y3low nil) (y3high nil)
! xvec xval xstep var-DUMMY
! y3vec y3val y3step var-DUMMY2 (zval nil)
! yvec yval ycache ycacheptr yvector
! numsteps numsteps3
! (keep-file (and (not is-splot) (file-exists-p filename)))
! (stepcount 0)
(calc-symbolic-mode nil)
(calc-prefer-frac nil)
(calc-internal-prec (max 3 precision))
(calc-simplify-mode (and (not (memq calc-simplify-mode
'(none num)))
calc-simplify-mode))
! (blank t)
! (non-blank nil)
(math-working-step 0)
(math-working-step-2 nil))
(save-excursion
! (if is-splot
(calc-graph-compute-3d)
(calc-graph-compute-2d))
(set-buffer tempbuf)
(goto-char (point-max))
! (insert "\n" xname)
! (if is-splot
! (insert ":" y3name))
! (insert ":" yname "\n\n")
(setq tempbuftop (point))
(let ((calc-group-digits nil)
(calc-leading-zeros nil)
(calc-number-radix 10)
! (entry (and (not is-splot)
! (list xp yp xhigh numsteps))))
(or (equal entry
! (nth 1 (nth (1+ curve-num)
calc-graph-file-cache)))
! (setq keep-file nil))
! (setcar (cdr (nth (1+ curve-num) calc-graph-file-cache))
entry)
! (or keep-file
(calc-graph-format-data)))
! (or keep-file
(progn
! (or non-blank
(error "No valid data points for %s:%s"
! xname yname))
(write-region tempbuftop (point-max) filename
nil 'quiet))))))
(insert (prin1-to-string filename))))
! (if surprise-splot
(setcdr cache-env nil))
! (if (= curve-num 0)
(progn
(calc-gnuplot-command "clear")
(calc-clear-command-flag 'clear-message)
(message "No data to plot!"))
! (setq calc-graph-data-cache-limit (max curve-num
calc-graph-data-cache-limit)
filename (calc-temp-file-name 0))
(write-region (point-min) (point-max) filename nil 'quiet)
--- 447,534 ----
(setq calc-graph-data-cache (list (cons nil cache-env)))))
(calc-graph-find-plot t t)
(while (re-search-forward
! (if calc-graph-is-splot
"{\\([^{}:\n]+\\):\\([^{}:\n]+\\):\\([^{}:\n]+\\)}"
"{\\([^{}:\n]+\\)\\(:\\)\\([^{}:\n]+\\)}")
nil t)
! (setq calc-graph-curve-num (1+ calc-graph-curve-num))
! (let* ((calc-graph-xname (buffer-substring (match-beginning 1)
(match-end 1)))
! (xvar (intern (concat "var-" calc-graph-xname)))
! (calc-graph-xvalue (math-evaluate-expr (calc-var-value xvar)))
! (calc-graph-y3name (and calc-graph-is-splot
(buffer-substring (match-beginning 2)
(match-end 2))))
! (y3var (and calc-graph-is-splot (intern (concat "var-"
calc-graph-y3name))))
! (calc-graph-y3value (and calc-graph-is-splot (calc-var-value
y3var)))
! (calc-graph-yname (buffer-substring (match-beginning 3)
(match-end 3)))
! (yvar (intern (concat "var-" calc-graph-yname)))
! (calc-graph-yvalue (calc-var-value yvar))
filename)
(delete-region (match-beginning 0) (match-end 0))
! (setq filename (calc-temp-file-name calc-graph-curve-num))
(save-excursion
(set-buffer calcbuf)
(let (tempbuftop
! (calc-graph-xp calc-graph-xvalue)
! (calc-graph-yp calc-graph-yvalue)
! (calc-graph-zp nil)
! (calc-graph-xlow nil) (calc-graph-xhigh nil) (y3low nil)
(y3high nil)
! calc-graph-xvec calc-graph-xval calc-graph-xstep var-DUMMY
! y3val calc-graph-y3step var-DUMMY2 (calc-graph-zval nil)
! calc-graph-yvec calc-graph-yval calc-graph-ycache
calc-graph-ycacheptr calc-graph-yvector
! calc-graph-numsteps calc-graph-numsteps3
! (calc-graph-keep-file (and (not calc-graph-is-splot)
(file-exists-p filename)))
! (calc-graph-stepcount 0)
(calc-symbolic-mode nil)
(calc-prefer-frac nil)
(calc-internal-prec (max 3 precision))
(calc-simplify-mode (and (not (memq calc-simplify-mode
'(none num)))
calc-simplify-mode))
! (calc-graph-blank t)
! (calc-graph-non-blank nil)
(math-working-step 0)
(math-working-step-2 nil))
(save-excursion
! (if calc-graph-is-splot
(calc-graph-compute-3d)
(calc-graph-compute-2d))
(set-buffer tempbuf)
(goto-char (point-max))
! (insert "\n" calc-graph-xname)
! (if calc-graph-is-splot
! (insert ":" calc-graph-y3name))
! (insert ":" calc-graph-yname "\n\n")
(setq tempbuftop (point))
(let ((calc-group-digits nil)
(calc-leading-zeros nil)
(calc-number-radix 10)
! (entry (and (not calc-graph-is-splot)
! (list calc-graph-xp calc-graph-yp
calc-graph-xhigh calc-graph-numsteps))))
(or (equal entry
! (nth 1 (nth (1+ calc-graph-curve-num)
calc-graph-file-cache)))
! (setq calc-graph-keep-file nil))
! (setcar (cdr (nth (1+ calc-graph-curve-num)
calc-graph-file-cache))
entry)
! (or calc-graph-keep-file
(calc-graph-format-data)))
! (or calc-graph-keep-file
(progn
! (or calc-graph-non-blank
(error "No valid data points for %s:%s"
! calc-graph-xname calc-graph-yname))
(write-region tempbuftop (point-max) filename
nil 'quiet))))))
(insert (prin1-to-string filename))))
! (if calc-graph-surprise-splot
(setcdr cache-env nil))
! (if (= calc-graph-curve-num 0)
(progn
(calc-gnuplot-command "clear")
(calc-clear-command-flag 'clear-message)
(message "No data to plot!"))
! (setq calc-graph-data-cache-limit (max calc-graph-curve-num
calc-graph-data-cache-limit)
filename (calc-temp-file-name 0))
(write-region (point-min) (point-max) filename nil 'quiet)
***************
*** 517,841 ****
(eval command))))))))))
(defun calc-graph-compute-2d ()
! (if (setq yvec (eq (car-safe yvalue) 'vec))
! (if (= (setq numsteps (1- (length yvalue))) 0)
(error "Can't plot an empty vector")
! (if (setq xvec (eq (car-safe xvalue) 'vec))
! (or (= (1- (length xvalue)) numsteps)
! (error "%s and %s have different lengths" xname yname))
! (if (and (eq (car-safe xvalue) 'intv)
! (math-constp xvalue))
! (setq xstep (math-div (math-sub (nth 3 xvalue)
! (nth 2 xvalue))
! (1- numsteps))
! xvalue (nth 2 xvalue))
! (if (math-realp xvalue)
! (setq xstep 1)
! (error "%s is not a suitable basis for %s" xname yname)))))
! (or (math-realp yvalue)
(let ((arglist nil))
! (setq yvalue (math-evaluate-expr yvalue))
! (calc-default-formula-arglist yvalue)
(or arglist
! (error "%s does not contain any unassigned variables" yname))
(and (cdr arglist)
(error "%s contains more than one variable: %s"
! yname arglist))
! (setq yvalue (math-expr-subst yvalue
(math-build-var-name (car arglist))
'(var DUMMY var-DUMMY)))))
! (setq ycache (assoc yvalue calc-graph-data-cache))
! (delq ycache calc-graph-data-cache)
(nconc calc-graph-data-cache
! (list (or ycache (setq ycache (list yvalue)))))
! (if (and (not (setq xvec (eq (car-safe xvalue) 'vec)))
! refine (cdr (cdr ycache)))
(calc-graph-refine-2d)
(calc-graph-recompute-2d))))
(defun calc-graph-refine-2d ()
! (setq keep-file nil
! ycacheptr (cdr ycache))
! (if (and (setq xval (calc-graph-find-command "xrange"))
(string-match "\\`\\[\\([0-9.eE+-]*\\):\\([0-9.eE+-]*\\)\\]\\'"
! xval))
(let ((b2 (match-beginning 2))
(e2 (match-end 2)))
! (setq xlow (math-read-number (substring xval
(match-beginning 1)
(match-end 1)))
! xhigh (math-read-number (substring xval b2 e2))))
! (if xlow
! (while (and (cdr ycacheptr)
! (Math-lessp (car (nth 1 ycacheptr)) xlow))
! (setq ycacheptr (cdr ycacheptr)))))
! (setq math-working-step-2 (1- (length ycacheptr)))
! (while (and (cdr ycacheptr)
! (or (not xhigh)
! (Math-lessp (car (car ycacheptr)) xhigh)))
! (setq var-DUMMY (math-div (math-add (car (car ycacheptr))
! (car (nth 1 ycacheptr)))
2)
math-working-step (1+ math-working-step)
! yval (math-evaluate-expr yvalue))
! (setcdr ycacheptr (cons (cons var-DUMMY yval)
! (cdr ycacheptr)))
! (setq ycacheptr (cdr (cdr ycacheptr))))
! (setq yp ycache
! numsteps 1000000))
(defun calc-graph-recompute-2d ()
! (setq ycacheptr ycache)
! (if xvec
! (setq numsteps (1- (length xvalue))
! yvector nil)
! (if (and (eq (car-safe xvalue) 'intv)
! (math-constp xvalue))
! (setq numsteps resolution
! yp nil
! xlow (nth 2 xvalue)
! xhigh (nth 3 xvalue)
! xstep (math-div (math-sub xhigh xlow)
! (1- numsteps))
! xvalue (nth 2 xvalue))
(error "%s is not a suitable basis for %s"
! xname yname)))
! (setq math-working-step-2 numsteps)
! (while (>= (setq numsteps (1- numsteps)) 0)
(setq math-working-step (1+ math-working-step))
! (if xvec
(progn
! (setq xp (cdr xp)
! xval (car xp))
! (and (not (eq ycacheptr ycache))
! (consp (car ycacheptr))
! (not (Math-lessp (car (car ycacheptr)) xval))
! (setq ycacheptr ycache)))
! (if (= numsteps 0)
! (setq xval xhigh) ; avoid cumulative roundoff
! (setq xval xvalue
! xvalue (math-add xvalue xstep))))
! (while (and (cdr ycacheptr)
! (Math-lessp (car (nth 1 ycacheptr)) xval))
! (setq ycacheptr (cdr ycacheptr)))
! (or (and (cdr ycacheptr)
! (Math-equal (car (nth 1 ycacheptr)) xval))
(progn
! (setq keep-file nil
! var-DUMMY xval)
! (setcdr ycacheptr (cons (cons xval (math-evaluate-expr yvalue))
! (cdr ycacheptr)))))
! (setq ycacheptr (cdr ycacheptr))
! (if xvec
! (setq yvector (cons (cdr (car ycacheptr)) yvector))
! (or yp (setq yp ycacheptr))))
! (if xvec
! (setq xp xvalue
! yvec t
! yp (cons 'vec (nreverse yvector))
! numsteps (1- (length xp)))
! (setq numsteps 1000000)))
(defun calc-graph-compute-3d ()
! (if (setq yvec (eq (car-safe yvalue) 'vec))
! (if (math-matrixp yvalue)
(progn
! (setq numsteps (1- (length yvalue))
! numsteps3 (1- (length (nth 1 yvalue))))
! (if (eq (car-safe xvalue) 'vec)
! (or (= (1- (length xvalue)) numsteps)
! (error "%s has wrong length" xname))
! (if (and (eq (car-safe xvalue) 'intv)
! (math-constp xvalue))
! (setq xvalue (calcFunc-index numsteps
! (nth 2 xvalue)
(math-div
! (math-sub (nth 3 xvalue)
! (nth 2 xvalue))
! (1- numsteps))))
! (if (math-realp xvalue)
! (setq xvalue (calcFunc-index numsteps xvalue 1))
! (error "%s is not a suitable basis for %s" xname yname))))
! (if (eq (car-safe y3value) 'vec)
! (or (= (1- (length y3value)) numsteps3)
! (error "%s has wrong length" y3name))
! (if (and (eq (car-safe y3value) 'intv)
! (math-constp y3value))
! (setq y3value (calcFunc-index numsteps3
! (nth 2 y3value)
(math-div
! (math-sub (nth 3 y3value)
! (nth 2 y3value))
! (1- numsteps3))))
! (if (math-realp y3value)
! (setq y3value (calcFunc-index numsteps3 y3value 1))
! (error "%s is not a suitable basis for %s" y3name yname))))
! (setq xp nil
! yp nil
! zp nil
! xvec t)
! (while (setq xvalue (cdr xvalue) yvalue (cdr yvalue))
! (setq xp (nconc xp (make-list (1+ numsteps3) (car xvalue)))
! yp (nconc yp (cons 0 (copy-sequence (cdr y3value))))
! zp (nconc zp (cons '(skip)
! (copy-sequence (cdr (car yvalue)))))))
! (setq numsteps (1- (* numsteps (1+ numsteps3)))))
! (if (= (setq numsteps (1- (length yvalue))) 0)
(error "Can't plot an empty vector"))
! (or (and (eq (car-safe xvalue) 'vec)
! (= (1- (length xvalue)) numsteps))
! (error "%s is not a suitable basis for %s" xname yname))
! (or (and (eq (car-safe y3value) 'vec)
! (= (1- (length y3value)) numsteps))
! (error "%s is not a suitable basis for %s" y3name yname))
! (setq xp xvalue
! yp y3value
! zp yvalue
! xvec t))
! (or (math-realp yvalue)
(let ((arglist nil))
! (setq yvalue (math-evaluate-expr yvalue))
! (calc-default-formula-arglist yvalue)
(setq arglist (sort arglist 'string-lessp))
(or (cdr arglist)
! (error "%s does not contain enough unassigned variables" yname))
(and (cdr (cdr arglist))
! (error "%s contains too many variables: %s" yname arglist))
! (setq yvalue (math-multi-subst yvalue
(mapcar 'math-build-var-name
arglist)
'((var DUMMY var-DUMMY)
(var DUMMY2 var-DUMMY2))))))
! (if (setq xvec (eq (car-safe xvalue) 'vec))
! (setq numsteps (1- (length xvalue)))
! (if (and (eq (car-safe xvalue) 'intv)
! (math-constp xvalue))
! (setq numsteps resolution
! xvalue (calcFunc-index numsteps
! (nth 2 xvalue)
! (math-div (math-sub (nth 3 xvalue)
! (nth 2 xvalue))
! (1- numsteps))))
(error "%s is not a suitable basis for %s"
! xname yname)))
! (if (setq y3vec (eq (car-safe y3value) 'vec))
! (setq numsteps3 (1- (length y3value)))
! (if (and (eq (car-safe y3value) 'intv)
! (math-constp y3value))
! (setq numsteps3 resolution
! y3value (calcFunc-index numsteps3
! (nth 2 y3value)
! (math-div (math-sub (nth 3 y3value)
! (nth 2 y3value))
! (1- numsteps3))))
(error "%s is not a suitable basis for %s"
! y3name yname)))
! (setq xp nil
! yp nil
! zp nil
! xvec t)
(setq math-working-step 0)
! (while (setq xvalue (cdr xvalue))
! (setq xp (nconc xp (make-list (1+ numsteps3) (car xvalue)))
! yp (nconc yp (cons 0 (copy-sequence (cdr y3value))))
! zp (cons '(skip) zp)
! y3step y3value
! var-DUMMY (car xvalue)
math-working-step-2 0
math-working-step (1+ math-working-step))
! (while (setq y3step (cdr y3step))
(setq math-working-step-2 (1+ math-working-step-2)
! var-DUMMY2 (car y3step)
! zp (cons (math-evaluate-expr yvalue) zp))))
! (setq zp (nreverse zp)
! numsteps (1- (* numsteps (1+ numsteps3))))))
(defun calc-graph-format-data ()
! (while (<= (setq stepcount (1+ stepcount)) numsteps)
! (if xvec
! (setq xp (cdr xp)
! xval (car xp)
! yp (cdr yp)
! yval (car yp)
! zp (cdr zp)
! zval (car zp))
! (if yvec
! (setq xval xvalue
! xvalue (math-add xvalue xstep)
! yp (cdr yp)
! yval (car yp))
! (setq xval (car (car yp))
! yval (cdr (car yp))
! yp (cdr yp))
! (if (or (not yp)
! (and xhigh (equal xval xhigh)))
! (setq numsteps 0))))
! (if is-splot
! (if (and (eq (car-safe zval) 'calcFunc-xyz)
! (= (length zval) 4))
! (setq xval (nth 1 zval)
! yval (nth 2 zval)
! zval (nth 3 zval)))
! (if (and (eq (car-safe yval) 'calcFunc-xyz)
! (= (length yval) 4))
(progn
! (or surprise-splot
(save-excursion
(set-buffer (get-buffer-create "*Gnuplot Temp*"))
(save-excursion
(goto-char (point-max))
(re-search-backward "^plot[ \t]")
(insert "set parametric\ns")
! (setq surprise-splot t))))
! (setq xval (nth 1 yval)
! zval (nth 3 yval)
! yval (nth 2 yval)))
! (if (and (eq (car-safe yval) 'calcFunc-xy)
! (= (length yval) 3))
! (setq xval (nth 1 yval)
! yval (nth 2 yval)))))
! (if (and (Math-realp xval)
! (Math-realp yval)
! (or (not zval) (Math-realp zval)))
(progn
! (setq blank nil
! non-blank t)
! (if (Math-integerp xval)
! (insert (math-format-number xval))
! (if (eq (car xval) 'frac)
! (setq xval (math-float xval)))
! (insert (math-format-number (nth 1 xval))
! "e" (int-to-string (nth 2 xval))))
(insert " ")
! (if (Math-integerp yval)
! (insert (math-format-number yval))
! (if (eq (car yval) 'frac)
! (setq yval (math-float yval)))
! (insert (math-format-number (nth 1 yval))
! "e" (int-to-string (nth 2 yval))))
! (if zval
(progn
(insert " ")
! (if (Math-integerp zval)
! (insert (math-format-number zval))
! (if (eq (car zval) 'frac)
! (setq zval (math-float zval)))
! (insert (math-format-number (nth 1 zval))
! "e" (int-to-string (nth 2 zval))))))
(insert "\n"))
! (and (not (equal zval '(skip)))
! (boundp 'var-PlotRejects)
(eq (car-safe var-PlotRejects) 'vec)
(nconc var-PlotRejects
(list (list 'vec
! curve-num
! stepcount
! xval yval)))
(calc-refresh-evaltos 'var-PlotRejects))
! (or blank
(progn
(insert "\n")
! (setq blank t))))))
(defun calc-temp-file-name (num)
(while (<= (length calc-graph-file-cache) (1+ num))
--- 556,880 ----
(eval command))))))))))
(defun calc-graph-compute-2d ()
! (if (setq calc-graph-yvec (eq (car-safe calc-graph-yvalue) 'vec))
! (if (= (setq calc-graph-numsteps (1- (length calc-graph-yvalue))) 0)
(error "Can't plot an empty vector")
! (if (setq calc-graph-xvec (eq (car-safe calc-graph-xvalue) 'vec))
! (or (= (1- (length calc-graph-xvalue)) calc-graph-numsteps)
! (error "%s and %s have different lengths" calc-graph-xname
calc-graph-yname))
! (if (and (eq (car-safe calc-graph-xvalue) 'intv)
! (math-constp calc-graph-xvalue))
! (setq calc-graph-xstep (math-div (math-sub (nth 3
calc-graph-xvalue)
! (nth 2 calc-graph-xvalue))
! (1- calc-graph-numsteps))
! calc-graph-xvalue (nth 2 calc-graph-xvalue))
! (if (math-realp calc-graph-xvalue)
! (setq calc-graph-xstep 1)
! (error "%s is not a suitable basis for %s" calc-graph-xname
calc-graph-yname)))))
! (or (math-realp calc-graph-yvalue)
(let ((arglist nil))
! (setq calc-graph-yvalue (math-evaluate-expr calc-graph-yvalue))
! (calc-default-formula-arglist calc-graph-yvalue)
(or arglist
! (error "%s does not contain any unassigned variables"
calc-graph-yname))
(and (cdr arglist)
(error "%s contains more than one variable: %s"
! calc-graph-yname arglist))
! (setq calc-graph-yvalue (math-expr-subst calc-graph-yvalue
(math-build-var-name (car arglist))
'(var DUMMY var-DUMMY)))))
! (setq calc-graph-ycache (assoc calc-graph-yvalue calc-graph-data-cache))
! (delq calc-graph-ycache calc-graph-data-cache)
(nconc calc-graph-data-cache
! (list (or calc-graph-ycache (setq calc-graph-ycache (list
calc-graph-yvalue)))))
! (if (and (not (setq calc-graph-xvec (eq (car-safe calc-graph-xvalue)
'vec)))
! calc-graph-refine (cdr (cdr calc-graph-ycache)))
(calc-graph-refine-2d)
(calc-graph-recompute-2d))))
(defun calc-graph-refine-2d ()
! (setq calc-graph-keep-file nil
! calc-graph-ycacheptr (cdr calc-graph-ycache))
! (if (and (setq calc-graph-xval (calc-graph-find-command "xrange"))
(string-match "\\`\\[\\([0-9.eE+-]*\\):\\([0-9.eE+-]*\\)\\]\\'"
! calc-graph-xval))
(let ((b2 (match-beginning 2))
(e2 (match-end 2)))
! (setq calc-graph-xlow (math-read-number (substring calc-graph-xval
(match-beginning 1)
(match-end 1)))
! calc-graph-xhigh (math-read-number (substring calc-graph-xval b2
e2))))
! (if calc-graph-xlow
! (while (and (cdr calc-graph-ycacheptr)
! (Math-lessp (car (nth 1 calc-graph-ycacheptr))
calc-graph-xlow))
! (setq calc-graph-ycacheptr (cdr calc-graph-ycacheptr)))))
! (setq math-working-step-2 (1- (length calc-graph-ycacheptr)))
! (while (and (cdr calc-graph-ycacheptr)
! (or (not calc-graph-xhigh)
! (Math-lessp (car (car calc-graph-ycacheptr))
calc-graph-xhigh)))
! (setq var-DUMMY (math-div (math-add (car (car calc-graph-ycacheptr))
! (car (nth 1 calc-graph-ycacheptr)))
2)
math-working-step (1+ math-working-step)
! calc-graph-yval (math-evaluate-expr calc-graph-yvalue))
! (setcdr calc-graph-ycacheptr (cons (cons var-DUMMY calc-graph-yval)
! (cdr calc-graph-ycacheptr)))
! (setq calc-graph-ycacheptr (cdr (cdr calc-graph-ycacheptr))))
! (setq calc-graph-yp calc-graph-ycache
! calc-graph-numsteps 1000000))
(defun calc-graph-recompute-2d ()
! (setq calc-graph-ycacheptr calc-graph-ycache)
! (if calc-graph-xvec
! (setq calc-graph-numsteps (1- (length calc-graph-xvalue))
! calc-graph-yvector nil)
! (if (and (eq (car-safe calc-graph-xvalue) 'intv)
! (math-constp calc-graph-xvalue))
! (setq calc-graph-numsteps calc-graph-resolution
! calc-graph-yp nil
! calc-graph-xlow (nth 2 calc-graph-xvalue)
! calc-graph-xhigh (nth 3 calc-graph-xvalue)
! calc-graph-xstep (math-div (math-sub calc-graph-xhigh
calc-graph-xlow)
! (1- calc-graph-numsteps))
! calc-graph-xvalue (nth 2 calc-graph-xvalue))
(error "%s is not a suitable basis for %s"
! calc-graph-xname calc-graph-yname)))
! (setq math-working-step-2 calc-graph-numsteps)
! (while (>= (setq calc-graph-numsteps (1- calc-graph-numsteps)) 0)
(setq math-working-step (1+ math-working-step))
! (if calc-graph-xvec
(progn
! (setq calc-graph-xp (cdr calc-graph-xp)
! calc-graph-xval (car calc-graph-xp))
! (and (not (eq calc-graph-ycacheptr calc-graph-ycache))
! (consp (car calc-graph-ycacheptr))
! (not (Math-lessp (car (car calc-graph-ycacheptr))
calc-graph-xval))
! (setq calc-graph-ycacheptr calc-graph-ycache)))
! (if (= calc-graph-numsteps 0)
! (setq calc-graph-xval calc-graph-xhigh) ; avoid cumulative roundoff
! (setq calc-graph-xval calc-graph-xvalue
! calc-graph-xvalue (math-add calc-graph-xvalue calc-graph-xstep))))
! (while (and (cdr calc-graph-ycacheptr)
! (Math-lessp (car (nth 1 calc-graph-ycacheptr)) calc-graph-xval))
! (setq calc-graph-ycacheptr (cdr calc-graph-ycacheptr)))
! (or (and (cdr calc-graph-ycacheptr)
! (Math-equal (car (nth 1 calc-graph-ycacheptr)) calc-graph-xval))
(progn
! (setq calc-graph-keep-file nil
! var-DUMMY calc-graph-xval)
! (setcdr calc-graph-ycacheptr (cons (cons calc-graph-xval
(math-evaluate-expr calc-graph-yvalue))
! (cdr calc-graph-ycacheptr)))))
! (setq calc-graph-ycacheptr (cdr calc-graph-ycacheptr))
! (if calc-graph-xvec
! (setq calc-graph-yvector (cons (cdr (car calc-graph-ycacheptr))
calc-graph-yvector))
! (or calc-graph-yp (setq calc-graph-yp calc-graph-ycacheptr))))
! (if calc-graph-xvec
! (setq calc-graph-xp calc-graph-xvalue
! calc-graph-yvec t
! calc-graph-yp (cons 'vec (nreverse calc-graph-yvector))
! calc-graph-numsteps (1- (length calc-graph-xp)))
! (setq calc-graph-numsteps 1000000)))
(defun calc-graph-compute-3d ()
! (if (setq calc-graph-yvec (eq (car-safe calc-graph-yvalue) 'vec))
! (if (math-matrixp calc-graph-yvalue)
(progn
! (setq calc-graph-numsteps (1- (length calc-graph-yvalue))
! calc-graph-numsteps3 (1- (length (nth 1 calc-graph-yvalue))))
! (if (eq (car-safe calc-graph-xvalue) 'vec)
! (or (= (1- (length calc-graph-xvalue)) calc-graph-numsteps)
! (error "%s has wrong length" calc-graph-xname))
! (if (and (eq (car-safe calc-graph-xvalue) 'intv)
! (math-constp calc-graph-xvalue))
! (setq calc-graph-xvalue (calcFunc-index calc-graph-numsteps
! (nth 2 calc-graph-xvalue)
(math-div
! (math-sub (nth 3
calc-graph-xvalue)
! (nth 2
calc-graph-xvalue))
! (1- calc-graph-numsteps))))
! (if (math-realp calc-graph-xvalue)
! (setq calc-graph-xvalue (calcFunc-index calc-graph-numsteps
calc-graph-xvalue 1))
! (error "%s is not a suitable basis for %s" calc-graph-xname
calc-graph-yname))))
! (if (eq (car-safe calc-graph-y3value) 'vec)
! (or (= (1- (length calc-graph-y3value)) calc-graph-numsteps3)
! (error "%s has wrong length" calc-graph-y3name))
! (if (and (eq (car-safe calc-graph-y3value) 'intv)
! (math-constp calc-graph-y3value))
! (setq calc-graph-y3value (calcFunc-index calc-graph-numsteps3
! (nth 2 calc-graph-y3value)
(math-div
! (math-sub (nth 3
calc-graph-y3value)
! (nth 2
calc-graph-y3value))
! (1- calc-graph-numsteps3))))
! (if (math-realp calc-graph-y3value)
! (setq calc-graph-y3value (calcFunc-index
calc-graph-numsteps3 calc-graph-y3value 1))
! (error "%s is not a suitable basis for %s" calc-graph-y3name
calc-graph-yname))))
! (setq calc-graph-xp nil
! calc-graph-yp nil
! calc-graph-zp nil
! calc-graph-xvec t)
! (while (setq calc-graph-xvalue (cdr calc-graph-xvalue)
calc-graph-yvalue (cdr calc-graph-yvalue))
! (setq calc-graph-xp (nconc calc-graph-xp (make-list (1+
calc-graph-numsteps3) (car calc-graph-xvalue)))
! calc-graph-yp (nconc calc-graph-yp (cons 0 (copy-sequence
(cdr calc-graph-y3value))))
! calc-graph-zp (nconc calc-graph-zp (cons '(skip)
! (copy-sequence (cdr (car
calc-graph-yvalue)))))))
! (setq calc-graph-numsteps (1- (* calc-graph-numsteps
! (1+ calc-graph-numsteps3)))))
! (if (= (setq calc-graph-numsteps (1- (length calc-graph-yvalue))) 0)
(error "Can't plot an empty vector"))
! (or (and (eq (car-safe calc-graph-xvalue) 'vec)
! (= (1- (length calc-graph-xvalue)) calc-graph-numsteps))
! (error "%s is not a suitable basis for %s" calc-graph-xname
calc-graph-yname))
! (or (and (eq (car-safe calc-graph-y3value) 'vec)
! (= (1- (length calc-graph-y3value)) calc-graph-numsteps))
! (error "%s is not a suitable basis for %s" calc-graph-y3name
calc-graph-yname))
! (setq calc-graph-xp calc-graph-xvalue
! calc-graph-yp calc-graph-y3value
! calc-graph-zp calc-graph-yvalue
! calc-graph-xvec t))
! (or (math-realp calc-graph-yvalue)
(let ((arglist nil))
! (setq calc-graph-yvalue (math-evaluate-expr calc-graph-yvalue))
! (calc-default-formula-arglist calc-graph-yvalue)
(setq arglist (sort arglist 'string-lessp))
(or (cdr arglist)
! (error "%s does not contain enough unassigned variables"
calc-graph-yname))
(and (cdr (cdr arglist))
! (error "%s contains too many variables: %s" calc-graph-yname
arglist))
! (setq calc-graph-yvalue (math-multi-subst calc-graph-yvalue
(mapcar 'math-build-var-name
arglist)
'((var DUMMY var-DUMMY)
(var DUMMY2 var-DUMMY2))))))
! (if (setq calc-graph-xvec (eq (car-safe calc-graph-xvalue) 'vec))
! (setq calc-graph-numsteps (1- (length calc-graph-xvalue)))
! (if (and (eq (car-safe calc-graph-xvalue) 'intv)
! (math-constp calc-graph-xvalue))
! (setq calc-graph-numsteps calc-graph-resolution
! calc-graph-xvalue (calcFunc-index calc-graph-numsteps
! (nth 2 calc-graph-xvalue)
! (math-div (math-sub (nth 3
calc-graph-xvalue)
! (nth 2
calc-graph-xvalue))
! (1- calc-graph-numsteps))))
(error "%s is not a suitable basis for %s"
! calc-graph-xname calc-graph-yname)))
! (if (eq (car-safe calc-graph-y3value) 'vec)
! (setq calc-graph-numsteps3 (1- (length calc-graph-y3value)))
! (if (and (eq (car-safe calc-graph-y3value) 'intv)
! (math-constp calc-graph-y3value))
! (setq calc-graph-numsteps3 calc-graph-resolution
! calc-graph-y3value (calcFunc-index calc-graph-numsteps3
! (nth 2 calc-graph-y3value)
! (math-div (math-sub (nth 3
calc-graph-y3value)
! (nth 2
calc-graph-y3value))
! (1- calc-graph-numsteps3))))
(error "%s is not a suitable basis for %s"
! calc-graph-y3name calc-graph-yname)))
! (setq calc-graph-xp nil
! calc-graph-yp nil
! calc-graph-zp nil
! calc-graph-xvec t)
(setq math-working-step 0)
! (while (setq calc-graph-xvalue (cdr calc-graph-xvalue))
! (setq calc-graph-xp (nconc calc-graph-xp (make-list (1+
calc-graph-numsteps3) (car calc-graph-xvalue)))
! calc-graph-yp (nconc calc-graph-yp (cons 0 (copy-sequence (cdr
calc-graph-y3value))))
! calc-graph-zp (cons '(skip) calc-graph-zp)
! calc-graph-y3step calc-graph-y3value
! var-DUMMY (car calc-graph-xvalue)
math-working-step-2 0
math-working-step (1+ math-working-step))
! (while (setq calc-graph-y3step (cdr calc-graph-y3step))
(setq math-working-step-2 (1+ math-working-step-2)
! var-DUMMY2 (car calc-graph-y3step)
! calc-graph-zp (cons (math-evaluate-expr calc-graph-yvalue)
calc-graph-zp))))
! (setq calc-graph-zp (nreverse calc-graph-zp)
! calc-graph-numsteps (1- (* calc-graph-numsteps (1+
calc-graph-numsteps3))))))
(defun calc-graph-format-data ()
! (while (<= (setq calc-graph-stepcount (1+ calc-graph-stepcount))
calc-graph-numsteps)
! (if calc-graph-xvec
! (setq calc-graph-xp (cdr calc-graph-xp)
! calc-graph-xval (car calc-graph-xp)
! calc-graph-yp (cdr calc-graph-yp)
! calc-graph-yval (car calc-graph-yp)
! calc-graph-zp (cdr calc-graph-zp)
! calc-graph-zval (car calc-graph-zp))
! (if calc-graph-yvec
! (setq calc-graph-xval calc-graph-xvalue
! calc-graph-xvalue (math-add calc-graph-xvalue calc-graph-xstep)
! calc-graph-yp (cdr calc-graph-yp)
! calc-graph-yval (car calc-graph-yp))
! (setq calc-graph-xval (car (car calc-graph-yp))
! calc-graph-yval (cdr (car calc-graph-yp))
! calc-graph-yp (cdr calc-graph-yp))
! (if (or (not calc-graph-yp)
! (and calc-graph-xhigh (equal calc-graph-xval calc-graph-xhigh)))
! (setq calc-graph-numsteps 0))))
! (if calc-graph-is-splot
! (if (and (eq (car-safe calc-graph-zval) 'calcFunc-xyz)
! (= (length calc-graph-zval) 4))
! (setq calc-graph-xval (nth 1 calc-graph-zval)
! calc-graph-yval (nth 2 calc-graph-zval)
! calc-graph-zval (nth 3 calc-graph-zval)))
! (if (and (eq (car-safe calc-graph-yval) 'calcFunc-xyz)
! (= (length calc-graph-yval) 4))
(progn
! (or calc-graph-surprise-splot
(save-excursion
(set-buffer (get-buffer-create "*Gnuplot Temp*"))
(save-excursion
(goto-char (point-max))
(re-search-backward "^plot[ \t]")
(insert "set parametric\ns")
! (setq calc-graph-surprise-splot t))))
! (setq calc-graph-xval (nth 1 calc-graph-yval)
! calc-graph-zval (nth 3 calc-graph-yval)
! calc-graph-yval (nth 2 calc-graph-yval)))
! (if (and (eq (car-safe calc-graph-yval) 'calcFunc-xy)
! (= (length calc-graph-yval) 3))
! (setq calc-graph-xval (nth 1 calc-graph-yval)
! calc-graph-yval (nth 2 calc-graph-yval)))))
! (if (and (Math-realp calc-graph-xval)
! (Math-realp calc-graph-yval)
! (or (not calc-graph-zval) (Math-realp calc-graph-zval)))
(progn
! (setq calc-graph-blank nil
! calc-graph-non-blank t)
! (if (Math-integerp calc-graph-xval)
! (insert (math-format-number calc-graph-xval))
! (if (eq (car calc-graph-xval) 'frac)
! (setq calc-graph-xval (math-float calc-graph-xval)))
! (insert (math-format-number (nth 1 calc-graph-xval))
! "e" (int-to-string (nth 2 calc-graph-xval))))
(insert " ")
! (if (Math-integerp calc-graph-yval)
! (insert (math-format-number calc-graph-yval))
! (if (eq (car calc-graph-yval) 'frac)
! (setq calc-graph-yval (math-float calc-graph-yval)))
! (insert (math-format-number (nth 1 calc-graph-yval))
! "e" (int-to-string (nth 2 calc-graph-yval))))
! (if calc-graph-zval
(progn
(insert " ")
! (if (Math-integerp calc-graph-zval)
! (insert (math-format-number calc-graph-zval))
! (if (eq (car calc-graph-zval) 'frac)
! (setq calc-graph-zval (math-float calc-graph-zval)))
! (insert (math-format-number (nth 1 calc-graph-zval))
! "e" (int-to-string (nth 2 calc-graph-zval))))))
(insert "\n"))
! (and (not (equal calc-graph-zval '(skip)))
(eq (car-safe var-PlotRejects) 'vec)
(nconc var-PlotRejects
(list (list 'vec
! calc-graph-curve-num
! calc-graph-stepcount
! calc-graph-xval calc-graph-yval)))
(calc-refresh-evaltos 'var-PlotRejects))
! (or calc-graph-blank
(progn
(insert "\n")
! (setq calc-graph-blank t))))))
(defun calc-temp-file-name (num)
(while (<= (length calc-graph-file-cache) (1+ num))
***************
*** 859,867 ****
(setq calc-graph-file-cache (cdr calc-graph-file-cache))))
(defun calc-graph-kill-hook ()
! (calc-graph-delete-temps)
! (if calc-graph-prev-kill-hook
! (funcall calc-graph-prev-kill-hook)))
(defun calc-graph-show-tty (output)
"Default calc-gnuplot-plot-command for \"tty\" output mode.
--- 898,904 ----
(setq calc-graph-file-cache (cdr calc-graph-file-cache))))
(defun calc-graph-kill-hook ()
! (calc-graph-delete-temps))
(defun calc-graph-show-tty (output)
"Default calc-gnuplot-plot-command for \"tty\" output mode.
***************
*** 870,875 ****
--- 907,915 ----
nil calc-gnuplot-buffer nil
"-c" (format "cat %s >/dev/tty; rm %s" output output)))
+ (defvar calc-dumb-map nil
+ "The keymap for the \"dumb\" terminal plot.")
+
(defun calc-graph-show-dumb (&optional output)
"Default calc-gnuplot-plot-command for Pinard's \"dumb\" terminal type.
This \"dumb\" driver will be present in Gnuplot 3.0."
***************
*** 882,888 ****
(sleep-for 1))
(goto-char (point-max))
(re-search-backward "\f\\|^[ \t]+\\^$\\|G N U P L O T")
- (setq found-pt (point))
(if (looking-at "\f")
(progn
(forward-char 1)
--- 922,927 ----
***************
*** 898,904 ****
(end-of-line)
(backward-char 1)
(recenter '(4)))
! (or (boundp 'calc-dumb-map)
(progn
(setq calc-dumb-map (make-sparse-keymap))
(define-key calc-dumb-map "\n" 'scroll-up)
--- 937,943 ----
(end-of-line)
(backward-char 1)
(recenter '(4)))
! (or calc-dumb-map
(progn
(setq calc-dumb-map (make-sparse-keymap))
(define-key calc-dumb-map "\n" 'scroll-up)
***************
*** 1097,1103 ****
(or (calc-graph-find-plot nil nil)
(error "No data points have been set!"))
(let ((base (point))
! start)
(re-search-forward "[,\n]\\|[ \t]+with")
(setq end (match-beginning 0))
(goto-char base)
--- 1136,1143 ----
(or (calc-graph-find-plot nil nil)
(error "No data points have been set!"))
(let ((base (point))
! start
! end)
(re-search-forward "[,\n]\\|[ \t]+with")
(setq end (match-beginning 0))
(goto-char base)
- [Emacs-diffs] Changes to emacs/lisp/calc/calc-graph.el,
Jay Belanger <=