comparison lisp/calc/calc-ext.el @ 90054:f2ebccfa87d4

Revision: miles@gnu.org--gnu-2004/emacs--unicode--0--patch-74 Merge from emacs--cvs-trunk--0 Patches applied: * miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-709 Update from CVS: src/indent.c (Fvertical_motion): Fix last change. * miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-710 - miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-715 Update from CVS * miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-716 Merge from gnus--rel--5.10 * miles@gnu.org--gnu-2004/gnus--rel--5.10--patch-74 Update from CVS
author Miles Bader <miles@gnu.org>
date Wed, 08 Dec 2004 05:02:30 +0000
parents b637c617432f 599d383ee37d
children fb79180b618d
comparison
equal deleted inserted replaced
90053:fff5f1a61d92 90054:f2ebccfa87d4
24 24
25 ;;; Commentary: 25 ;;; Commentary:
26 26
27 ;;; Code: 27 ;;; Code:
28 28
29 (provide 'calc-ext)
30 (require 'calc) 29 (require 'calc)
31
32 (setq calc-extensions-loaded t)
33
34 ;;; This function is the autoload "hook" to cause this file to be loaded.
35 ;;;###autoload
36 (defun calc-extensions ()
37 "This function is part of the autoload linkage for parts of Calc."
38 t)
39
40 ;;; Auto-load calc.el part, in case this part was loaded first.
41 (if (fboundp 'calc-dispatch)
42 (and (eq (car-safe (symbol-function 'calc-dispatch)) 'autoload)
43 (load (nth 1 (symbol-function 'calc-dispatch))))
44 (if (fboundp 'calc)
45 (and (eq (car-safe (symbol-function 'calc)) 'autoload)
46 (load (nth 1 (symbol-function 'calc))))
47 (error "Main part of Calc must be present in order to load this file")))
48
49 (require 'calc-macs) 30 (require 'calc-macs)
50 31
51 (defvar math-simplifying nil) 32 (defvar math-simplifying nil)
52 (defvar math-living-dangerously nil) ; true if unsafe simplifications are okay. 33 (defvar math-living-dangerously nil) ; true if unsafe simplifications are okay.
53 (defvar math-integrating nil) 34 (defvar math-integrating nil)
666 (mapcar (function (lambda (x) 647 (mapcar (function (lambda (x)
667 (mapcar (function (lambda (func) 648 (mapcar (function (lambda (func)
668 (autoload func (car x)))) (cdr x)))) 649 (autoload func (car x)))) (cdr x))))
669 '( 650 '(
670 651
671 ("calc-alg" calc-Need-calc-alg calc-has-rules 652 ("calc-alg" calc-has-rules math-defsimplify
672 calc-modify-simplify-mode calcFunc-collect calcFunc-esimplify 653 calc-modify-simplify-mode calcFunc-collect calcFunc-esimplify
673 calcFunc-islin calcFunc-islinnt calcFunc-lin calcFunc-linnt 654 calcFunc-islin calcFunc-islinnt calcFunc-lin calcFunc-linnt
674 calcFunc-simplify calcFunc-subst math-beforep 655 calcFunc-simplify calcFunc-subst math-beforep
675 math-build-polynomial-expr math-expand-formula math-expr-contains 656 math-build-polynomial-expr math-expand-formula math-expr-contains
676 math-expr-contains-count math-expr-depends math-expr-height 657 math-expr-contains-count math-expr-depends math-expr-height
677 math-expr-subst math-expr-weight math-integer-plus math-is-linear 658 math-expr-subst math-expr-weight math-integer-plus math-is-linear
678 math-is-multiple math-is-polynomial math-linear-in math-multiple-of 659 math-is-multiple math-is-polynomial math-linear-in math-multiple-of
679 math-need-std-simps math-poly-depends math-poly-mix math-poly-mul 660 math-poly-depends math-poly-mix math-poly-mul
680 math-poly-simplify math-poly-zerop math-polynomial-base 661 math-poly-simplify math-poly-zerop math-polynomial-base
681 math-polynomial-p math-recompile-eval-rules math-simplify 662 math-polynomial-p math-recompile-eval-rules math-simplify
682 math-simplify-exp math-simplify-extended math-simplify-sqrt 663 math-simplify-exp math-simplify-extended math-simplify-sqrt
683 math-to-simple-fraction) 664 math-to-simple-fraction)
684 665
685 ("calcalg2" calc-Need-calc-alg-2 calcFunc-asum calcFunc-deriv 666 ("calcalg2" calcFunc-asum calcFunc-deriv
686 calcFunc-ffinv calcFunc-finv calcFunc-fsolve calcFunc-gpoly 667 calcFunc-ffinv calcFunc-finv calcFunc-fsolve calcFunc-gpoly
687 calcFunc-integ calcFunc-poly calcFunc-prod calcFunc-roots 668 calcFunc-integ calcFunc-poly calcFunc-prod calcFunc-roots
688 calcFunc-solve calcFunc-sum calcFunc-table calcFunc-taylor 669 calcFunc-solve calcFunc-sum calcFunc-table calcFunc-taylor
689 calcFunc-tderiv math-expr-calls math-integral-q02 math-integral-q12 670 calcFunc-tderiv math-expr-calls math-integral-q02 math-integral-q12
690 math-integral-rational-funcs math-lcm-denoms math-looks-evenp 671 math-integral-rational-funcs math-lcm-denoms math-looks-evenp
691 math-poly-all-roots math-prod-rec math-reject-solution math-solve-eqn 672 math-poly-all-roots math-prod-rec math-reject-solution math-solve-eqn
692 math-solve-for math-sum-rec math-try-integral) 673 math-solve-for math-sum-rec math-try-integral)
693 674
694 ("calcalg3" calc-Need-calc-alg-3 calcFunc-efit calcFunc-fit 675 ("calcalg3" calcFunc-efit calcFunc-fit
695 calcFunc-fitdummy calcFunc-fitparam calcFunc-fitvar 676 calcFunc-fitdummy calcFunc-fitparam calcFunc-fitvar
696 calcFunc-hasfitparams calcFunc-hasfitvars calcFunc-maximize 677 calcFunc-hasfitparams calcFunc-hasfitvars calcFunc-maximize
697 calcFunc-minimize calcFunc-ninteg calcFunc-polint calcFunc-ratint 678 calcFunc-minimize calcFunc-ninteg calcFunc-polint calcFunc-ratint
698 calcFunc-root calcFunc-wmaximize calcFunc-wminimize calcFunc-wroot 679 calcFunc-root calcFunc-wmaximize calcFunc-wminimize calcFunc-wroot
699 calcFunc-xfit math-find-minimum math-find-root math-ninteg-evaluate 680 calcFunc-xfit math-find-minimum math-find-root math-ninteg-evaluate
700 math-ninteg-midpoint math-ninteg-romberg math-poly-interp) 681 math-ninteg-midpoint math-ninteg-romberg math-poly-interp)
701 682
702 ("calc-arith" calc-Need-calc-arith calcFunc-abs calcFunc-abssqr 683 ("calc-arith" calcFunc-abs calcFunc-abssqr
703 calcFunc-add calcFunc-ceil calcFunc-decr calcFunc-deven calcFunc-dimag 684 calcFunc-add calcFunc-ceil calcFunc-decr calcFunc-deven calcFunc-dimag
704 calcFunc-dint calcFunc-div calcFunc-dnatnum calcFunc-dneg 685 calcFunc-dint calcFunc-div calcFunc-dnatnum calcFunc-dneg
705 calcFunc-dnonneg calcFunc-dnonzero calcFunc-dnumint calcFunc-dodd 686 calcFunc-dnonneg calcFunc-dnonzero calcFunc-dnumint calcFunc-dodd
706 calcFunc-dpos calcFunc-drange calcFunc-drat calcFunc-dreal 687 calcFunc-dpos calcFunc-drange calcFunc-drat calcFunc-dreal
707 calcFunc-dscalar calcFunc-fceil calcFunc-ffloor calcFunc-float 688 calcFunc-dscalar calcFunc-fceil calcFunc-ffloor calcFunc-float
723 math-neg-float math-okay-neg math-possible-signs math-possible-types 704 math-neg-float math-okay-neg math-possible-signs math-possible-types
724 math-pow-fancy math-pow-mod math-pow-of-zero math-pow-zero 705 math-pow-fancy math-pow-mod math-pow-of-zero math-pow-zero
725 math-quarter-integer math-round math-setup-declarations math-sqr 706 math-quarter-integer math-round math-setup-declarations math-sqr
726 math-sqr-float math-trunc-fancy math-trunc-special) 707 math-sqr-float math-trunc-fancy math-trunc-special)
727 708
728 ("calc-bin" calc-Need-calc-bin calcFunc-and calcFunc-ash 709 ("calc-bin" calcFunc-and calcFunc-ash
729 calcFunc-clip calcFunc-diff calcFunc-lsh calcFunc-not calcFunc-or 710 calcFunc-clip calcFunc-diff calcFunc-lsh calcFunc-not calcFunc-or
730 calcFunc-rash calcFunc-rot calcFunc-rsh calcFunc-xor math-clip 711 calcFunc-rash calcFunc-rot calcFunc-rsh calcFunc-xor math-clip
731 math-compute-max-digits math-convert-radix-digits math-float-parts 712 math-compute-max-digits math-convert-radix-digits math-float-parts
732 math-format-bignum-binary math-format-bignum-hex 713 math-format-bignum-binary math-format-bignum-hex
733 math-format-bignum-octal math-format-bignum-radix math-format-binary 714 math-format-bignum-octal math-format-bignum-radix math-format-binary
734 math-format-radix math-format-radix-float math-integer-log2 715 math-format-radix math-format-radix-float math-integer-log2
735 math-power-of-2 math-radix-float-power) 716 math-power-of-2 math-radix-float-power)
736 717
737 ("calc-comb" calc-Need-calc-comb calc-report-prime-test 718 ("calc-comb" calc-report-prime-test
738 calcFunc-choose calcFunc-dfact calcFunc-egcd calcFunc-fact 719 calcFunc-choose calcFunc-dfact calcFunc-egcd calcFunc-fact
739 calcFunc-gcd calcFunc-lcm calcFunc-moebius calcFunc-nextprime 720 calcFunc-gcd calcFunc-lcm calcFunc-moebius calcFunc-nextprime
740 calcFunc-perm calcFunc-prevprime calcFunc-prfac calcFunc-prime 721 calcFunc-perm calcFunc-prevprime calcFunc-prfac calcFunc-prime
741 calcFunc-random calcFunc-shuffle calcFunc-stir1 calcFunc-stir2 722 calcFunc-random calcFunc-shuffle calcFunc-stir1 calcFunc-stir2
742 calcFunc-totient math-init-random-base math-member math-prime-test 723 calcFunc-totient math-init-random-base math-member math-prime-test
743 math-random-base) 724 math-random-base)
744 725
745 ("calccomp" calc-Need-calc-comp calcFunc-cascent calcFunc-cdescent 726 ("calccomp" calcFunc-cascent calcFunc-cdescent
746 calcFunc-cheight calcFunc-cwidth math-comp-ascent math-comp-descent 727 calcFunc-cheight calcFunc-cwidth math-comp-ascent math-comp-descent
747 math-comp-height math-comp-width math-compose-expr 728 math-comp-height math-comp-width math-compose-expr
748 math-composition-to-string math-stack-value-offset-fancy 729 math-composition-to-string math-stack-value-offset-fancy
749 math-vector-is-string math-vector-to-string) 730 math-vector-is-string math-vector-to-string)
750 731
751 ("calc-cplx" calc-Need-calc-cplx calcFunc-arg calcFunc-conj 732 ("calc-cplx" calcFunc-arg calcFunc-conj
752 calcFunc-im calcFunc-polar calcFunc-re calcFunc-rect math-complex 733 calcFunc-im calcFunc-polar calcFunc-re calcFunc-rect math-complex
753 math-fix-circular math-imaginary math-imaginary-i math-normalize-polar 734 math-fix-circular math-imaginary math-imaginary-i math-normalize-polar
754 math-polar math-want-polar) 735 math-polar math-want-polar)
755 736
756 ("calc-embed" calc-Need-calc-embed calc-do-embedded 737 ("calc-embed" calc-do-embedded
757 calc-do-embedded-activate calc-embedded-evaluate-expr 738 calc-do-embedded-activate calc-embedded-evaluate-expr
758 calc-embedded-modes-change calc-embedded-var-change) 739 calc-embedded-modes-change calc-embedded-var-change)
759 740
760 ("calc-fin" calc-Need-calc-fin calc-to-percentage calcFunc-ddb 741 ("calc-fin" calc-to-percentage calcFunc-ddb
761 calcFunc-fv calcFunc-fvb calcFunc-fvl calcFunc-irr calcFunc-irrb 742 calcFunc-fv calcFunc-fvb calcFunc-fvl calcFunc-irr calcFunc-irrb
762 calcFunc-nper calcFunc-nperb calcFunc-nperl calcFunc-npv calcFunc-npvb 743 calcFunc-nper calcFunc-nperb calcFunc-nperl calcFunc-npv calcFunc-npvb
763 calcFunc-pmt calcFunc-pmtb calcFunc-pv calcFunc-pvb calcFunc-pvl 744 calcFunc-pmt calcFunc-pmtb calcFunc-pv calcFunc-pvb calcFunc-pvl
764 calcFunc-rate calcFunc-rateb calcFunc-ratel calcFunc-sln calcFunc-syd) 745 calcFunc-rate calcFunc-rateb calcFunc-ratel calcFunc-sln calcFunc-syd)
765 746
766 ("calc-forms" calc-Need-calc-forms calcFunc-badd calcFunc-bsub 747 ("calc-forms" calcFunc-badd calcFunc-bsub
767 calcFunc-date calcFunc-day calcFunc-dsadj calcFunc-hms 748 calcFunc-date calcFunc-day calcFunc-dsadj calcFunc-hms
768 calcFunc-holiday calcFunc-hour calcFunc-incmonth calcFunc-incyear 749 calcFunc-holiday calcFunc-hour calcFunc-incmonth calcFunc-incyear
769 calcFunc-intv calcFunc-julian calcFunc-makemod calcFunc-minute 750 calcFunc-intv calcFunc-julian calcFunc-makemod calcFunc-minute
770 calcFunc-month calcFunc-newmonth calcFunc-newweek calcFunc-newyear 751 calcFunc-month calcFunc-newmonth calcFunc-newweek calcFunc-newyear
771 calcFunc-now calcFunc-pwday calcFunc-sdev calcFunc-second 752 calcFunc-now calcFunc-pwday calcFunc-sdev calcFunc-second
776 math-make-mod math-make-sdev math-mod-intv math-normalize-hms 757 math-make-mod math-make-sdev math-mod-intv math-normalize-hms
777 math-normalize-mod math-parse-date math-read-angle-brackets 758 math-normalize-mod math-parse-date math-read-angle-brackets
778 math-setup-add-holidays math-setup-holidays math-setup-year-holidays 759 math-setup-add-holidays math-setup-holidays math-setup-year-holidays
779 math-sort-intv math-to-business-day math-to-hms) 760 math-sort-intv math-to-business-day math-to-hms)
780 761
781 ("calc-frac" calc-Need-calc-frac calc-add-fractions 762 ("calc-frac" calc-add-fractions
782 calc-div-fractions calc-mul-fractions calcFunc-fdiv calcFunc-frac 763 calc-div-fractions calc-mul-fractions calcFunc-fdiv calcFunc-frac
783 math-make-frac) 764 math-make-frac)
784 765
785 ("calc-funcs" calc-Need-calc-funcs calc-prob-dist calcFunc-bern 766 ("calc-funcs" calc-prob-dist calcFunc-bern
786 calcFunc-besJ calcFunc-besY calcFunc-beta calcFunc-betaB 767 calcFunc-besJ calcFunc-besY calcFunc-beta calcFunc-betaB
787 calcFunc-betaI calcFunc-erf calcFunc-erfc calcFunc-euler 768 calcFunc-betaI calcFunc-erf calcFunc-erfc calcFunc-euler
788 calcFunc-gamma calcFunc-gammaG calcFunc-gammaP calcFunc-gammaQ 769 calcFunc-gamma calcFunc-gammaG calcFunc-gammaP calcFunc-gammaQ
789 calcFunc-gammag calcFunc-ltpb calcFunc-ltpc calcFunc-ltpf 770 calcFunc-gammag calcFunc-ltpb calcFunc-ltpc calcFunc-ltpf
790 calcFunc-ltpn calcFunc-ltpp calcFunc-ltpt calcFunc-utpb calcFunc-utpc 771 calcFunc-ltpn calcFunc-ltpp calcFunc-ltpt calcFunc-utpb calcFunc-utpc
791 calcFunc-utpf calcFunc-utpn calcFunc-utpp calcFunc-utpt 772 calcFunc-utpf calcFunc-utpn calcFunc-utpp calcFunc-utpt
792 math-bernoulli-number math-gammap1-raw) 773 math-bernoulli-number math-gammap1-raw)
793 774
794 ("calc-graph" calc-Need-calc-graph calc-graph-show-tty) 775 ("calc-graph" calc-graph-show-tty)
795 776
796 ("calc-help" calc-Need-calc-help) 777 ("calc-incom" calc-digit-dots)
797 778
798 ("calc-incom" calc-Need-calc-incom calc-digit-dots) 779 ("calc-keypd" calc-do-keypad
799
800 ("calc-keypd" calc-Need-calc-keypd calc-do-keypad
801 calc-keypad-x-left-click calc-keypad-x-middle-click 780 calc-keypad-x-left-click calc-keypad-x-middle-click
802 calc-keypad-x-right-click) 781 calc-keypad-x-right-click)
803 782
804 ("calc-lang" calc-Need-calc-lang calc-set-language 783 ("calc-lang" calc-set-language
805 math-read-big-balance math-read-big-rec) 784 math-read-big-balance math-read-big-rec)
806 785
807 ("calc-map" calc-Need-calc-map calc-get-operator calcFunc-accum 786 ("calc-map" calc-get-operator calcFunc-accum
808 calcFunc-afixp calcFunc-anest calcFunc-apply calcFunc-call 787 calcFunc-afixp calcFunc-anest calcFunc-apply calcFunc-call
809 calcFunc-fixp calcFunc-inner calcFunc-map calcFunc-mapa calcFunc-mapc 788 calcFunc-fixp calcFunc-inner calcFunc-map calcFunc-mapa calcFunc-mapc
810 calcFunc-mapd calcFunc-mapeq calcFunc-mapeqp calcFunc-mapeqr 789 calcFunc-mapd calcFunc-mapeq calcFunc-mapeqp calcFunc-mapeqr
811 calcFunc-mapr calcFunc-nest calcFunc-outer calcFunc-raccum 790 calcFunc-mapr calcFunc-nest calcFunc-outer calcFunc-raccum
812 calcFunc-reduce calcFunc-reducea calcFunc-reducec calcFunc-reduced 791 calcFunc-reduce calcFunc-reducea calcFunc-reducec calcFunc-reduced
813 calcFunc-reducer calcFunc-rreduce calcFunc-rreducea calcFunc-rreducec 792 calcFunc-reducer calcFunc-rreduce calcFunc-rreducea calcFunc-rreducec
814 calcFunc-rreduced calcFunc-rreducer math-build-call 793 calcFunc-rreduced calcFunc-rreducer math-build-call
815 math-calcFunc-to-var math-multi-subst math-multi-subst-rec 794 math-calcFunc-to-var math-multi-subst math-multi-subst-rec
816 math-var-to-calcFunc) 795 math-var-to-calcFunc)
817 796
818 ("calc-mtx" calc-Need-calc-mat calcFunc-det calcFunc-lud calcFunc-tr 797 ("calc-mtx" calcFunc-det calcFunc-lud calcFunc-tr
819 math-col-matrix math-lud-solve math-matrix-inv-raw math-matrix-lud 798 math-col-matrix math-lud-solve math-matrix-inv-raw math-matrix-lud
820 math-mul-mat-vec math-mul-mats math-row-matrix) 799 math-mul-mat-vec math-mul-mats math-row-matrix)
821 800
822 ("calc-math" calc-Need-calc-math calcFunc-alog calcFunc-arccos 801 ("calc-math" calcFunc-alog calcFunc-arccos
823 calcFunc-arccosh calcFunc-arcsin calcFunc-arcsincos calcFunc-arcsinh 802 calcFunc-arccosh calcFunc-arcsin calcFunc-arcsincos calcFunc-arcsinh
824 calcFunc-arctan calcFunc-arctan2 calcFunc-arctanh calcFunc-cos 803 calcFunc-arctan calcFunc-arctan2 calcFunc-arctanh calcFunc-cos
825 calcFunc-cosh calcFunc-deg calcFunc-exp calcFunc-exp10 calcFunc-expm1 804 calcFunc-cosh calcFunc-deg calcFunc-exp calcFunc-exp10 calcFunc-expm1
826 calcFunc-hypot calcFunc-ilog calcFunc-isqrt calcFunc-ln calcFunc-lnp1 805 calcFunc-hypot calcFunc-ilog calcFunc-isqrt calcFunc-ln calcFunc-lnp1
827 calcFunc-log calcFunc-log10 calcFunc-nroot calcFunc-rad calcFunc-sin 806 calcFunc-log calcFunc-log10 calcFunc-nroot calcFunc-rad calcFunc-sin
832 math-isqrt-small math-ln-raw math-nearly-equal math-nearly-equal-float 811 math-isqrt-small math-ln-raw math-nearly-equal math-nearly-equal-float
833 math-nearly-zerop math-nearly-zerop-float math-nth-root 812 math-nearly-zerop math-nearly-zerop-float math-nth-root
834 math-sin-cos-raw math-sin-raw math-sqrt math-sqrt-float math-sqrt-raw 813 math-sin-cos-raw math-sin-raw math-sqrt math-sqrt-float math-sqrt-raw
835 math-tan-raw math-to-radians math-to-radians-2) 814 math-tan-raw math-to-radians math-to-radians-2)
836 815
837 ("calc-mode" calc-Need-calc-mode math-get-modes-vec) 816 ("calc-mode" math-get-modes-vec)
838 817
839 ("calc-poly" calc-Need-calc-poly calcFunc-apart calcFunc-expand 818 ("calc-poly" calcFunc-apart calcFunc-expand
840 calcFunc-expandpow calcFunc-factor calcFunc-factors calcFunc-nrat 819 calcFunc-expandpow calcFunc-factor calcFunc-factors calcFunc-nrat
841 calcFunc-pcont calcFunc-pdeg calcFunc-pdiv calcFunc-pdivide 820 calcFunc-pcont calcFunc-pdeg calcFunc-pdiv calcFunc-pdivide
842 calcFunc-pdivrem calcFunc-pgcd calcFunc-plead calcFunc-pprim 821 calcFunc-pdivrem calcFunc-pgcd calcFunc-plead calcFunc-pprim
843 calcFunc-prem math-accum-factors math-atomic-factorp 822 calcFunc-prem math-accum-factors math-atomic-factorp
844 math-div-poly-const math-div-thru math-expand-power math-expand-term 823 math-div-poly-const math-div-thru math-expand-power math-expand-term
847 math-factor-protect math-mul-thru math-padded-polynomial 826 math-factor-protect math-mul-thru math-padded-polynomial
848 math-partial-fractions math-poly-degree math-poly-deriv-coefs 827 math-partial-fractions math-poly-degree math-poly-deriv-coefs
849 math-poly-gcd-frac-list math-poly-modulus-rec math-ratpoly-p 828 math-poly-gcd-frac-list math-poly-modulus-rec math-ratpoly-p
850 math-to-ratpoly math-to-ratpoly-rec) 829 math-to-ratpoly math-to-ratpoly-rec)
851 830
852 ("calc-prog" calc-Need-calc-prog calc-default-formula-arglist 831 ("calc-prog" calc-default-formula-arglist
853 calc-execute-kbd-macro calc-finish-user-syntax-edit 832 calc-execute-kbd-macro calc-finish-user-syntax-edit
854 calc-fix-token-name calc-fix-user-formula calc-read-parse-table 833 calc-fix-token-name calc-fix-user-formula calc-read-parse-table
855 calc-read-parse-table-part calc-subsetp calc-write-parse-table 834 calc-read-parse-table-part calc-subsetp calc-write-parse-table
856 calc-write-parse-table-part calcFunc-constant calcFunc-eq calcFunc-geq 835 calc-write-parse-table-part calcFunc-constant calcFunc-eq calcFunc-geq
857 calcFunc-gt calcFunc-if calcFunc-in calcFunc-integer calcFunc-istrue 836 calcFunc-gt calcFunc-if calcFunc-in calcFunc-integer calcFunc-istrue
860 calcFunc-refers calcFunc-rmeq calcFunc-typeof calcFunc-variable 839 calcFunc-refers calcFunc-rmeq calcFunc-typeof calcFunc-variable
861 math-body-refers-to math-break math-composite-inequalities 840 math-body-refers-to math-break math-composite-inequalities
862 math-do-defmath math-handle-for math-handle-foreach 841 math-do-defmath math-handle-for math-handle-foreach
863 math-normalize-logical-op math-return) 842 math-normalize-logical-op math-return)
864 843
865 ("calc-rewr" calc-Need-calc-rewr calcFunc-match calcFunc-matches 844 ("calc-rewr" calcFunc-match calcFunc-matches
866 calcFunc-matchnot calcFunc-rewrite calcFunc-vmatches 845 calcFunc-matchnot calcFunc-rewrite calcFunc-vmatches
867 math-apply-rewrites math-compile-patterns math-compile-rewrites 846 math-apply-rewrites math-compile-patterns math-compile-rewrites
868 math-flatten-lands math-match-patterns math-rewrite 847 math-flatten-lands math-match-patterns math-rewrite
869 math-rewrite-heads) 848 math-rewrite-heads)
870 849
871 ("calc-rules" calc-CommuteRules calc-DistribRules calc-FactorRules 850 ("calc-rules" calc-CommuteRules calc-DistribRules calc-FactorRules
872 calc-FitRules calc-IntegAfterRules calc-InvertRules calc-JumpRules 851 calc-FitRules calc-IntegAfterRules calc-InvertRules calc-JumpRules
873 calc-MergeRules calc-Need-calc-rules calc-NegateRules 852 calc-MergeRules calc-NegateRules
874 calc-compile-rule-set) 853 calc-compile-rule-set)
875 854
876 ("calc-sel" calc-Need-calc-sel calc-auto-selection 855 ("calc-sel" calc-auto-selection
877 calc-delete-selection calc-encase-atoms calc-find-assoc-parent-formula 856 calc-delete-selection calc-encase-atoms calc-find-assoc-parent-formula
878 calc-find-parent-formula calc-find-sub-formula calc-prepare-selection 857 calc-find-parent-formula calc-find-sub-formula calc-prepare-selection
879 calc-preserve-point calc-replace-selections calc-replace-sub-formula 858 calc-preserve-point calc-replace-selections calc-replace-sub-formula
880 calc-roll-down-with-selections calc-roll-up-with-selections 859 calc-roll-down-with-selections calc-roll-up-with-selections
881 calc-sel-error) 860 calc-sel-error)
882 861
883 ("calcsel2" calc-Need-calc-sel-2) 862 ("calc-stat" calc-vector-op calcFunc-agmean
884
885 ("calc-stat" calc-Need-calc-stat calc-vector-op calcFunc-agmean
886 calcFunc-vcorr calcFunc-vcount calcFunc-vcov calcFunc-vflat 863 calcFunc-vcorr calcFunc-vcount calcFunc-vcov calcFunc-vflat
887 calcFunc-vgmean calcFunc-vhmean calcFunc-vmax calcFunc-vmean 864 calcFunc-vgmean calcFunc-vhmean calcFunc-vmax calcFunc-vmean
888 calcFunc-vmeane calcFunc-vmedian calcFunc-vmin calcFunc-vpcov 865 calcFunc-vmeane calcFunc-vmedian calcFunc-vmin calcFunc-vpcov
889 calcFunc-vprod calcFunc-vpsdev calcFunc-vpvar calcFunc-vsdev 866 calcFunc-vprod calcFunc-vpsdev calcFunc-vpvar calcFunc-vsdev
890 calcFunc-vsum calcFunc-vvar math-flatten-many-vecs) 867 calcFunc-vsum calcFunc-vvar math-flatten-many-vecs)
891 868
892 ("calc-store" calc-Need-calc-store calc-read-var-name 869 ("calc-store" calc-read-var-name
893 calc-store-value calc-var-name) 870 calc-store-value calc-var-name)
894 871
895 ("calc-stuff" calc-Need-calc-stuff calc-explain-why calcFunc-clean 872 ("calc-stuff" calc-explain-why calcFunc-clean
896 calcFunc-pclean calcFunc-pfloat calcFunc-pfrac) 873 calcFunc-pclean calcFunc-pfloat calcFunc-pfrac)
897 874
898 ("calc-trail" calc-Need-calc-trail) 875 ("calc-units" calcFunc-usimplify
899
900 ("calc-undo" calc-Need-calc-undo)
901
902 ("calc-units" calc-Need-calc-units calcFunc-usimplify
903 math-build-units-table math-build-units-table-buffer 876 math-build-units-table math-build-units-table-buffer
904 math-check-unit-name math-convert-temperature math-convert-units 877 math-check-unit-name math-convert-temperature math-convert-units
905 math-extract-units math-remove-units math-simplify-units 878 math-extract-units math-remove-units math-simplify-units
906 math-single-units-in-expr-p math-to-standard-units 879 math-single-units-in-expr-p math-to-standard-units
907 math-units-in-expr-p) 880 math-units-in-expr-p)
908 881
909 ("calc-vec" calc-Need-calc-vec calcFunc-append calcFunc-appendrev 882 ("calc-vec" calcFunc-append calcFunc-appendrev
910 calcFunc-arrange calcFunc-cnorm calcFunc-cons calcFunc-cross 883 calcFunc-arrange calcFunc-cnorm calcFunc-cons calcFunc-cross
911 calcFunc-ctrn calcFunc-cvec calcFunc-diag calcFunc-find 884 calcFunc-ctrn calcFunc-cvec calcFunc-diag calcFunc-find
912 calcFunc-getdiag calcFunc-grade calcFunc-head calcFunc-histogram 885 calcFunc-getdiag calcFunc-grade calcFunc-head calcFunc-histogram
913 calcFunc-idn calcFunc-index calcFunc-mcol calcFunc-mdims 886 calcFunc-idn calcFunc-index calcFunc-mcol calcFunc-mdims
914 calcFunc-mrcol calcFunc-mrow calcFunc-mrrow calcFunc-pack 887 calcFunc-mrcol calcFunc-mrow calcFunc-mrrow calcFunc-pack
923 calcFunc-vxor math-check-for-commas math-clean-set math-copy-matrix 896 calcFunc-vxor math-check-for-commas math-clean-set math-copy-matrix
924 math-dimension-error math-dot-product math-flatten-vector math-map-vec 897 math-dimension-error math-dot-product math-flatten-vector math-map-vec
925 math-map-vec-2 math-mat-col math-mimic-ident math-prepare-set 898 math-map-vec-2 math-mat-col math-mimic-ident math-prepare-set
926 math-read-brackets math-reduce-cols math-reduce-vec math-transpose) 899 math-read-brackets math-reduce-cols math-reduce-vec math-transpose)
927 900
928 ("calc-yank" calc-Need-calc-yank calc-alg-edit calc-clean-newlines 901 ("calc-yank" calc-alg-edit calc-clean-newlines
929 calc-do-grab-rectangle calc-do-grab-region calc-finish-stack-edit 902 calc-do-grab-rectangle calc-do-grab-region calc-finish-stack-edit
930 calc-force-refresh calc-locate-cursor-element calc-show-edit-buffer) 903 calc-force-refresh calc-locate-cursor-element calc-show-edit-buffer)
931 904
932 )) 905 ))
933 906
1173 1146
1174 1147
1175 1148
1176 1149
1177 ;;;; Miscellaneous. 1150 ;;;; Miscellaneous.
1151
1152 ;; calc-command-flags is declared in calc.el
1153 (defvar calc-command-flags)
1178 1154
1179 (defun calc-clear-command-flag (f) 1155 (defun calc-clear-command-flag (f)
1180 (setq calc-command-flags (delq f calc-command-flags))) 1156 (setq calc-command-flags (delq f calc-command-flags)))
1181 1157
1182 1158
1340 (message "Floating-point precision is %d digits" calc-internal-prec))) 1316 (message "Floating-point precision is %d digits" calc-internal-prec)))
1341 1317
1342 1318
1343 (defun calc-inverse (&optional n) 1319 (defun calc-inverse (&optional n)
1344 (interactive "P") 1320 (interactive "P")
1345 (calc-fancy-prefix 'calc-inverse-flag "Inverse..." n)) 1321 (let* ((hyp-flag (if (or
1322 (eq major-mode 'calc-keypad-mode)
1323 (eq major-mode 'calc-trail-mode))
1324 (with-current-buffer calc-main-buffer
1325 calc-hyperbolic-flag)
1326 calc-hyperbolic-flag))
1327 (msg (if hyp-flag
1328 "Inverse Hyperbolic..."
1329 "Inverse...")))
1330 (calc-fancy-prefix 'calc-inverse-flag msg n)))
1346 1331
1347 (defconst calc-fancy-prefix-map 1332 (defconst calc-fancy-prefix-map
1348 (let ((map (make-sparse-keymap))) 1333 (let ((map (make-sparse-keymap)))
1349 (define-key map [t] 'calc-fancy-prefix-other-key) 1334 (define-key map [t] 'calc-fancy-prefix-other-key)
1350 (define-key map (vector meta-prefix-char t) 'calc-fancy-prefix-other-key) 1335 (define-key map (vector meta-prefix-char t) 'calc-fancy-prefix-other-key)
1408 (defun calc-is-inverse () 1393 (defun calc-is-inverse ()
1409 calc-inverse-flag) 1394 calc-inverse-flag)
1410 1395
1411 (defun calc-hyperbolic (&optional n) 1396 (defun calc-hyperbolic (&optional n)
1412 (interactive "P") 1397 (interactive "P")
1413 (calc-fancy-prefix 'calc-hyperbolic-flag "Hyperbolic..." n)) 1398 (let* ((inv-flag (if (or
1399 (eq major-mode 'calc-keypad-mode)
1400 (eq major-mode 'calc-trail-mode))
1401 (with-current-buffer calc-main-buffer
1402 calc-inverse-flag)
1403 calc-inverse-flag))
1404 (msg (if inv-flag
1405 "Inverse Hyperbolic..."
1406 "Hyperbolic...")))
1407 (calc-fancy-prefix 'calc-hyperbolic-flag msg n)))
1414 1408
1415 (defun calc-hyperbolic-func () 1409 (defun calc-hyperbolic-func ()
1416 (save-excursion 1410 (save-excursion
1417 (calc-select-buffer) 1411 (calc-select-buffer)
1418 (setq calc-inverse-flag (calc-is-inverse) 1412 (setq calc-inverse-flag (calc-is-inverse)
1652 (if (calc-is-hyperbolic) 'calcFunc-float 'calcFunc-pfloat) 1646 (if (calc-is-hyperbolic) 'calcFunc-float 'calcFunc-pfloat)
1653 arg))) 1647 arg)))
1654 1648
1655 1649
1656 (defvar calc-gnuplot-process nil) 1650 (defvar calc-gnuplot-process nil)
1657 1651 (defvar calc-gnuplot-input)
1652 (defvar calc-gnuplot-buffer)
1658 1653
1659 (defun calc-gnuplot-alive () 1654 (defun calc-gnuplot-alive ()
1660 (and calc-gnuplot-process 1655 (and calc-gnuplot-process
1661 calc-gnuplot-buffer 1656 calc-gnuplot-buffer
1662 (buffer-name calc-gnuplot-buffer) 1657 (buffer-name calc-gnuplot-buffer)
1668 1663
1669 1664
1670 1665
1671 (defun calc-load-everything () 1666 (defun calc-load-everything ()
1672 (interactive) 1667 (interactive)
1673 (calc-need-macros) ; calc-macs.el 1668 (require 'calc-aent)
1674 (calc-record-list nil) ; calc-misc.el 1669 (require 'calc-alg)
1675 (math-read-exprs "0") ; calc-aent.el 1670 (require 'calc-arith)
1676 1671 (require 'calc-bin)
1677 ;;;; (Loads here) 1672 (require 'calc-comb)
1678 (calc-Need-calc-alg-2) 1673 (require 'calc-cplx)
1679 (calc-Need-calc-alg-3) 1674 (require 'calc-embed)
1680 (calc-Need-calc-alg) 1675 (require 'calc-fin)
1681 (calc-Need-calc-arith) 1676 (require 'calc-forms)
1682 (calc-Need-calc-bin) 1677 (require 'calc-frac)
1683 (calc-Need-calc-comb) 1678 (require 'calc-funcs)
1684 (calc-Need-calc-comp) 1679 (require 'calc-graph)
1685 (calc-Need-calc-cplx) 1680 (require 'calc-help)
1686 (calc-Need-calc-embed) 1681 (require 'calc-incom)
1687 (calc-Need-calc-fin) 1682 (require 'calc-keypd)
1688 (calc-Need-calc-forms) 1683 (require 'calc-lang)
1689 (calc-Need-calc-frac) 1684 (require 'calc-macs)
1690 (calc-Need-calc-funcs) 1685 (require 'calc-map)
1691 (calc-Need-calc-graph) 1686 (require 'calc-math)
1692 (calc-Need-calc-help) 1687 (require 'calc-misc)
1693 (calc-Need-calc-incom) 1688 (require 'calc-mode)
1694 (calc-Need-calc-keypd) 1689 (require 'calc-mtx)
1695 (calc-Need-calc-lang) 1690 (require 'calc-poly)
1696 (calc-Need-calc-map) 1691 (require 'calc-prog)
1697 (calc-Need-calc-mat) 1692 (require 'calc-rewr)
1698 (calc-Need-calc-math) 1693 (require 'calc-rules)
1699 (calc-Need-calc-mode) 1694 (require 'calc-sel)
1700 (calc-Need-calc-poly) 1695 (require 'calc-stat)
1701 (calc-Need-calc-prog) 1696 (require 'calc-store)
1702 (calc-Need-calc-rewr) 1697 (require 'calc-stuff)
1703 (calc-Need-calc-rules) 1698 (require 'calc-trail)
1704 (calc-Need-calc-sel-2) 1699 (require 'calc-undo)
1705 (calc-Need-calc-sel) 1700 (require 'calc-units)
1706 (calc-Need-calc-stat) 1701 (require 'calc-vec)
1707 (calc-Need-calc-store) 1702 (require 'calc-yank)
1708 (calc-Need-calc-stuff) 1703 (require 'calcalg2)
1709 (calc-Need-calc-trail) 1704 (require 'calcalg3)
1710 (calc-Need-calc-undo) 1705 (require 'calccomp)
1711 (calc-Need-calc-units) 1706 (require 'calcsel2)
1712 (calc-Need-calc-vec)
1713 (calc-Need-calc-yank)
1714 1707
1715 (message "All parts of Calc are now loaded")) 1708 (message "All parts of Calc are now loaded"))
1716 1709
1717 1710
1718 ;;; Vector commands. 1711 ;;; Vector commands.
2214 (math-evaluate-expr b)))))) 2207 (math-evaluate-expr b))))))
2215 ((or (integerp (car a)) (consp (car a))) 2208 ((or (integerp (car a)) (consp (car a)))
2216 (if (null (cdr a)) 2209 (if (null (cdr a))
2217 (math-normalize (car a)) 2210 (math-normalize (car a))
2218 (error "Can't use multi-valued function in an expression"))))) 2211 (error "Can't use multi-valued function in an expression")))))
2212
2213 ;; The variable math-normalize-a is local to math-normalize in calc.el,
2214 ;; but is used by math-normalize-nonstandard, which is called by
2215 ;; math-normalize.
2216 (defvar math-normalize-a)
2219 2217
2220 (defun math-normalize-nonstandard () 2218 (defun math-normalize-nonstandard ()
2221 (if (consp calc-simplify-mode) 2219 (if (consp calc-simplify-mode)
2222 (progn 2220 (progn
2223 (setq calc-simplify-mode 'none 2221 (setq calc-simplify-mode 'none
2589 (if (Math-primp x) 2587 (if (Math-primp x)
2590 x 2588 x
2591 (cons (car x) (mapcar 'math-evaluate-expr-rec (cdr x)))))) 2589 (cons (car x) (mapcar 'math-evaluate-expr-rec (cdr x))))))
2592 x)) 2590 x))
2593 2591
2594 (defmacro math-defsimplify (funcs &rest code)
2595 (append '(progn (math-need-std-simps))
2596 (mapcar (function
2597 (lambda (func)
2598 (list 'put (list 'quote func) ''math-simplify
2599 (list 'nconc
2600 (list 'get (list 'quote func) ''math-simplify)
2601 (list 'list
2602 (list 'function
2603 (append '(lambda (math-simplify-expr))
2604 code)))))))
2605 (if (symbolp funcs) (list funcs) funcs))))
2606 (put 'math-defsimplify 'lisp-indent-hook 1)
2607
2608 (defun math-any-floats (expr) 2592 (defun math-any-floats (expr)
2609 (if (Math-primp expr) 2593 (if (Math-primp expr)
2610 (math-floatp expr) 2594 (math-floatp expr)
2611 (while (and (setq expr (cdr expr)) (not (math-any-floats (car expr))))) 2595 (while (and (setq expr (cdr expr)) (not (math-any-floats (car expr)))))
2612 expr)) 2596 expr))
2654 (or (and (symbolp (nth 2 expr)) 2638 (or (and (symbolp (nth 2 expr))
2655 (boundp (nth 2 expr)) 2639 (boundp (nth 2 expr))
2656 (eq (car-safe (symbol-value (nth 2 expr))) 'special-const)) 2640 (eq (car-safe (symbol-value (nth 2 expr))) 'special-const))
2657 (memq (nth 2 expr) '(var-inf var-uinf var-nan))))) 2641 (memq (nth 2 expr) '(var-inf var-uinf var-nan)))))
2658 2642
2643 ;; The variable math-integral-cache is originally declared in calcalg2.el,
2644 ;; but is set by math-defintegral and math-definitegral2.
2645 (defvar math-integral-cache)
2646
2659 (defmacro math-defintegral (funcs &rest code) 2647 (defmacro math-defintegral (funcs &rest code)
2660 (setq math-integral-cache nil) 2648 (setq math-integral-cache nil)
2661 (append '(progn) 2649 (append '(progn)
2662 (mapcar (function 2650 (mapcar (function
2663 (lambda (func) 2651 (lambda (func)
2884 2872
2885 ;;; Expression parsing. 2873 ;;; Expression parsing.
2886 2874
2887 (defvar math-expr-data) 2875 (defvar math-expr-data)
2888 2876
2877 (defvar math-read-replacement-list
2878 '(;; Misc symbols
2879 ("±" "+/-") ; plus or minus
2880 ("×" "*") ; multiplication sign
2881 ("÷" ":") ; division sign
2882 ("−" "-") ; subtraction sign
2883 ("∕" "/") ; division sign
2884 ("∗" "*") ; asterisk multiplication
2885 ("∞" "inf") ; infinity symbol
2886 ("≤" "<=")
2887 ("≥" ">=")
2888 ("≦" "<=")
2889 ("≧" ">=")
2890 ;; fractions
2891 ("¼" "(1:4)") ; 1/4
2892 ("½" "(1:2)") ; 1/2
2893 ("¾" "(3:4)") ; 3/4
2894 ("⅓" "(1:3)") ; 1/3
2895 ("⅔" "(2:3)") ; 2/3
2896 ("⅕" "(1:5)") ; 1/5
2897 ("⅖" "(2:5)") ; 2/5
2898 ("⅗" "(3:5)") ; 3/5
2899 ("⅘" "(4:5)") ; 4/5
2900 ("⅙" "(1:6)") ; 1/6
2901 ("⅚" "(5:6)") ; 5/6
2902 ("⅛" "(1:8)") ; 1/8
2903 ("⅜" "(3:8)") ; 3/8
2904 ("⅝" "(5:8)") ; 5/8
2905 ("⅞" "(7:8)") ; 7/8
2906 ("⅟" "1:") ; 1/...
2907 ;; superscripts
2908 ("⁰" "0") ; 0
2909 ("¹" "1") ; 1
2910 ("²" "2") ; 2
2911 ("³" "3") ; 3
2912 ("⁴" "4") ; 4
2913 ("⁵" "5") ; 5
2914 ("⁶" "6") ; 6
2915 ("⁷" "7") ; 7
2916 ("⁸" "8") ; 8
2917 ("⁹" "9") ; 9
2918 ("⁺" "+") ; +
2919 ("⁻" "-") ; -
2920 ("⁽" "(") ; (
2921 ("⁾" ")") ; )
2922 ("ⁿ" "n") ; n
2923 ("ⁱ" "i")) ; i
2924 "A list whose elements (old new) indicate replacements to make
2925 in Calc algebraic input.")
2926
2927 (defvar math-read-superscripts
2928 "⁰¹²³⁴⁵⁶⁷⁸⁹⁺⁻⁽⁾ⁿⁱ" ; 0123456789+-()ni
2929 "A string consisting of the superscripts allowed by Calc.")
2930
2931 (defun math-read-preprocess-string (str)
2932 "Replace some substrings of STR by Calc equivalents."
2933 (setq str
2934 (replace-regexp-in-string (concat "[" math-read-superscripts "]+")
2935 "^(\\&)" str))
2936 (let ((rep-list math-read-replacement-list))
2937 (while rep-list
2938 (setq str
2939 (replace-regexp-in-string (nth 0 (car rep-list))
2940 (nth 1 (car rep-list)) str))
2941 (setq rep-list (cdr rep-list))))
2942 str)
2943
2889 (defun math-read-expr (math-exp-str) 2944 (defun math-read-expr (math-exp-str)
2890 (let ((math-exp-pos 0) 2945 (let ((math-exp-pos 0)
2891 (math-exp-old-pos 0) 2946 (math-exp-old-pos 0)
2892 (math-exp-keep-spaces nil) 2947 (math-exp-keep-spaces nil)
2893 math-exp-token math-expr-data) 2948 math-exp-token math-expr-data)
2949 (setq math-exp-str (math-read-preprocess-string math-exp-str))
2894 (while (setq math-exp-token (string-match "\\.\\.\\([^.]\\|.[^.]\\)" math-exp-str)) 2950 (while (setq math-exp-token (string-match "\\.\\.\\([^.]\\|.[^.]\\)" math-exp-str))
2895 (setq math-exp-str (concat (substring math-exp-str 0 math-exp-token) "\\dots" 2951 (setq math-exp-str (concat (substring math-exp-str 0 math-exp-token) "\\dots"
2896 (substring math-exp-str (+ math-exp-token 2))))) 2952 (substring math-exp-str (+ math-exp-token 2)))))
2897 (math-build-parse-table) 2953 (math-build-parse-table)
2898 (math-read-token) 2954 (math-read-token)
2941 (calc-language-option nil) 2997 (calc-language-option nil)
2942 (math-expr-opers (get 'tex 'math-oper-table)) 2998 (math-expr-opers (get 'tex 'math-oper-table))
2943 (math-expr-function-mapping (get 'tex 'math-function-table)) 2999 (math-expr-function-mapping (get 'tex 'math-function-table))
2944 (math-expr-variable-mapping (get 'tex 'math-variable-table))) 3000 (math-expr-variable-mapping (get 'tex 'math-variable-table)))
2945 (math-read-expr str))) 3001 (math-read-expr str)))
2946 (let ((lines nil) 3002 (let ((math-read-big-lines nil)
2947 (pos 0) 3003 (pos 0)
2948 (width 0) 3004 (width 0)
2949 (err-msg nil) 3005 (math-read-big-err-msg nil)
2950 the-baseline the-h2 3006 math-read-big-baseline math-read-big-h2
2951 new-pos p) 3007 new-pos p)
2952 (while (setq new-pos (string-match "\n" str pos)) 3008 (while (setq new-pos (string-match "\n" str pos))
2953 (setq lines (cons (substring str pos new-pos) lines) 3009 (setq math-read-big-lines
3010 (cons (substring str pos new-pos) math-read-big-lines)
2954 pos (1+ new-pos))) 3011 pos (1+ new-pos)))
2955 (setq lines (nreverse (cons (substring str pos) lines)) 3012 (setq math-read-big-lines
2956 p lines) 3013 (nreverse (cons (substring str pos) math-read-big-lines))
3014 p math-read-big-lines)
2957 (while p 3015 (while p
2958 (setq width (max width (length (car p))) 3016 (setq width (max width (length (car p)))
2959 p (cdr p))) 3017 p (cdr p)))
2960 (if (math-read-big-bigp lines) 3018 (if (math-read-big-bigp math-read-big-lines)
2961 (or (catch 'syntax 3019 (or (catch 'syntax
2962 (math-read-big-rec 0 0 width (length lines))) 3020 (math-read-big-rec 0 0 width (length math-read-big-lines)))
2963 err-msg 3021 math-read-big-err-msg
2964 '(error 0 "Syntax error")) 3022 '(error 0 "Syntax error"))
2965 (math-read-expr str))))) 3023 (math-read-expr str)))))
2966 3024
2967 (defun math-read-big-bigp (lines) 3025 (defun math-read-big-bigp (math-read-big-lines)
2968 (and (cdr lines) 3026 (and (cdr math-read-big-lines)
2969 (let ((matrix nil) 3027 (let ((matrix nil)
2970 (v 0) 3028 (v 0)
2971 (height (if (> (length (car lines)) 0) 1 0))) 3029 (height (if (> (length (car math-read-big-lines)) 0) 1 0)))
2972 (while (and (cdr lines) 3030 (while (and (cdr math-read-big-lines)
2973 (let* ((i 0) 3031 (let* ((i 0)
2974 j 3032 j
2975 (l1 (car lines)) 3033 (l1 (car math-read-big-lines))
2976 (l2 (nth 1 lines)) 3034 (l2 (nth 1 math-read-big-lines))
2977 (len (min (length l1) (length l2)))) 3035 (len (min (length l1) (length l2))))
2978 (if (> (length l2) 0) 3036 (if (> (length l2) 0)
2979 (setq height (1+ height))) 3037 (setq height (1+ height)))
2980 (while (and (< i len) 3038 (while (and (< i len)
2981 (or (memq (aref l1 i) '(?\ ?\- ?\_)) 3039 (or (memq (aref l1 i) '(?\ ?\- ?\_))
2982 (memq (aref l2 i) '(?\ ?\-)) 3040 (memq (aref l2 i) '(?\ ?\-))
2983 (and (memq (aref l1 i) '(?\| ?\,)) 3041 (and (memq (aref l1 i) '(?\| ?\,))
2984 (= (aref l2 i) (aref l1 i))) 3042 (= (aref l2 i) (aref l1 i)))
2985 (and (eq (aref l1 i) ?\[) 3043 (and (eq (aref l1 i) ?\[)
2986 (eq (aref l2 i) ?\[) 3044 (eq (aref l2 i) ?\[)
2987 (let ((h2 (length l1))) 3045 (let ((math-rb-h2 (length l1)))
2988 (setq j (math-read-big-balance 3046 (setq j (math-read-big-balance
2989 (1+ i) v "["))) 3047 (1+ i) v "[")))
2990 (setq i (1- j))))) 3048 (setq i (1- j)))))
2991 (setq i (1+ i))) 3049 (setq i (1+ i)))
2992 (or (= i len) 3050 (or (= i len)
2993 (and (eq (aref l1 i) ?\[) 3051 (and (eq (aref l1 i) ?\[)
2994 (eq (aref l2 i) ?\[) 3052 (eq (aref l2 i) ?\[)
2995 (setq matrix t) 3053 (setq matrix t)
2996 nil)))) 3054 nil))))
2997 (setq lines (cdr lines) 3055 (setq math-read-big-lines (cdr math-read-big-lines)
2998 v (1+ v))) 3056 v (1+ v)))
2999 (or (and (> height 1) 3057 (or (and (> height 1)
3000 (not (cdr lines))) 3058 (not (cdr math-read-big-lines)))
3001 matrix)))) 3059 matrix))))
3002 3060
3003 ;;; Nontrivial "flat" formatting. 3061 ;;; Nontrivial "flat" formatting.
3004 3062
3005 (defvar math-format-hash-args nil) 3063 (defvar math-format-hash-args nil)
3286 list containing a numeric entry string, or nil. 3344 list containing a numeric entry string, or nil.
3287 A key may contain additional specs for Inverse, Hyperbolic, and Inv+Hyp.") 3345 A key may contain additional specs for Inverse, Hyperbolic, and Inv+Hyp.")
3288 3346
3289 (run-hooks 'calc-ext-load-hook) 3347 (run-hooks 'calc-ext-load-hook)
3290 3348
3349 (provide 'calc-ext)
3350
3291 ;;; arch-tag: 1814ba7f-a390-49dc-9e25-a5adc205e97e 3351 ;;; arch-tag: 1814ba7f-a390-49dc-9e25-a5adc205e97e
3292 ;;; calc-ext.el ends here 3352 ;;; calc-ext.el ends here