| 1 | Copyright (C) 2001-2012 Free Software Foundation, Inc. |
| 2 | See the end of the file for license conditions. |
| 3 | |
| 4 | |
| 5 | This directory contains Calc, an advanced desk calculator for GNU |
| 6 | Emacs. |
| 7 | |
| 8 | "Calc" Copyright (C) 1990-1993, 2001-2012 Free Software Foundation, Inc. |
| 9 | |
| 10 | Written by: |
| 11 | Dave Gillespie |
| 12 | c/o Synaptics, Inc. |
| 13 | 2698 Orchard Parkway |
| 14 | San Jose CA 95134 |
| 15 | daveg@synaptics.com, uunet!synaptx!daveg |
| 16 | |
| 17 | Currently maintained by: |
| 18 | Jay Belanger <jay.p.belanger@gmail.com> |
| 19 | |
| 20 | From the introduction to the manual: |
| 21 | |
| 22 | "Calc" is an advanced calculator and mathematical tool that runs as |
| 23 | part of the GNU Emacs environment. Very roughly based on the HP-28/48 |
| 24 | series of calculators, its many features include: |
| 25 | |
| 26 | * Choice of algebraic or RPN (stack-based) entry of calculations. |
| 27 | |
| 28 | * Arbitrary precision integers and floating-point numbers. |
| 29 | |
| 30 | * Arithmetic on rational numbers, complex numbers (rectangular and |
| 31 | polar), error forms with standard deviations, open and closed |
| 32 | intervals, vectors and matrices, dates and times, infinities, |
| 33 | sets, quantities with units, and algebraic formulas. |
| 34 | |
| 35 | * Mathematical operations such as logarithms and trigonometric functions. |
| 36 | |
| 37 | * Programmer's features (bitwise operations, non-decimal numbers). |
| 38 | |
| 39 | * Financial functions such as future value and internal rate of return. |
| 40 | |
| 41 | * Number theoretical features such as prime factorization and |
| 42 | arithmetic modulo M for any M. |
| 43 | |
| 44 | * Algebraic manipulation features, including symbolic calculus. |
| 45 | |
| 46 | * Moving data to and from regular editing buffers. |
| 47 | |
| 48 | * "Embedded mode" for manipulating Calc formulas and data directly |
| 49 | inside any editing buffer. |
| 50 | |
| 51 | * Graphics using GNUPLOT, a versatile (and free) plotting program. |
| 52 | |
| 53 | * Easy programming using keyboard macros, algebraic formulas, |
| 54 | algebraic rewrite rules, or extended Emacs Lisp. |
| 55 | |
| 56 | |
| 57 | Calc is written entirely in Emacs Lisp, for maximum portability. |
| 58 | |
| 59 | I am anxious to hear about your experiences using Calc. Send mail to |
| 60 | "jay.p.belanger@gmail.com". A bug report is most useful if you include the |
| 61 | exact input and output that occurred, any modes in effect (such as the |
| 62 | current precision), and so on. If you find Calc is difficult to operate |
| 63 | in any way, or if you have other suggestions, don't hesitate to let me |
| 64 | know. If you find errors (including simple typos) in the manual, let |
| 65 | me know. Even if you find no bugs at all I would love to hear your |
| 66 | opinions. |
| 67 | |
| 68 | |
| 69 | |
| 70 | Summary of changes to "Calc" |
| 71 | ------- -- ------- -- ---- |
| 72 | |
| 73 | Emacs 24.1 |
| 74 | |
| 75 | * Support for musical notes added. |
| 76 | |
| 77 | * Support for logarithmic units added. |
| 78 | |
| 79 | * Calc no longer uses the tex prefix for TeX specific unit |
| 80 | names when using TeX or LaTeX mode. |
| 81 | |
| 82 | * Added option to highlight selections using faces. |
| 83 | |
| 84 | * Gave `calc-histogram' the option of using a vector to determine the bins. |
| 85 | |
| 86 | * Added "O" option prefix. |
| 87 | |
| 88 | * Used "O" prefix to "d r" (`calc-radix') to turn on twos-complement mode. |
| 89 | |
| 90 | Emacs 23.2 |
| 91 | |
| 92 | * Added twos-complement display. |
| 93 | |
| 94 | Emacs 23.1: |
| 95 | |
| 96 | * Gave `j *' (cal-sel-mult-both-sides) an option to expand the |
| 97 | denominator. |
| 98 | |
| 99 | * Use `calc-embedded-word-regexp' for finding words in |
| 100 | `calc-embedded-word' in place of delimiters. |
| 101 | |
| 102 | * Remove version numbering; use Emacs version for reference. |
| 103 | |
| 104 | * Added support for using registers. |
| 105 | |
| 106 | * Added support for Yacas, Maxima and Giac languages. |
| 107 | |
| 108 | * Added a menu. |
| 109 | |
| 110 | * Added logistic non-linear curves to curve-fitting. |
| 111 | |
| 112 | * Added option of plotting data points and curve when curve-fitting. |
| 113 | |
| 114 | * Made unit conversions exact when possible. |
| 115 | |
| 116 | * Lowered the precedence of negation. |
| 117 | |
| 118 | Version 2.1: |
| 119 | |
| 120 | * New matrix mode for square matrices. Improved handling of |
| 121 | non-commutative products. |
| 122 | |
| 123 | * New functions: powerexpand and ldiv. |
| 124 | |
| 125 | * Added new functions: sec, csc, cot, sech, csch, coth. |
| 126 | |
| 127 | * 0^0 now evaluates to 1. |
| 128 | |
| 129 | * Added a new language mode for LaTeX. |
| 130 | |
| 131 | * Calc now tries to use an appropriate language mode in embedded mode. |
| 132 | |
| 133 | * Calc now restores original modes when leaving embedded mode. |
| 134 | |
| 135 | * User settable variables which are not set with keystrokes are now |
| 136 | customizable. |
| 137 | |
| 138 | * Made ~/.calc.el the default Calc settings file. |
| 139 | |
| 140 | * Miscellaneous updates and bugfixes. |
| 141 | |
| 142 | \f |
| 143 | Version 2.02f: |
| 144 | |
| 145 | * Fixed a bug which broke `I', `H', `K' prefix keys in recent Emacs. |
| 146 | |
| 147 | * Fixed a bug in calc.texinfo which prevented "make tex2" from working. |
| 148 | |
| 149 | * Updated `C-y' (calc-yank) to understand Emacs 19 generalized kill ring. |
| 150 | |
| 151 | * Added a copy of "calccard.tex", the Calc quick reference card. |
| 152 | |
| 153 | \f |
| 154 | Version 2.02e: |
| 155 | |
| 156 | * Fixed an installation bug caused by recent changes to `write-region'. |
| 157 | |
| 158 | \f |
| 159 | Version 2.02d: |
| 160 | |
| 161 | * Fixed a minor installation problem with a Emacs 19.29 byte-compiler bug. |
| 162 | |
| 163 | * Removed archaic "macedit" package (superseded by "edmacro"). |
| 164 | |
| 165 | \f |
| 166 | Version 2.02c: |
| 167 | |
| 168 | * Patch to port Calc to Lucid Emacs 19; still works with GNU 18 and GNU 19. |
| 169 | |
| 170 | * Fixed a bug that broke `C-x C-c' after Calc graphics had been used. |
| 171 | |
| 172 | \f |
| 173 | Version 2.02b: |
| 174 | |
| 175 | * Minor patch to port Calc to GNU Emacs 19. Will be superseded by Calc 3.00. |
| 176 | |
| 177 | \f |
| 178 | Version 2.02: |
| 179 | |
| 180 | * Revamped the manual a bit; rearranged some sections. |
| 181 | |
| 182 | * Added marginal notes for Key/Function Index refs in printed manual. |
| 183 | |
| 184 | * Changed `M-# r' to deal more gracefully with blank lines. |
| 185 | |
| 186 | * Made reductions like `V R +' and `M-# :' considerably faster. |
| 187 | |
| 188 | * Improved parsing and display of cases like "[a + b]". |
| 189 | |
| 190 | * Added `t +' and `t -' for doing business date arithmetic. |
| 191 | |
| 192 | * Added "syntax tables," the opposite of compositions. |
| 193 | |
| 194 | * Added another Rewrites Tutorial exercise. |
| 195 | |
| 196 | * Added the "vmatches" function. |
| 197 | |
| 198 | * Added the `Modes' variable and `m g' command. |
| 199 | |
| 200 | * Improved `u s' to cancel, e.g., "11 mph hr / yd" to get a number. |
| 201 | |
| 202 | * Added "quick units" commands "u 0" through "u 9". |
| 203 | |
| 204 | * Moved `M-%' to calc.el to avoid autoloading problems. |
| 205 | |
| 206 | * Added `M-=' during algebraic entry, acts like `RET ='. |
| 207 | |
| 208 | * Made `LFD' prevent evaluation when finishing a calc-edit command. |
| 209 | |
| 210 | * Changed calc-store commands to use `t .' mode for trail display. |
| 211 | |
| 212 | * Improved integrator to understand forms involving "erf". |
| 213 | |
| 214 | * Fixed parser to make sense of "[1....1e2]" input. |
| 215 | |
| 216 | * Fixed FORTRAN parser to treat a(i,j) as a_i_j if a is declared matrix. |
| 217 | |
| 218 | * Got rid of some version number stamps to reduce size of patches. |
| 219 | |
| 220 | * Fixed a bug in defmath treating "<=" and ">=" predicates. |
| 221 | |
| 222 | * Fixed a bug in which Calc crashed multiplying two date forms. |
| 223 | |
| 224 | * Fixed a bug in line breaker that crashed for large, nested formulas. |
| 225 | |
| 226 | * Fixed a bug using ` to edit string("foo"). |
| 227 | |
| 228 | * Fixed a bug where `M-# y' in Big mode copied stack level number. |
| 229 | |
| 230 | * Fixed a bug where `g O' used wrong default directory, no completion. |
| 231 | |
| 232 | * Fixed a bug where "foo_bar(i)" parsed in C mode but showed as foo#bar. |
| 233 | |
| 234 | * Fixed several bugs where large calculations got "computation too long." |
| 235 | |
| 236 | \f |
| 237 | Version 2.01: |
| 238 | |
| 239 | * Added percentage commands `M-%', `b %', and `c %'. |
| 240 | |
| 241 | * Changed Big mode to force radix-10 in superscripts. |
| 242 | |
| 243 | * Improved display of fractions in various language modes. |
| 244 | |
| 245 | * Changed `a n' to work properly with equations and inequalities. |
| 246 | |
| 247 | * The problem with cross references to Index nodes in TeX has been fixed. |
| 248 | |
| 249 | * Fixed a bug where recursive esc-maps make calc-ext/-aent unloadable. |
| 250 | |
| 251 | * Fixed a bug in `M-# k', then `OFF' right away, with fresh Emacs. |
| 252 | |
| 253 | * Fixed a bug in which "S_i_j" was formatted wrong after `j s'. |
| 254 | |
| 255 | * Fixed a bug in which `h k u c' positioned cursor on wrong line. |
| 256 | |
| 257 | * Fixed a bug where `z ?' crashed if `z %' was defined. |
| 258 | |
| 259 | * Fixed a bug in `j O' (calc-select-once-maybe). |
| 260 | |
| 261 | * Fixed "make private" not to ask "Delete excess versions" and crash. |
| 262 | |
| 263 | \f |
| 264 | Version 2.00: |
| 265 | |
| 266 | * First complete posting of Calc since 1.01. |
| 267 | |
| 268 | * Most parts of Calc have seen changes since version 1.07. See |
| 269 | section "New for Calc 2.00" in the manual for a summary. In |
| 270 | the FTP version of the Calc distribution, the file README.prev |
| 271 | contains a detailed change history from 1.00 up to 2.00. |
| 272 | |
| 273 | \f |
| 274 | This file is part of GNU Emacs. |
| 275 | |
| 276 | GNU Emacs is free software: you can redistribute it and/or modify |
| 277 | it under the terms of the GNU General Public License as published by |
| 278 | the Free Software Foundation, either version 3 of the License, or |
| 279 | (at your option) any later version. |
| 280 | |
| 281 | GNU Emacs is distributed in the hope that it will be useful, |
| 282 | but WITHOUT ANY WARRANTY; without even the implied warranty of |
| 283 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
| 284 | GNU General Public License for more details. |
| 285 | |
| 286 | You should have received a copy of the GNU General Public License |
| 287 | along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>. |