pk-misc.tex 21 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559
  1. \section{Miscellaneous Packages}
  2. \begin{Introduction}{Miscellaneous Packages}
  3. REDUCE includes a large number of packages that have been contributed by
  4. users from various fields. Some of these, together with their relevant
  5. commands, switches and so on (e.g., the NUMERIC package), have
  6. been described elsewhere. This section describes those packages for which
  7. no separate help material exists. Each has its own switches, commands,
  8. and operators, and some redefine special characters to aid in their
  9. notation. However, the brief descriptions given here do not include all
  10. such information. Readers are referred to the general package
  11. documentation in this case, which can be found, along with the source
  12. code, under the subdirectories \name{doc} and \name{src} in the
  13. \name{reduce} directory. The \nameref{load_package} command is used to
  14. load the files you wish into your system. There will be a short delay
  15. while the package is loaded. A package cannot be {\it unloaded}. Once it
  16. is in your system, it stays there until you end the session. Each package
  17. also has a test file, which you will find under its name in the
  18. \name{\$reduce/xmpl} directory.
  19. Finally, it should be mentioned that such user-contributed packages are
  20. unsupported; any questions or problems should be directed to their
  21. authors.
  22. \end{Introduction}
  23. \begin{Package}{ALGINT}
  24. \index{integration}\index{integration of square roots}
  25. Author: James H. Davenport \\
  26. The \name{algint} package provides indefinite integration of square roots.
  27. This package, which is an extension of the basic integration package
  28. distributed with REDUCE, will analytically integrate a wide range of
  29. expressions involving square roots. The \nameref{algint} switch provides for
  30. the use of the facilities given by the package, and is automatically turned
  31. on when the package is loaded. If you want to return to the standard
  32. integration algorithms, turn \nameref{algint} off. An error message is given
  33. if you try to turn the \nameref{algint} switch on when its package is not
  34. loaded.
  35. \end{Package}
  36. \begin{Package}{APPLYSYM}
  37. \index{differential equations} \index{symmetries}
  38. Author: Thomas Wolf \\
  39. This package provides programs APPLYSYM, QUASILINPDE and DETRAFO for
  40. computing with infinitesimal symmetries of differential equations.
  41. \end{Package}
  42. \begin{Package}{ARNUM}
  43. \index{algebraic numbers}
  44. Author: Eberhard Schruefer\\
  45. This package provides facilities for handling algebraic numbers as polynomial
  46. coefficients in REDUCE calculations. It includes facilities for introducing
  47. indeterminates to represent algebraic numbers, for calculating splitting
  48. fields, and for factoring and finding greatest common divisors in such
  49. domains.
  50. \end{Package}
  51. \begin{Package}{ASSIST}
  52. \index{utilities}
  53. Author: Hubert Caprasse\\
  54. ASSIST contains a large number of additional general purpose functions
  55. that allow a user to better adapt REDUCE to various calculational
  56. strategies and to make the programming task more straightforward and more
  57. efficient.
  58. \end{Package}
  59. \begin{Package}{AVECTOR}
  60. \index{vector algebra}\index{cross product}\index{dot product}
  61. Author: David Harper\\
  62. This package provides REDUCE with the ability to perform vector algebra
  63. using the same notation as scalar algebra. The basic algebraic operations
  64. are supported, as are differentiation and integration of vectors with
  65. respect to scalar variables, cross product and dot product, component
  66. manipulation and application of scalar functions (e.g. cosine) to a vector
  67. to yield a vector result.
  68. \end{Package}
  69. \begin{Package}{BOOLEAN}
  70. \index{boolean expressions}
  71. Author: Herbert Melenk\\
  72. This package supports the computation with boolean expressions in the
  73. propositional calculus. The data objects are composed from algebraic
  74. expressions connected by the infix boolean operators {\bf and}, {\bf or},
  75. {\bf implies}, {\bf equiv}, and the unary prefix operator {\bf not}.
  76. {\bf Boolean} allows you to simplify expressions built from these
  77. operators, and to test properties like equivalence, subset property etc.
  78. \end{Package}
  79. \begin{Package}{CALI}
  80. \index{polynomial}\index{Groebner}\index{commutative algebra}
  81. Author: Hans-Gert Gr{\"a}be \\
  82. This package contains algorithms for computations in commutative algebra
  83. closely related to the Groebner algorithm for ideals and modules. Its
  84. heart is a new implementation of the Groebner algorithm that also allows
  85. for the computation of syzygies. This implementation is also applicable to
  86. submodules of free modules with generators represented as rows of a matrix.
  87. \end{Package}
  88. \begin{Package}{CAMAL}
  89. \index{celestial mechanics}\index{Fourier series}
  90. Author: John P. Fitch\\
  91. This package implements in REDUCE the Fourier transform procedures of the
  92. CAMAL package for celestial mechanics.
  93. \end{Package}
  94. \begin{Package}{CHANGEVR}
  95. Author: G. Ucoluk\\
  96. This package provides facilities for changing the independent variables in
  97. a differential equation. It is basically the application of the chain rule.
  98. \end{Package}
  99. \begin{Package}{COMPACT}
  100. \index{simplification}
  101. Author: Anthony C. Hearn\\
  102. COMPACT is a package of functions for the reduction of a polynomial in the
  103. presence of side relations. COMPACT applies the side relations to the
  104. polynomial so that an equivalent expression results with as few terms as
  105. possible. For example, the evaluation of
  106. \begin{verbatim}
  107. compact(s*(1-sin x^2)+c*(1-cos x^2)+sin x^2+cos x^2,
  108. {cos x^2+sin x^2=1});
  109. \end{verbatim}
  110. yields the result
  111. \begin{verbatim}
  112. 2 2
  113. SIN(X) *C + COS(X) *S + 1
  114. \end{verbatim}
  115. The first argument to the operator \name{compact} is the expression
  116. and the second is a list of side relations that can be
  117. equations or simple expressions (implicitly equated to zero). The
  118. kernels in the side relations may also be free variables with the
  119. same meaning as in rules, e.g.
  120. \begin{verbatim}
  121. sin_cos_identity := {cos ~w^2+sin ~w^2=1}$
  122. compact(u,in_cos_identity);
  123. \end{verbatim}
  124. Also the full rule syntax with the replacement operator is allowed here.
  125. \end{Package}
  126. \begin{Package}{CRACK}
  127. \index{differential equation}
  128. Authors: Andreas Brand, Thomas Wolf\\
  129. CRACK is a package for solving overdetermined systems of partial or
  130. ordinary differential equations (PDEs, ODEs). Examples of programs which
  131. make use of CRACK for investigating ODEs (finding symmetries, first
  132. integrals, an equivalent Lagrangian or a ``differential factorization'') are
  133. included.
  134. \end{Package}
  135. \begin{Package}{CVIT}
  136. \index{Dirac algebra}
  137. Authors: V.Ilyin, A.Kryukov, A.Rodionov, A.Taranov\\
  138. This package provides an alternative method for computing traces of Dirac
  139. gamma matrices, based on an algorithm by Cvitanovich that treats gamma
  140. matrices as 3-j symbols.
  141. \end{Package}
  142. \begin{Package}{DEFINT}
  143. \index{definite integration}
  144. Authors: Kerry Gaskell, Stanley M. Kameny, Winfried Neun\\
  145. This package finds the definite integral of an expression in a stated
  146. interval. It uses several techniques, including an innovative approach
  147. based on the Meijer G-function, and contour integration.
  148. \end{Package}
  149. \begin{Package}{DESIR}
  150. \index{differential equation}
  151. Authors: C. Dicrescenzo, F. Richard-Jung, E. Tournier\\
  152. This package enables the basis of formal solutions to be computed for an
  153. ordinary homogeneous differential equation with polynomial coefficients
  154. over Q of any order, in the neighborhood of zero (regular or irregular
  155. singular point, or ordinary point).
  156. \end{Package}
  157. \begin{Package}{DFPART}
  158. \index{partial derivative}
  159. Author: Herbert Melenk\\
  160. This package supports computations with total and partial derivatives of
  161. formal function objects. Such computations can be useful in the context
  162. of differential equations or power series expansions.
  163. \end{Package}
  164. \begin{Package}{DUMMY}
  165. \index{dummy variable}
  166. Author: Alain Dresse\\
  167. This package allows a user to find the canonical form of expressions
  168. involving dummy variables. In that way, the simplification of
  169. polynomial expressions can be fully done. The indeterminates are general
  170. operator objects endowed with as few properties as possible. In that way
  171. the package may be used in a large spectrum of applications.
  172. \end{Package}
  173. \begin{Package}{EXCALC}
  174. \index{exterior calculus}\index{differential calculus}
  175. \index{differential form}
  176. Author: Eberhard Schruefer\\
  177. The \name{excalc} package is designed for easy use by all who are familiar
  178. with the calculus of Modern Differential Geometry. The program is currently
  179. able to handle scalar-valued exterior forms, vectors and operations between
  180. them, as well as non-scalar valued forms (indexed forms). It is thus an ideal
  181. tool for studying differential equations, doing calculations in general
  182. relativity and field theories, or doing simple things such as calculating the
  183. Laplacian of a tensor field for an arbitrary given frame.
  184. \end{Package}
  185. \begin{Package}{FPS}
  186. \index{power series} \index{Laurent-Puiseux series}
  187. Authors: Wolfram Koepf, Winfried Neun\\
  188. This package can expand a specific class of functions into their
  189. corresponding Laurent-Puiseux series.
  190. \end{Package}
  191. \begin{Package}{FIDE}
  192. Author: Richard Liska\\
  193. This package performs automation of the process of numerically
  194. solving partial differential equations systems (PDES) by means of
  195. computer algebra. For PDES solving, the finite difference method is applied.
  196. The computer algebra system REDUCE and the numerical programming
  197. language FORTRAN are used in the presented methodology. The main aim of
  198. this methodology is to speed up the process of preparing numerical
  199. programs for solving PDES. This process is quite often, especially for
  200. complicated systems, a tedious and time consuming task.
  201. \end{Package}
  202. \begin{Package}{GENTRAN}
  203. \index{code generation}\index{FORTRAN}\index{C}
  204. Author: Barbara L. Gates\\
  205. This package is an automatic code GENerator and TRANslator. It constructs
  206. complete numerical programs based on sets of algorithmic specifications and
  207. symbolic expressions. Formatted FORTRAN, RATFOR or C code can be generated
  208. through a series of interactive commands or under the control of a template
  209. processing routine. Large expressions can be automatically segmented into
  210. subexpressions of manageable size, and a special file-handling mechanism
  211. maintains stacks of open I/O channels to allow output to be sent to any
  212. number of files simultaneously and to facilitate recursive invocation of the
  213. whole code generation process.
  214. \end{Package}
  215. \begin{Package}{IDEALS}
  216. \index{polynomial}\index{Groebner}\index{commutative algebra}
  217. \index{ideal}
  218. Author: Herbert Melenk\\
  219. This package implements the basic arithmetic for polynomial ideals by
  220. exploiting the Groebner bases package of REDUCE. In order to save
  221. computing time all intermediate Groebner bases are stored internally such
  222. that time consuming repetitions are inhibited.
  223. \end{Package}
  224. \begin{Package}{INEQ}
  225. \index{inequality}
  226. Author: Herbert Melenk\\
  227. This package supports the operator \name{ineq\_solve} that
  228. attempts to solve single inequalities and sets of coupled inequalities.
  229. \end{Package}
  230. \begin{Package}{INVBASE}
  231. Authors: A.Yu. Zharkov and Yu.A. Blinkov\\
  232. Involutive bases are a new tool for solving problems in connection with
  233. multivariate polynomials, such as solving systems of polynomial equations
  234. and analyzing polynomial ideals. An involutive basis of a polynomial ideal
  235. is nothing more than a special form of a redundant Groebner basis. The
  236. construction of involutive bases reduces the problem of solving polynomial
  237. systems to simple linear algebra.
  238. \end{Package}
  239. \begin{Package}{LAPLACE}
  240. \index{transform}
  241. Authors: C. Kazasov, M. Spiridonova, V. Tomov\\
  242. This package can calculate ordinary and inverse Laplace transforms of
  243. expressions.
  244. \end{Package}
  245. \begin{Package}{LIE}
  246. Authors: Carsten and Franziska Sch{\"o}bel\\
  247. \name{Lie} is a package of functions for the classification of real
  248. n-dimensional Lie algebras. It consists of two modules: \name{liendmc1}
  249. and \name{lie1234}. With the help of the functions in the \name{liendmcl}
  250. module, real n-dimensional Lie algebras $L$ with a derived algebra
  251. $L^{(1)}$ of dimension 1 can be classified.
  252. \end{Package}
  253. \begin{Package}{MODSR}
  254. \index{modular polynomial}
  255. Author: Herbert Melenk\\
  256. This package supports solve (M\_SOLVE) and roots (M\_ROOTS) operators for
  257. modular polynomials and modular polynomial systems. The moduli need not
  258. be primes. M\_SOLVE requires a modulus to be set. M\_ROOTS takes the
  259. modulus as a second argument. For example:
  260. \begin{verbatim}
  261. on modular; setmod 8;
  262. m_solve(2x=4); -> {{X=2},{X=6}}
  263. m_solve({x^2-y^3=3});
  264. -> {{X=0,Y=5}, {X=2,Y=1}, {X=4,Y=5}, {X=6,Y=1}}
  265. m_solve({x=2,x^2-y^3=3}); -> {{X=2,Y=1}}
  266. off modular;
  267. m_roots(x^2-1,8); -> {1,3,5,7}
  268. m_roots(x^3-x,7); -> {0,1,6}
  269. \end{verbatim}
  270. \end{Package}
  271. \begin{Package}{NCPOLY}
  272. \index{non-commutativity}
  273. Authors: Herbert Melenk, Joachim Apel\\
  274. This package allows the user to set up automatically a consistent
  275. environment for computing in an algebra where the non--commutativity is
  276. defined by Lie-bracket commutators. The package uses the REDUCE
  277. \name{noncom} mechanism for elementary polynomial arithmetic; the commutator
  278. rules are automatically computed from the Lie brackets.
  279. \end{Package}
  280. \begin{Package}{ORTHOVEC}
  281. \index{vector algebra}\index{vector calculus}\index{Laplacian}\index{Taylor}
  282. \index{cross product}\index{dot product}\index{div}\index{grad}\index{curl}
  283. Author: James W. Eastwood\\
  284. \name{orthovec} is a collection of REDUCE procedures and operations which
  285. provide a simple-to-use environment for the manipulation of scalars and
  286. vectors. Operations include addition, subtraction, dot and cross
  287. products, division, modulus, div, grad, curl, laplacian, differentiation,
  288. integration, and Taylor expansion.
  289. \end{Package}
  290. \begin{Package}{PHYSOP}
  291. Author: Mathias Warns\\
  292. This package has been designed to meet the requirements of theoretical
  293. physicists looking for a computer algebra tool to perform complicated
  294. calculations in quantum theory with expressions containing operators.
  295. These operations consist mainly of the calculation of commutators between
  296. operator expressions and in the evaluations of operator matrix elements in
  297. some abstract space.
  298. \end{Package}
  299. \begin{Package}{PM}
  300. \index{pattern matching}
  301. Author: Kevin McIsaac\\
  302. PM is a general pattern matcher similar in style to those found in systems
  303. such as SMP and Mathematica, and is based on the pattern matcher described
  304. in Kevin McIsaac, ``Pattern Matching Algebraic Identities'', SIGSAM Bulletin,
  305. 19 (1985), 4-13.
  306. \end{Package}
  307. \begin{Package}{RANDPOLY}
  308. \index{random polynomial}
  309. Author: Francis J. Wright\\
  310. This package is based on a port of the Maple random polynomial
  311. generator together with some support facilities for the generation
  312. of random numbers and anonymous procedures.
  313. \end{Package}
  314. \begin{Package}{REACTEQN}
  315. \index{chemical reaction}
  316. Author: Herbert Melenk\\
  317. This package allows a user to transform chemical reaction systems into
  318. ordinary differential equation systems (ODE) corresponding to the laws of
  319. pure mass action.
  320. \end{Package}
  321. \begin{Package}{RESET}
  322. Author: John Fitch\\
  323. This package defines a command command RESETREDUCE that works through the
  324. history of previous commands, and clears any values which have been
  325. assigned, plus any rules, arrays and the like. It also sets the various
  326. switches to their initial values. It is not complete, but does work for
  327. most things that cause a gradual loss of space. It would be relatively
  328. easy to make it interactive, so allowing for selective resetting.
  329. \end{Package}
  330. \begin{Package}{RESIDUE}
  331. Author: Wolfram Koepf\\
  332. This package supports the calculation of residues of arbitrary
  333. expressions.
  334. \end{Package}
  335. \begin{Package}{RLFI}
  336. \index{output}\index{TEX}
  337. Author: Richard Liska\\
  338. This package
  339. adds \begin{TEX}\LaTeX \end{TEX}\begin{INFO}LaTeX \end{INFO} syntax
  340. to REDUCE. Text generated by REDUCE in this mode can be directly
  341. used in \begin{TEX}\LaTeX \end{TEX} \begin{INFO}LaTeX \end{INFO} source
  342. documents. Various
  343. mathematical constructions are supported by the interface including
  344. subscripts, superscripts, font changing, Greek letters, divide-bars,
  345. integral and sum signs, derivatives, and so on.
  346. \end{Package}
  347. \begin{Package}{SCOPE}
  348. \index{code generation}\index{optimization}
  349. Author: J.A. van Hulzen\\
  350. SCOPE is a package for the production of an optimized form of a set of
  351. expressions. It applies an heuristic search for common (sub)expressions
  352. to almost any set of proper REDUCE assignment statements. The output is
  353. obtained as a sequence of assignment statements. \name{gentran} is used to
  354. facilitate expression output.
  355. \end{Package}
  356. \begin{Package}{SETS}
  357. Author: Francis J. Wright\\
  358. The SETS package provides algebraic-mode support for set operations on
  359. lists regarded as sets (or representing explicit sets) and on implicit
  360. sets represented by identifiers.
  361. \end{Package}
  362. \begin{Package}{SPDE}
  363. \index{differential equation}\index{Lie symmetry}
  364. Author: Fritz Schwartz \\
  365. The package \name{spde} provides a set of functions which may be used to
  366. determine the symmetry group of Lie- or point-symmetries of a given system of
  367. partial differential equations. In many cases the determining system is
  368. solved completely automatically. In other cases the user has to provide
  369. additional input information for the solution algorithm to terminate.
  370. \end{Package}
  371. \begin{Package}{SYMMETRY}
  372. Author: Karin Gatermann\\
  373. This package computes symmetry-adapted bases and block diagonal forms of
  374. matrices which have the symmetry of a group. The package is the
  375. implementation of the theory of linear representations for small finite
  376. groups such as the dihedral groups.
  377. \end{Package}
  378. \begin{Package}{TPS}
  379. \index{power series}\index{Taylor series}
  380. Authors: Alan Barnes, Julian Padget\\
  381. This package implements formal Laurent series expansions in one variable
  382. using the domain mechanism of REDUCE. This means that power series
  383. objects can be added, multiplied, differentiated etc., like other first
  384. class objects in the system. A lazy evaluation scheme is used and thus
  385. terms of the series are not evaluated until they are required for printing
  386. or for use in calculating terms in other power series. The series are
  387. extendible giving the user the impression that the full infinite series is
  388. being manipulated. The errors that can sometimes occur using series that
  389. are truncated at some fixed depth (for example when a term in the required
  390. series depends on terms of an intermediate series beyond the truncation
  391. depth) are thus avoided.
  392. \end{Package}
  393. \begin{Package}{TRI}
  394. \index{output}\index{TEX}
  395. Author: Werner Antweiler\\
  396. This package provides facilities written in REDUCE-Lisp for typesetting
  397. REDUCE formulas
  398. using \begin{TEX}\TeX. \end{TEX} \begin{INFO}TeX. \end{INFO} The
  399. TeX-REDUCE-Interface incorporates three levels
  400. of \begin{TEX}\TeX \end{TEX} \begin{INFO}TeX \end{INFO} output:
  401. without line breaking, with line breaking, and
  402. with line breaking plus indentation.
  403. \end{Package}
  404. \begin{Package}{TRIGSIMP}
  405. \index{simplification}
  406. Author: Wolfram Koepf\\
  407. TRIGSIMP is a useful tool for all kinds of trigonometric and hyperbolic
  408. simplification and factorization. There are three procedures included in
  409. TRIGSIMP: \name{trigsimp}, \name{trigfactorize} and \name{triggcd}. The
  410. first is for finding simplifications of trigonometric or hyperbolic
  411. expressions with many options, the second for factorizing them and the
  412. third for finding the greatest common divisor of two trigonometric or
  413. hyperbolic polynomials.
  414. \end{Package}
  415. \begin{Package}{XCOLOR}
  416. \index{high energy physics}
  417. Author: A. Kryukov\\
  418. This package calculates the color factor in non-abelian gauge field
  419. theories using an algorithm due to Cvitanovich.
  420. \end{Package}
  421. \begin{Package}{XIDEAL}
  422. \index{Groebner basis}
  423. Author: David Hartley\\
  424. \name{xideal} constructs Groebner bases for solving the left ideal
  425. membership problem: Groebner left ideal bases or GLIBs. For graded
  426. ideals, where each form is homogeneous in degree, the distinction between
  427. left and right ideals vanishes. Furthermore, if the generating forms are
  428. all homogeneous, then the Groebner bases for the non-graded and graded
  429. ideals are identical. In this case, \name{xideal} is able to save time by
  430. truncating the Groebner basis at some maximum degree if desired.
  431. \end{Package}
  432. \begin{Package}{WU}
  433. \index{polynomial}\index{Wu-Wen-Tsun algorithm}
  434. Author: Russell Bradford\\
  435. This is a simple implementation of the Wu algorithm implemented in REDUCE
  436. working directly from ``A Zero Structure Theorem for
  437. Polynomial-Equations-Solving,'' Wu Wen-tsun, Institute of Systems Science,
  438. Academia Sinica, Beijing.
  439. \end{Package}
  440. \begin{Package}{ZEILBERG}
  441. \index{summation}
  442. Authors: Gregor St{\"o}lting and Wolfram Koepf\\
  443. This package is a careful implementation of the Gosper and Zeilberger
  444. algorithms for indefinite and definite summation of hypergeometric terms,
  445. respectively. Extensions of these algorithms are also included that are
  446. valid for ratios of products of powers,
  447. factorials,\begin{TEX}$\Gamma$ \end{TEX} \begin{INFO}gamma \end{INFO}function
  448. terms, binomial coefficients, and shifted factorials that are
  449. rational-linear in their arguments.
  450. \end{Package}
  451. \begin{Package}{ZTRANS}
  452. Authors: Wolfram Koepf, Lisa Temme\\
  453. This package is an implementation of the Z-transform of a sequence.
  454. This is the discrete analogue of the Laplace Transform.
  455. \end{Package}