
(require (quote calc-ext))

(defun calc-Need-calc-keypd nil (byte-code "" [nil] 1))

(defvar calc-keypad-buffer nil)

(defvar calc-keypad-menu 0)

(defvar calc-keypad-full-layout nil)

(defvar calc-keypad-input nil)

(defvar calc-keypad-prev-input nil)

(defvar calc-keypad-prev-x-left-click nil)

(defvar calc-keypad-prev-x-middle-click nil)

(defvar calc-keypad-prev-x-right-click nil)

(defvar calc-keypad-said-hello nil)

(defvar calc-keypad-map nil)

(if calc-keypad-map nil (setq calc-keypad-map (make-sparse-keymap)) (define-key calc-keypad-map " " (quote calc-keypad-press)) (define-key calc-keypad-map "" (quote calc-keypad-press)) (define-key calc-keypad-map "	" (quote calc-keypad-menu)) (define-key calc-keypad-map "q" (quote calc-keypad-off)))

(defun calc-do-keypad (&optional full-display interactive) (byte-code " p	 	!7 !	q
!ۉ܉#!  	!Q !!k  g  !k !	! !!	!   ! !
 H= H= H= II
IΉ
 		!\\W 	!\\W  	!	!\\W!I		!#\"	 \"	\"\"@ \\#\"І`A 	!qi)B  \"Ww		!##	\\#		\"\"!#\"\"C 	!D =
?HHH
IIIE F !G H !I !E J !Љ,)Ή" [calcbuf calc-keypad-buffer calc-keypad-map major-mode mode-name calc-main-buffer width height win old-win calc-keypad-prev-x-left-click mouse-map calc-keypad-prev-x-right-click calc-keypad-prev-x-middle-click nil calc-was-keypad-mode t full-display window-system calc-keypad-said-hello interactive calc-keypad-input calc-create-buffer buffer-name get-buffer-create "*Calc Keypad*" use-local-map calc-keypad "Calculator" put mode-class special make-local-variable calc-keypad-redraw calc-trail-buffer 29 17 get-buffer-window "*Calculator*" delete-window "*Calc Trail*" one-window-p switch-to-buffer other-buffer bury-buffer 0 calc-keypad-x-right-click 1 calc-keypad-x-middle-click 2 calc-keypad-x-left-click get-largest-window window-height 6 window-width 15 delete-other-windows 4 error "Screen is not tall enough for this mode" split-window - set-window-buffer set-window-start 3 window-buffer / select-window x message "Welcome to GNU Emacs Calc!  Use the left and right mouse buttons." run-hooks calc-keypad-start-hook sit-for ""] 58))

(defun calc-keypad-off nil (interactive) (byte-code " !  " [calc-standalone-flag nil save-buffers-kill-emacs calc-keypad] 3))

(defun calc-keypad-redraw nil (byte-code "q8J\"	 c@

 
@	Y? ׂ[ 	UL 
@=Z 
A
ق[ h 8=o ܂ @GV @O @G\"ZZ\"\"#\"\"\" T! $-
A
 c* 	Y  	U  	U  \"	T	A)  + eb" [calc-keypad-buffer buffer-read-only t calc-keypad-full-layout calc-keypad-menu calc-keypad-menus calc-keypad-layout nil row y col key cwid name calc-standalone-flag wid pad calc-keypad-prev-input append 0 erase-buffer "
" 4 5 3 9 1 calc-keypad-off "EXIT" / 2 insert make-string 32 - -1 equal "MENU" int-to-string "|" "-----+-----+-----+-----+-----" "-----+---+-+--+--+-+---++----" "----+----+----+----+----+----" 7 "+
" "|
" calc-keypad-show-input] 17))

(defun calc-keypad-show-input nil (byte-code "	\". eb!e`\"\" #, T!%))" [calc-keypad-input calc-keypad-prev-input buffer-read-only nil calc-version calc-keypad-menu equal forward-line 1 delete-region insert "Calc: " "
" "----+-----Calc " "-----+----" int-to-string] 11))

(defun calc-keypad-press nil (interactive) (byte-code "؈= ! e`\")	\"i
Y' ( \"q	
)8Jt \"n Xn \"t !
88  낍 ꂚ   8 ؉ 8: @; !? 	\"U   V' @H$= $=@ $A =\"B $ 3C \"FCD @\"؉E F @P!G H \"mI !G J \"K !G L \"M !G N \"O !G P \"Q !G R \"S \"G T \"U \"G V \"W !X !)CY >؉CG V \"3Z [ \"AAPC w@G \\ \"jj] \"G \"X\"^ \"G \\ \"?_ ` a \"b #) tc b \"?G d \"e f \"?G d \"+G \"g +G \\ \"+(g +h G \\ \":Ci pG \"`?Zj \"`Vne k \"pRl =OOm \"Od PP*=G a \" n \"o OA =؉Cp ! ؉ #q !6G a \"1 ؉=B؉)\"!:\\@r =As @!{@!t @!_t !)." [major-mode row y x radix frac inv hyp calc-main-buffer calc-number-radix calc-prefer-frac calc-inverse-flag calc-hyperbolic-flag invhyp t menu calc-keypad-menu calc-keypad-menus input calc-keypad-input iexpon key calc-keypad-full-layout cmd nil isstring calc-is-keypad-press unread-command-char var case-fold-search epos suffix val prefix-arg current-prefix-arg calc-keypad-buffer calc-keypad error "Must be in *Calc Keypad* buffer for this command" beginning-of-line count-lines / 2 4 6 5 string-match "\\*[0-9]+\\.\\^" 14 "e" match-end 0 3 99 1 calc-do (lambda nil (byte-code "" [nil] 1)) ((byte-code "q " [calc-keypad-buffer calc-keypad-show-input] 2)) % beep minibuffer-depth calc-pop 127 calc-enter 13 calc-undo 7 "STO\\|RCL" "[0-9]" intern "var-q" equal "STO+" calc-store-plus "STO-" calc-store-minus "STO*" calc-store-times "STO/" calc-store-div "STO^" calc-store-power "STOn" calc-store-neg "STO&" calc-store-inv "STO" calc-store-into calc-recall (calc-pop calc-undo) assq ((calc-plus . "+") (calc-minus . "-") (calc-times . "*") (calc-divide . "/") (calc-power . "^") (calc-change-sign . "n") (calc-inv . "&")) "." "[.:e^]" "\\^\\|[-.:]\\'" "0123456789ABCDEF" "[e^]" "" 10 /= "-" format "%d#" "1" "0" ":" "#" "*%d.^" calc-change-sign "\\`-" "\\*[0-9]+\\.\\^\\'" -1 math-read-number (lambda nil (byte-code "!!C!" [val calc-push-list calc-record calc-normalize] 4)) progn integerp command-execute] 67))

(defun calc-keypad-x-left-click (arg) "\
Handle a left-button mouse click in Calc Keypad window." (byte-code "	 	! 	! 
	!\"-  ʎ
! ))1 
\")" [coords calc-keypad-buffer arg win calc-keypad-prev-x-left-click nil buffer-name get-buffer-window coordinates-in-window-p selected-window ((byte-code "!	 !" [win window-point select-window] 3)) x-mouse-set-point calc-keypad-press funcall] 10))

(defun calc-keypad-x-right-click (arg) "\
Handle a right-button mouse click in Calc Keypad window." (byte-code " ! ! 	!\"# q )' 
	\"" [calc-keypad-buffer arg calc-keypad-prev-x-right-click buffer-name get-buffer-window coordinates-in-window-p calc-keypad-menu funcall] 8))

(defun calc-keypad-x-middle-click (arg) "\
Handle a middle-button mouse click in Calc Keypad window." (byte-code " ! ! 	!\"# q )' 
	\"" [calc-keypad-buffer arg calc-keypad-prev-x-middle-click buffer-name get-buffer-window coordinates-in-window-p calc-keypad-menu-back funcall] 8))

(defun calc-keypad-menu nil (interactive) (byte-code "È= !	T
G\"	
8J?\" È  " [major-mode calc-keypad-menu calc-keypad-menus nil calc-keypad error "Must be in *Calc Keypad* buffer for this command" % calc-keypad-redraw] 4))

(defun calc-keypad-menu-back nil (interactive) (byte-code "È= !	
G\\S
G\"	
8J?% È  " [major-mode calc-keypad-menu calc-keypad-menus nil calc-keypad error "Must be in *Calc Keypad* buffer for this command" % calc-keypad-redraw] 4))

(defun calc-keypad-store nil (interactive) (byte-code "" [calc-keypad-input nil "STO"] 2))

(defun calc-keypad-recall nil (interactive) (byte-code "" [calc-keypad-input nil "RCL"] 2))

(defun calc-pack-interval (mode) (interactive "p") (byte-code "W V !Z!" [mode nil 0 3 error "Open/close code should be in the range from 0 to 3." calc-pack -6] 4))

(defun calc-keypad-execute nil (interactive) (byte-code "È !!>* 
* \"I GSH!!QL 	=T È )!!f !l !\"-" [prompt flush prefix nil keys cmd last-command-char t "Calc keystrokes: " x-flush-mouse-queue calc-select-buffer read-key-sequence key-binding (calc-inverse calc-hyperbolic universal-argument digit-argument negative-argument) string-match "\\`?[-0-9]\\'" command-execute not-any-more key-description " " message "" commandp error "Not a Calc command: %s"] 13))

(defvar calc-keypad-layout (quote ((("ENTER" calc-enter calc-roll-down calc-roll-up calc-over) ("ENTER" calc-enter calc-roll-down calc-roll-up calc-over) ("+/-" calc-change-sign calc-inv (progn -4 calc-pack)) ("EEX" ("e") (progn calc-num-prefix calc-pack-interval) (progn -5 calc-pack)) ("UNDO" calc-undo calc-redo calc-last-args) ("<-" calc-pop (progn 0 calc-pop) (progn calc-num-prefix calc-pop))) (("INV" calc-inverse) ("7" ("7") calc-round) ("8" ("8") (progn 2 calc-clean-num)) ("9" ("9") calc-float) ("/" calc-divide (progn calc-inverse calc-power))) (("HYP" calc-hyperbolic) ("4" ("4") calc-ln calc-log10) ("5" ("5") calc-exp calc-exp10) ("6" ("6") calc-abs) ("*" calc-times calc-power)) (("EXEC" calc-keypad-execute) ("1" ("1") calc-arcsin calc-sin) ("2" ("2") calc-arccos calc-cos) ("3" ("3") calc-arctan calc-tan) ("-" calc-minus calc-conj)) (("OFF" calc-keypad-off) ("0" ("0") calc-imaginary) ("." (".") calc-precision) ("PI" calc-pi) ("+" calc-plus calc-sqrt)))))

(defvar calc-keypad-menus (quote (calc-keypad-math-menu calc-keypad-funcs-menu calc-keypad-binary-menu calc-keypad-vector-menu calc-keypad-modes-menu calc-keypad-user-menu)))

(defvar calc-keypad-math-menu (quote ((("FLR" calc-floor) ("CEIL" calc-ceiling) ("RND" calc-round) ("TRNC" calc-trunc) ("CLN2" (progn 2 calc-clean-num)) ("FLT" calc-float)) (("LN" calc-ln) ("EXP" calc-exp) ("" nil) ("ABS" calc-abs) ("IDIV" calc-idiv) ("MOD" calc-mod)) (("SIN" calc-sin) ("COS" calc-cos) ("TAN" calc-tan) ("SQRT" calc-sqrt) ("y^x" calc-power) ("1/x" calc-inv)))))

(defvar calc-keypad-funcs-menu (quote ((("IGAM" calc-inc-gamma) ("BETA" calc-beta) ("IBET" calc-inc-beta) ("ERF" calc-erf) ("BESJ" calc-bessel-J) ("BESY" calc-bessel-Y)) (("IMAG" calc-imaginary) ("CONJ" calc-conj) ("RE" calc-re calc-im) ("ATN2" calc-arctan2) ("RAND" calc-random) ("RAGN" calc-random-again)) (("GCD" calc-gcd calc-lcm) ("FACT" calc-factorial calc-gamma) ("DFCT" calc-double-factorial) ("BNOM" calc-choose) ("PERM" calc-perm) ("NXTP" calc-next-prime calc-prev-prime)))))

(defvar calc-keypad-binary-menu (quote ((("AND" calc-and calc-diff) ("OR" calc-or) ("XOR" calc-xor) ("NOT" calc-not calc-clip) ("LSH" calc-lshift-binary calc-rotate-binary) ("RSH" calc-rshift-binary)) (("DEC" calc-decimal-radix) ("HEX" calc-hex-radix) ("OCT" calc-octal-radix) ("BIN" calc-binary-radix) ("WSIZ" calc-word-size) ("ARSH" calc-rshift-arith)) (("A" ("A")) ("B" ("B")) ("C" ("C")) ("D" ("D")) ("E" ("E")) ("F" ("F"))))))

(defvar calc-keypad-vector-menu (quote ((("SUM" calc-vector-sum calc-vector-alt-sum calc-vector-mean) ("PROD" calc-vector-product nil calc-vector-sdev) ("MAX" calc-vector-max calc-vector-min calc-vector-median) ("MAP*" (lambda nil (interactive) (calc-map (quote (2 calcFunc-mul "*"))))) ("MAP^" (lambda nil (interactive) (calc-map (quote (2 calcFunc-pow "^"))))) ("MAP$" calc-map-stack)) (("MINV" calc-inv) ("MDET" calc-mdet) ("MTRN" calc-transpose calc-conj-transpose) ("IDNT" (progn calc-num-prefix calc-ident)) ("CRSS" calc-cross) ("\"x\"" "xcalc-algebraic-entryx" "xcalc-algebraic-entryy" "xcalc-algebraic-entryz" "xcalc-algebraic-entryt")) (("PACK" calc-pack) ("UNPK" calc-unpack) ("INDX" (progn calc-num-prefix calc-index) "xcalc-index") ("BLD" (progn calc-num-prefix calc-build-vector)) ("LEN" calc-vlength) ("..." calc-full-vectors)))))

(defvar calc-keypad-modes-menu (quote ((("FLT" calc-normal-notation (progn calc-num-prefix calc-normal-notation)) ("FIX" (progn 2 calc-fix-notation) (progn calc-num-prefix calc-fix-notation)) ("SCI" calc-sci-notation (progn calc-num-prefix calc-sci-notation)) ("ENG" calc-eng-notation (progn calc-num-prefix calc-eng-notation)) ("GRP" calc-group-digits "-3xcalc-group-digits") ("" nil)) (("RAD" calc-radians-mode) ("DEG" calc-degrees-mode) ("FRAC" calc-frac-mode) ("POLR" calc-polar-mode) ("SYMB" calc-symbolic-mode) ("PREC" calc-precision)) (("SWAP" calc-roll-down) ("RLL3" (progn 3 calc-roll-up) (progn 3 calc-roll-down)) ("RLL4" (progn 4 calc-roll-up) (progn 4 calc-roll-down)) ("OVER" calc-over) ("STO" calc-keypad-store) ("RCL" calc-keypad-recall)))))
