;ELC ;;; Compiled ;;; in Emacs version 27.1 ;;; with all optimizations. ;;; This file uses dynamic docstrings, first added in Emacs 19.29. ;;; This file does not contain utf-8 non-ASCII characters, ;;; and so can be loaded in Emacs versions earlier than 23. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; (byte-code "\300\301!\210\300\302!\207" [require calc-ext calc-macs] 2) (defvar calc-keep-selection t) (defvar calc-selection-cache-entry nil) (defalias 'calc-select-here #[(num &optional once keep) "\300\301!\207" [calc-do #[nil "\306 \210\307  \203\310 8\206\\\f\203\311\312\313!\210\314\n\203Y\203Q\315!\211\316V\203QS\211\316Y\203M\n @=\204M\317 @\n\"\2022\n\202[\320 @\n\"\202[ @!*\207" [calc-selection-cache-entry entry found keep once calc-keep-selection calc-prepare-selection calc-find-selected-part 2 nil message "(Selection will apply to next command only)" calc-change-current-selection prefix-numeric-value 0 calc-find-assoc-parent-formula calc-grow-assoc-formula num] 4]] 2 nil "P"]) (defalias 'calc-select-once #[(num) "\301\302\"\207" [num calc-select-here t] 3 nil "P"]) (defalias 'calc-select-here-maybe #[(num) "\301\302\303#\207" [num calc-select-here nil t] 4 nil "P"]) (defalias 'calc-select-once-maybe #[(num) "\301\302\211#\207" [num calc-select-here t] 4 nil "P"]) (defalias 'calc-select-additional #[nil "\300\301!\207" [calc-do #[nil "\305\306 \210)\307 \310 \203=\311\n8\211\2034\f\n@=\2040\312\f \"\2040\313\n@\f\"\211\202\f\2029\314\n@ \")\202?\n@!*\207" [calc-keep-selection calc-selection-cache-entry entry found sel nil calc-prepare-selection calc-find-selected-part calc-change-current-selection 2 calc-find-sub-formula calc-find-assoc-parent-formula calc-grow-assoc-formula] 5]] 2 nil nil]) (defalias 'calc-select-more #[(num) "\300\301!\207" [calc-do #[nil "\304 \210\305 8\2032\305 8\211 @=\204+\306 !S\211\307Y\203+\310 @\n\"\211\202\311\n!)\2025\312 !)\207" [calc-selection-cache-entry entry sel num calc-prepare-selection 2 prefix-numeric-value 0 calc-find-assoc-parent-formula calc-change-current-selection calc-select-here] 4]] 2 nil "P"]) (defalias 'calc-select-less #[(num) "\300\301!\207" [calc-do #[nil "\306 \210\307 \310\n\205i\311 8\312\211\211  \203f \n=\204fS\211\313Y\203f \314 \n\"\211\205?\f 8\211 \203\203 \242\236\211\203 @\f 8>\203T\202 ,!*\207" [calc-selection-cache-entry entry found op index old calc-prepare-selection calc-find-selected-part calc-change-current-selection 2 nil 0 calc-find-sub-formula sel num calc-assoc-selections calc-assoc-ops] 6]] 2 nil "p"]) (defalias 'calc-select-part #[(num) "\204 \302Z\303\304!\207" [num last-command-event 48 calc-do #[nil "\303 \210\304\3058\206\f@ \"\211\203\306\n!\202\307\310 \")\207" [calc-selection-cache-entry num sel calc-prepare-selection calc-find-nth-part 2 calc-change-current-selection error "%d is not a valid sub-formula index"] 4]] 2 nil "P"]) (defalias 'calc-find-nth-part #[(expr calc-fnp-num) "\203 \242\n\236\203\305\306 !)\207 \242\307=\203*\f\310Y\205K\f\311X\205K\fT 8\207 \211:?\2065\211@\312>\262?\205K\f\310Y\205K\f GW\205K\f 8\207" [calc-assoc-selections expr calc-assoc-ops calc-fnp-op calc-fnp-num nil calc-find-nth-part-rec intv 1 2 (frac float cplx polar hms date mod var)] 3]) (defalias 'calc-find-nth-part-rec #[(expr) "A@\242 \236\211\203@\nA@>\203\304A@!\202( S\211\305U\203+A@\206Q\3068\242 \236\211\203E@\306\n8>\203E\304\3068!\207 S\211\305U\205Q\3068\207" [expr calc-assoc-ops calc-fnp-op calc-fnp-num calc-find-nth-part-rec 0 2] 3]) (defalias 'calc-select-next #[(num) "\301W\203 \302[!\207\303\304!\207" [num 0 calc-select-previous calc-do #[nil "\306 \210\307 8\211\203\251 S\211\310Y\203\243\311 @\n\"\211\312 \313=\203)\312 A\211\2037 @\n=\203) A\203g\203` A@\242\236\211\203`\f@\3078>\203` A@A@\206c A@\202\237\203\233\f\242\236\211\203\233\311 @\f\"\211:\203\233 A@\f=\203\233 @A@>\203\233\307 8\202\237\314\315!\210+\202 \316\n!\202\304 @\211:?\206\265\211@\317>\262\203\301\316 @!\202\304\320 !*\207" [calc-selection-cache-entry entry sel num parent p calc-prepare-selection 2 0 calc-find-parent-formula nil t error "No \"next\" sub-formula" calc-change-current-selection (frac float cplx polar hms date mod var) calc-select-part op calc-assoc-selections calc-assoc-ops] 4]] 2 nil "p"]) (defalias 'calc-select-previous #[(num) "\301W\203 \302[!\207\303\304!\207" [num 0 calc-select-next calc-do #[nil "\306 \210\307 8\211\203\260 S\211\310Y\203\252\311 @\n\"\211\243\312\211\f\242\313=\203/ A @\n=\204A @ A\211\204/\203n\203h\242\236\211\203h\f@A@>\203h\3078\206j\202\246\203\242\f\242\236\211\203\242\311 @\f\"\211:\203\242\307 8\f=\203\242 @\3078>\203\242 A@\202\246\314\315!\210,\202 \316\n!\202\365 @\211:?\206\274\211@\317>\262\203\310\316 @!\202\365\203\351 @@\236\203\351\312\310\320 @!\210\321Z*\202\354 @G\322 Z!)*\207" [calc-selection-cache-entry entry sel num parent p calc-prepare-selection 2 0 calc-find-parent-formula nil intv error "No \"previous\" sub-formula" calc-change-current-selection (frac float cplx polar hms date mod var) calc-find-nth-part-rec 1 calc-select-part prev op calc-assoc-selections calc-assoc-ops calc-fnp-num calc-fnp-op len] 4]] 2 nil "p"]) (defalias 'calc-find-parent-formula #[(expr part) " =\203\304\207\211:?\206\211@\305>\262\203\306\207\306 A\211\203/\307 @ \"\211\203 \205>\n\304=\203=\202>\n*\207" [expr part res p t (frac float cplx polar hms date mod var) nil calc-find-parent-formula] 3]) (defalias 'calc-find-assoc-parent-formula #[(expr part) "\302\303 \"\"\207" [expr part calc-grow-assoc-formula calc-find-parent-formula] 5]) (defalias 'calc-grow-assoc-formula #[(expr part) "\203. \242\n\236\211\203+\306\307 \"\211:\203*\f@\310\f \" 8>\203*\f\202) )\207 \207" [calc-assoc-selections part calc-assoc-ops op new expr nil calc-find-parent-formula calc-find-sub-formula] 5]) (defalias 'calc-find-sub-formula #[(expr part) " =\203\303\207\211:?\206\211@\304>\262\203\305\207\306A\211\2031\307@ \"\2041\nT\202\2056\n)\207" [expr part num t (frac float cplx polar hms date mod var) nil 1 calc-find-sub-formula] 3]) (defalias 'calc-unselect #[(num) "\300\301!\207" [calc-do #[nil "\301!\210\302\303!\207" [num calc-prepare-selection calc-change-current-selection nil] 2]] 2 nil "P"]) (defalias 'calc-clear-selections #[nil "\300\301!\207" [calc-do #[nil "\302 \303 X\203!\304\305\"\203\306!\210\307\310!\210T\211\202*\311\312!\207" [n limit calc-stack-size 1 calc-top sel calc-prepare-selection calc-change-current-selection nil calc-clear-command-flag position-point] 4]] 2 nil nil]) (defalias 'calc-show-selections #[(arg) "\300\301!\207" [calc-do #[nil "\306 \210\203\307!\310V\202 ?\n\211\203-\311 @8\203& @\f\232\203- A\211\204 \2039\f\312 )\204N\f\203N\311\f8\fAA\313\240\210\314!\210))\315 \203a\203]\316\202k\317\202k\203j\320\202k\321!\207" [arg calc-show-selections calc-stack p calc-selection-cache-entry calc-selection-cache-default-entry calc-preserve-point prefix-numeric-value 0 2 calc-do-refresh nil calc-change-current-selection message "De-emphasizing all but selected part of formulas" "Displaying only selected part of formulas" "Emphasizing selected part of formulas" "Displaying all but selected part of formulas" sel calc-highlight-selections-with-faces] 3]] 2 nil "P"]) (defalias 'calc-preserve-point #[nil "\302\303!\206\304e`\"n\203\305\202\306\\i\307\310!\207" [calc-final-point-line calc-final-point-column looking-at "\\.\n+\\'" count-lines 1 0 calc-set-command-flag position-point] 3]) (defalias 'calc-enable-selections #[(arg) "\300\301!\207" [calc-do #[nil "\302 \210\203\303!\304V\202 ?\305\306!\210\307 \203\310\202 \311!\207" [arg calc-use-selections calc-preserve-point prefix-numeric-value 0 calc-set-command-flag renum-stack message "Commands operate only on selected sub-formulas" "Selections of sub-formulas have no effect"] 2]] 2 nil "P"]) (defalias 'calc-break-selections #[(arg) "\300\301!\207" [calc-do #[nil "\302 \210\203\303!\304X\202 ?\305 \203\306\202\307!\207" [arg calc-assoc-selections calc-preserve-point prefix-numeric-value 0 message "Selection treats a+b+c as a sum of three terms" "Selection treats a+b+c as (a+b)+c"] 2]] 2 nil "P"]) (defalias 'calc-prepare-selection #[(&optional num) "\204\306`!\307\310V\204\311\312\303\"\313\211 \232\204R \314 @!\240\210 \307\315 @\310\")\316\317!@G\203N\320\202O\310#+\321 \207" [num calc-selection-true-num calc-keep-selection entry ww w calc-locate-cursor-element t 0 1 calc-top nil calc-encase-atoms math-compose-expr + math-stack-value-offset 4 calc-preserve-point calc-selection-cache-entry calc-selection-cache-num math-comp-tagged calc-selection-cache-comp calc-left-label calc-line-numbering calc-selection-cache-offset] 5]) (defalias 'calc-encase-atoms #[(x) ":\203 \301\232\203\302\303E\207\304!\210\207" [x (float 0 0) cplx 0 calc-encase-atoms-rec] 3]) (defalias 'calc-encase-atoms-rec #[(x) "\211:?\206 \211@\301>\262\206A@\302=\203AA\211\205A@:\203.@\303\232\2039\304@\305E\240\210\202\306@!\210\202\207" [x (frac float cplx polar hms date mod var) intv (float 0 0) cplx 0 calc-encase-atoms-rec] 4]) (defalias 'calc-find-selected-part #[nil "iZ\306\307\211\212\310 \210`\311!\210`` W\203+\312y\210\f\313 \\ T\202\314 \315!\316#*\314`\n\f %\306 \307Y\203U\307V\203U\317\320\"\210A@.\207" [calc-selection-cache-offset math-comp-sel-hpos toppt lcount spaces line nil 0 beginning-of-line calc-cursor-stack-index 1 current-indentation - math-comp-ascent -1 math-composition-to-string 1000000 calc-selection-cache-num calc-selection-cache-comp math-comp-sel-vpos math-comp-sel-cpos math-comp-sel-tag calc-selection-true-num] 7]) (defalias 'calc-change-current-selection #[(sub-expr) "\306 8=\2063\n\307\211\310\311!\210 AA\240\210\312 !\210`\312 S!\210 `|\210 \313 !\314\261,\207" [sub-expr calc-selection-cache-entry calc-selection-cache-comp top buffer-read-only calc-prepared-composition 2 nil calc-set-command-flag renum-stack calc-cursor-stack-index math-format-stack-value "\n" calc-selection-cache-num calc-selection-cache-default-entry] 3]) (defalias 'calc-top-selected #[(&optional n m) "\205T \205T\n\204\306 \204\306\307\310\n \311#!\210\310 \f\311# \233\312\nS\211\313Y\203Q\314@8\203I\203B\315\202G\314@8A\202(*\207" [calc-any-selections calc-use-selections n m calc-stack-top calc-stack 1 calc-check-stack + -1 nil 0 2 t sel top] 5]) (defalias 'calc-replace-sub-formula #[(expr calc-rsf-old calc-rsf-new) "\302!\303 !\207" [calc-rsf-new expr calc-encase-atoms calc-replace-sub-formula-rec] 2]) (defalias 'calc-replace-sub-formula-rec #[(expr) " =\203\n\207\211:?\206\211@\303>\262\203\207@\304\305A\"B\207" [expr calc-rsf-old calc-rsf-new (frac float cplx polar hms date mod var) mapcar calc-replace-sub-formula-rec] 4]) (defalias 'calc-sel-error #[nil "\300\301!\207" [error "Invalid operation on sub-formulas"] 2]) (defalias 'calc-replace-selections #[(n vals m) "\306 \"\203\351\nG\307 \210 U\203v\310 \311#\312\211\312\f\203_\313\f@8\203J\314\n@!\315\f@@\313\f@8# BB\202U\n@ B\312B\nA\fA\211\204%\316 \317#\210\320 \237 \205q\237#,\202\347 \321U\203\345\310 \311#\312\f\203\227\313\f@8\204\227\fA\211\204\211\fA\211\203\253\313@8\203\232\203\263\322 \210\316 \317#\210\f\203\336\314\n@!\320\315\f@@\313\f@8#C \205\331C#)\202\341\320\n!*\202\347\322 )\207\316 \317#\210\320\n \"\207" [n m vals num old new calc-top-selected calc-preserve-point calc-top-list entry nil 2 calc-encase-atoms calc-replace-sub-formula calc-pop-stack t calc-push-list 1 calc-sel-error sel val calc-keep-selection more] 6]) (defalias 'calc-delete-selection #[(n) "\305\301\"\306 8\203\300\306 8 @=\203!\307\310\311#\210\312\313\"\202\305\314 @\306 8\"\315\316 \210\307\310\311#\210 @\317>\204L @\320=\203Q\306 8\306 8=\203Q\310\202m @\321>\204m @\f\236\203k G\322U\203k\323\202m\324\n\323=\203\224\312\325\326 @ \306 8 A@=\203\211\306 8\202\214 A@#!C\"\202\274\n\203\251\312\325\326 @\306 8\n#!C\"\202\274\312\325\326 @ \327\306 8\330 !\"#!C\"*\202\305\307\310\311#)\207" [n entry repl parent calc-tweak-eqn-table calc-top 2 calc-pop-stack 1 t calc-push-list (0) calc-find-parent-formula nil calc-preserve-point (* / %) ^ (vec calcFunc-min calcFunc-max) 3 del 0 calc-normalize calc-replace-sub-formula delq copy-sequence] 9]) (defalias 'calc-roll-down-with-selections #[(n m) "\304\305\306\"\305 ZT\"\"\304\305\306\307#\305 ZT\307#\"\310 \306\n$*\207" [m n sels vals append calc-top-list 1 sel calc-pop-push-list] 7]) (defalias 'calc-roll-up-with-selections #[(n m) "\304\305 Z\306\"\305 \307 \310#\"\"\304\305 Z\306\311#\305 \307 \310#\311#\"\312 \306\n$*\207" [n m sels vals append calc-top-list 1 - -1 sel calc-pop-push-list] 9]) (defalias 'calc-auto-selection #[(entry) "\3028\206\303\304 \210\305@\306 \"\207" [entry calc-sel-reselect 2 nil calc-prepare-selection calc-grow-assoc-formula calc-find-selected-part] 3]) (defalias 'calc-copy-selection #[nil "\300\301!\207" [calc-do #[nil "\302 \210\303\304`!]\305\301\"\306\307 !\206 @!*\207" [num entry calc-preserve-point 1 calc-locate-cursor-element calc-top calc-push calc-auto-selection] 3]] 2 nil nil]) (defalias 'calc-del-selection #[nil "\300\301!\207" [calc-do #[nil "\303 \210\304\305`!]\306\301\"\307 ! AA\n @=?\205\n\240\210\310!+\207" [num entry sel calc-preserve-point 1 calc-locate-cursor-element calc-top calc-auto-selection calc-delete-selection] 3]] 2 nil nil]) #@30 History for calc selections. (defvar calc-selection-history nil (#$ . 14055)) (defalias 'calc-enter-selection #[nil "\300\301!\207" [calc-do #[nil "\306 \210\307\310`!] \311\303\"\211@\312 !\206\f\313 C\314\315\316\317\313\320$\211\203L\321@!\322\307\323\324\f #C\n\205IC%\210*\325 .\207" [num calc-keep-selection calc-sel-reselect entry expr sel calc-preserve-point 1 calc-locate-cursor-element calc-top calc-auto-selection nil 0 calc-do-alg-entry "" "Replace selection with: " calc-selection-history calc-encase-atoms calc-pop-push-record-list "repl" calc-replace-sub-formula calc-handle-whys alg calc-dollar-used calc-dollar-values] 8]] 2 nil nil]) (defalias 'calc-edit-selection #[nil "\300\301!\210\302 \207" [calc-do #[nil "\306 \210\307\310`!] \311\303\"\211@\312 !\206\f\313\314 \315 \")\316\317\320 D\nF!\210\321\261.\207" [num calc-keep-selection calc-sel-reselect entry expr sel calc-preserve-point 1 calc-locate-cursor-element calc-top calc-auto-selection nil math-format-nice-expr frame-width calc-edit-mode calc-finish-selection-edit quote "\n" alg calc-full-float-format calc-float-format str] 6] calc-show-edit-buffer] 2 nil nil]) (defalias 'calc-finish-selection-edit #[(num sel reselect) "pd{`\306\f!\210\307\n!\211\242\310=\203(\306 !\210 A@\\b\210\310\311 8!\210\312\313!,\207" [calc-edit-top start str buf calc-original-buffer val switch-to-buffer math-read-expr error 2 calc-do #[nil "\306 \210\203\f\307\310\311\"\210\312\313 !!\314\n\315\"\316 \f\"\2032\317\310\320\321 \f #C\n \205- C%\2029\322 !\210\323\324!)\207" [calc-edit-disp-trail val num expr sel reselect calc-preserve-point calc-trail-display 1 t calc-encase-atoms calc-normalize calc-top full calc-find-sub-formula calc-pop-push-record-list "edit" calc-replace-sub-formula calc-push error "Original selection has been lost"] 7]] 4]) (defalias 'calc-sel-evaluate #[(arg) "\300\301`\"\207" [calc-do #[nil "\306 \210\307\310`!] \311\303\"\312 !\206 @ \313>?\205! \314\315!\210\316\317\f!!\320\307\321\322 @\f#C\n\205CC%\210+\323 ,\207" [num calc-keep-selection calc-sel-reselect entry sel calc-simplify-mode calc-preserve-point 1 calc-locate-cursor-element calc-top calc-auto-selection (none num) nil calc-modify-simplify-mode calc-encase-atoms calc-normalize calc-pop-push-record-list "jsmp" calc-replace-sub-formula calc-handle-whys math-simplify-only arg val] 7]] 3 nil "p"]) (defalias 'calc-sel-expand-formula #[(arg) "\300\301`\"\207" [calc-do #[nil "\306 \210\307\310`!] \311\303\"\312 !\206 @ \313>?\205! \314\315!\210\316V\317\f!\314\316X\203O\320!\211\203O\317!\321!\322\307\323\324 @\f#C\n\205gC%\210-\325 ,\207" [num calc-keep-selection calc-sel-reselect entry sel calc-simplify-mode calc-preserve-point 1 calc-locate-cursor-element calc-top calc-auto-selection (none num) nil calc-modify-simplify-mode 0 calc-normalize math-expand-formula calc-encase-atoms calc-pop-push-record-list "jexf" calc-replace-sub-formula calc-handle-whys math-simplify-only arg math-expand-formulas val top] 7]] 3 nil "p"]) (defalias 'calc-sel-mult-both-sides #[(arg &optional divide) "\300\301!\207" [calc-do #[nil "\306 \210:\307\310`!] \311\n\305\"\211@+\312 !\206+\211,\242-\313\211./\31301\314>?\205811\315\3162\203E\317\202F\320\313\321$@)\211.\203\211-\322=\204`-3\236\2035,G\323U\2035-\324>\204\246\325.!\203\215-3\236A@-\326.!\204\246\327\330!\210\202\246\331.!\204\246\332.!\203\242\327\330!\210\202\246\327\333!\2102\203\257\322\202\260\334,A@.E/2\203\302\322\202\303\334\335,8.E0 \204 \336/!/\3360!0-\322=\203 ,A@\307\337\"\340U\266\202\204,A@\341\337\"\340U\266\202\203 \204 \3420!0\203% \204%\336\3430\340U?\205!\"!0\344\345-/0E!!.\202j2\203>\334\202?\322,.E0 \204P\3360!0\344\3452\203`\3220.E\202f\334.0E!!.\346\3072\203u\347\202v\350\351+,.#C\n\f\205\206.C%\210\352 .\n\207" [arg no-simp num calc-keep-selection calc-sel-reselect entry calc-preserve-point 1 calc-locate-cursor-element calc-top calc-auto-selection nil (none num) calc-do-alg-entry "" "Divide both sides by: " "Multiply both sides by: " calc-selection-history / 3 (/ calcFunc-eq calcFunc-neq) math-known-nonposp math-known-negp message "Assuming this factor is nonzero" math-known-posp math-known-nonnegp "Assuming this factor is positive" * 2 math-simplify math-compare 0 -1 math-expand-term calcFunc-expand calc-encase-atoms calc-normalize calc-pop-push-record-list "div" "mult" calc-replace-sub-formula calc-handle-whys expr sel func alg lhs rhs calc-simplify-mode divide calc-tweak-eqn-table] 8]] 2 nil "P"]) (defalias 'calc-sel-div-both-sides #[(no-simp) "\301\302\"\207" [no-simp calc-sel-mult-both-sides t] 3 nil "P"]) (defalias 'calc-sel-add-both-sides #[(no-simp &optional subtract) "\300\301!\207" [calc-do #[nil "\306 \210\307\310`!] \311\303\"\211@\312 !\206\f\211\242\313\211 \313!\"\314>?\2052\"\"\315\316#\203?\317\202@\320\313\321$@)\211\203\354$\236\203\237 G\322U\203\237#\203c\323\202d\324 A@E #\203u\323\202v\324\325 8E!%\204\217\326 ! \326!!!\327\330 !E!!\202\317#\203\250\324\202\251\323 E!%\204\272\326!!!\327\330#\203\305\323\202\306\324!E!!\331\307#\203\332\332\202\333\333\334\f #C\n\205\351C%\210\335 . \207" [num calc-keep-selection calc-sel-reselect entry expr sel calc-preserve-point 1 calc-locate-cursor-element calc-top calc-auto-selection nil (none num) calc-do-alg-entry "" "Subtract from both sides: " "Add to both sides: " calc-selection-history 3 - + 2 math-simplify calc-encase-atoms calc-normalize calc-pop-push-record-list "sub" "add" calc-replace-sub-formula calc-handle-whys func alg lhs rhs calc-simplify-mode subtract calc-tweak-eqn-table no-simp] 8]] 2 nil "P"]) (defalias 'calc-sel-sub-both-sides #[(no-simp) "\301\302\"\207" [no-simp calc-sel-add-both-sides t] 3 nil "P"]) (provide 'calc-sel)