user2.tex 36 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005
  1. \chapter{User Contributed Packages} \index{User packages}
  2. \label{chap-user}
  3. The complete {\REDUCE} system includes a number of packages contributed by
  4. users that are provided as a service to the user community. Questions
  5. regarding these packages should be directed to their individual authors.
  6. All such packages have been precompiled as part of the installation process.
  7. However, many must be specifically loaded before they can be used. (Those
  8. that are loaded automatically are so noted in their description.) You should
  9. also consult the user notes for your particular implementation for further
  10. information on whether this is necessary. If it is, the relevant command is
  11. {\tt LOAD\_PACKAGE},\ttindex{LOAD\_PACKAGE} which takes a list of one or
  12. more package names as argument, for example:
  13. \begin{verbatim}
  14. load_package algint;
  15. \end{verbatim}
  16. although this syntax may vary from implementation to implementation.
  17. Nearly all these packages come with separate documentation and test files
  18. (except those noted here that have no additional documentation), which is
  19. included, along with the source of the package, in the {\REDUCE} system
  20. distribution. These items should be studied for any additional details on
  21. the use of a particular package.
  22. Part 2 of this manual contains short documentation for the packages
  23. \begin{itemize}
  24. %%
  25. %%The packages available in the current release of {\REDUCE} are as follows:
  26. %%
  27. \item
  28. {ALGINT: Integration of square roots} (chapter~\ref{ALGINT});\ttindex{ALGINT}
  29. %%
  30. %%This package, which is an extension of the basic integration package
  31. %%distributed with {\REDUCE}, will analytically integrate a wide range of
  32. %%expressions involving square roots where the answer exists in that class
  33. %%of functions. It is an implementation of the work described in J.H.
  34. %%Davenport, ``On the Integration of Algebraic Functions", LNCS 102,
  35. %%Springer Verlag, 1981. Both this and the source code should be consulted
  36. %%for a more detailed description of this work.
  37. %%
  38. %%Once the {\tt ALGINT} package has been loaded, using {\tt LOAD\_PACKAGE},
  39. %%one enters an expression for integration, as with the regular integrator,
  40. %%for example:
  41. %%\begin{verbatim}
  42. %% int(sqrt(x+sqrt(x**2+1))/x,x);
  43. %%\end{verbatim}
  44. %%If one later wishes to integrate expressions without using the facilities of
  45. %%this package, the switch {\tt ALGINT}\ttindex{ALGINT} should be turned
  46. %%off. This is turned on automatically when the package is loaded.
  47. %%
  48. %%The switches supported by the standard integrator (e.g., {\tt TRINT})
  49. %%\ttindex{TRINT} are also supported by this package. In addition, the
  50. %%switch {\tt TRA},\ttindex{TRA} if on, will give further tracing
  51. %%information about the specific functioning of the algebraic integrator.
  52. %%
  53. %%There is no additional documentation for this package.
  54. %%
  55. %%Author: James H. Davenport.
  56. %%
  57. \item
  58. {APPLYSYM: Infinitesimal symmetries of differential equations}
  59. (chapter~\ref{APPLYSYM});\ttindex{APPLYSYM}
  60. %%\ttindex{APPLYSYM}
  61. %%
  62. %%This package provides programs APPLYSYM, QUASILINPDE and DETRAFO for
  63. %%computing with infinitesimal symmetries of differential equations.
  64. %%
  65. %%Author: Thomas Wolf.
  66. %%
  67. \item
  68. {ARNUM: An algebraic number package} (chapter~\ref{ARNUM});\ttindex{ARNUM}
  69. %%
  70. %%This package provides facilities for handling algebraic numbers as
  71. %%polynomial coefficients in {\REDUCE} calculations. It includes facilities for
  72. %%introducing indeterminates to represent algebraic numbers, for calculating
  73. %%splitting fields, and for factoring and finding greatest common divisors
  74. %%in such domains.
  75. %%
  76. %%Author: Eberhard Schr\"ufer.
  77. %%
  78. \item
  79. {ASSIST: Useful utilities for various applications}
  80. (chapter~\ref{ASSIST});\ttindex{ASSIST}
  81. %%
  82. %%ASSIST contains a large number of additional general purpose functions
  83. %%that allow a user to better adapt \REDUCE\ to various calculational
  84. %%strategies and to make the programming task more straightforward and more
  85. %%efficient.
  86. %%
  87. %%Author: Hubert Caprasse.
  88. %%
  89. \item
  90. {AVECTOR: A vector algebra and calculus package}
  91. (chapter~\ref{AVECTOR});\ttindex{AVECTOR}
  92. %%
  93. %%This package provides REDUCE with the ability to perform vector algebra
  94. %%using the same notation as scalar algebra. The basic algebraic operations
  95. %%are supported, as are differentiation and integration of vectors with
  96. %%respect to scalar variables, cross product and dot product, component
  97. %%manipulation and application of scalar functions (e.g. cosine) to a vector
  98. %%to yield a vector result.
  99. %%
  100. %%Author: David Harper.
  101. %%
  102. \item
  103. {BOOLEAN: A package for boolean algebra} (chapter~\ref{BOOLEAN});
  104. \ttindex{BOOLEAN}
  105. %%
  106. %%This package supports the computation with boolean expressions in the
  107. %%propositional calculus. The data objects are composed from algebraic
  108. %%expressions connected by the infix boolean operators {\bf and}, {\bf or},
  109. %%{\bf implies}, {\bf equiv}, and the unary prefix operator {\bf not}.
  110. %%{\bf Boolean} allows you to simplify expressions built from these
  111. %%operators, and to test properties like equivalence, subset property etc.
  112. %%
  113. %%Author: Herbert Melenk.
  114. %%
  115. \item
  116. {CALI: A package for computational commutative algebra}
  117. (chapter~\ref{CALI});\ttindex{CALI}
  118. %%\ttindex{CALI}
  119. %%
  120. %%This package contains algorithms for computations in commutative algebra
  121. %%closely related to the Gr\"obner algorithm for ideals and modules. Its
  122. %%heart is a new implementation of the Gr\"obner algorithm that also allows
  123. %%for the computation of syzygies. This implementation is also applicable to
  124. %%submodules of free modules with generators represented as rows of a matrix.
  125. %%
  126. %%Author: Hans-Gert Gr\"abe.
  127. %%
  128. \item
  129. {CAMAL: Calculations in celestial mechanics} (chapter~\ref{CAMAL});
  130. \ttindex{CAMAL}
  131. %%
  132. %%This packages implements in REDUCE the Fourier transform procedures of the
  133. %%CAMAL package for celestial mechanics.
  134. %%
  135. %%Author: John P. Fitch.
  136. %%
  137. \item
  138. {CHANGEVR: Change of Independent Variable(s) in DEs}
  139. (chapter~\ref{CHANGEVR});\ttindex{CHANGEVR}
  140. %%
  141. %%This package provides facilities for changing the independent variables in
  142. %%a differential equation. It is basically the application of the chain rule.
  143. %%
  144. %%Author: G. \"{U}\c{c}oluk.
  145. %%
  146. \item
  147. {COMPACT: Package for compacting expressions} (chapter~\ref{COMPACT});
  148. \ttindex{COMPACT}
  149. %%
  150. %%COMPACT is a package of functions for the reduction of a polynomial in the
  151. %%presence of side relations. COMPACT applies the side relations to the
  152. %%polynomial so that an equivalent expression results with as few terms as
  153. %%possible. For example, the evaluation of
  154. %%\begin{verbatim}
  155. %% compact(s*(1-sin x^2)+c*(1-cos x^2)+sin x^2+cos x^2,
  156. %% {cos x^2+sin x^2=1});
  157. %%\end{verbatim}
  158. %%yields the result\pagebreak[1]
  159. %%\begin{samepage}
  160. %%\begin{verbatim}
  161. %% 2 2
  162. %% SIN(X) *C + COS(X) *S + 1 .
  163. %%\end{verbatim}
  164. %%
  165. %%Author: Anthony C. Hearn.
  166. %%\end{samepage}
  167. %%
  168. \item
  169. {CONTFR: Approximation of a number by continued fractions}
  170. (chapter~\ref{CONTFR});\ttindex{CONTFR}
  171. %%
  172. %%This package provides for the simultaneous approximation of a real number
  173. %%by a continued fraction and a rational number with optional user
  174. %%controlled precision (upper bound for numerator).
  175. %%
  176. %%To use this package, the {\bf misc} package should be loaded. One can then
  177. %%use the operator\ttindex{continued\_fraction} to calculate the required
  178. %%sequence. For example:
  179. %%\begin{verbatim}
  180. %%
  181. %% continued_fraction pi; ->
  182. %%
  183. %% 1146408
  184. %% {---------,{3,7,15,1,292,1,1,1,2,1}}
  185. %% 364913
  186. %%\end{verbatim}
  187. %%
  188. %%There is no further documentation for this package.
  189. %%
  190. %%Author: Herbert Melenk.
  191. %%
  192. \item
  193. {CRACK: Solving overdetermined systems of PDEs or ODEs}
  194. (chapter~\ref{CRACK});\ttindex{CRACK}
  195. %%
  196. %%CRACK is a package for solving overdetermined systems of partial or
  197. %%ordinary differential equations (PDEs, ODEs). Examples of programs which
  198. %%make use of CRACK for investigating ODEs (finding symmetries, first
  199. %%integrals, an equivalent Lagrangian or a ``differential factorization'') are
  200. %%included.
  201. %%
  202. %%Authors: Andreas Brand, Thomas Wolf.
  203. %%
  204. \item
  205. {CVIT: Fast calculation of Dirac gamma matrix traces}
  206. (chapter~\ref{CVIT});\ttindex{CVIT}
  207. %%
  208. %%This package provides an alternative method for computing traces of Dirac
  209. %%gamma matrices, based on an algorithm by Cvitanovich that treats gamma
  210. %%matrices as 3-j symbols.
  211. %%
  212. %%Authors: V.Ilyin, A.Kryukov, A.Rodionov, A.Taranov.
  213. %%
  214. \item
  215. {DEFINT: A definite integration interface for REDUCE}
  216. (chapter~\ref{DEFINT});\ttindex{DEFINT}
  217. %%
  218. %%This package finds the definite integral of an expression in a stated
  219. %%interval. It uses several techniques, including an innovative approach
  220. %%based on the Meijer G-function, and contour integration.
  221. %%
  222. %%Authors: Kerry Gaskell, Stanley M. Kameny, Winfried Neun.
  223. %%
  224. \item
  225. {DESIR: Differential linear homogeneous equation solutions in the
  226. neighborhood of irregular and regular singular points}
  227. (chapter~\ref{DESIR});\ttindex{DESIR}
  228. %%
  229. %%This package enables the basis of formal solutions to be computed for an
  230. %%ordinary homogeneous differential equation with polynomial coefficients
  231. %%over Q of any order, in the neighborhood of zero (regular or irregular
  232. %%singular point, or ordinary point).
  233. %%
  234. %%Documentation for this package is in plain text.
  235. %%
  236. %%Authors: C. Dicrescenzo, F. Richard-Jung, E. Tournier.
  237. %%
  238. \item
  239. {DFPART: Derivatives of generic functions}
  240. (chapter~\ref{DFPART});\ttindex{DFPART}
  241. %%
  242. %%This package supports computations with total and partial derivatives of
  243. %%formal function objects. Such computations can be useful in the context
  244. %%of differential equations or power series expansions.
  245. %%
  246. %%Author: Herbert Melenk.
  247. %%
  248. \item
  249. {DUMMY: Canonical form of expressions with dummy variables}
  250. (chapter~\ref{DUMMY});\ttindex{DUMMY}
  251. %%
  252. %%This package allows a user to find the canonical form of expressions
  253. %%involving dummy variables. In that way, the simplification of
  254. %%polynomial expressions can be fully done. The indeterminates are general
  255. %%operator objects endowed with as few properties as possible. In that way
  256. %%the package may be used in a large spectrum of applications.
  257. %%
  258. %%Author: Alain Dresse.
  259. %%
  260. \item
  261. {EXCALC: A differential geometry package} (chapter~\ref{EXCALC});
  262. \ttindex{EXCALC}
  263. %%
  264. %%EXCALC is designed for easy use by all who are familiar with the calculus
  265. %%of Modern Differential Geometry. The program is currently able to handle
  266. %%scalar-valued exterior forms, vectors and operations between them, as well
  267. %%as non-scalar valued forms (indexed forms). It is thus an ideal tool for
  268. %%studying differential equations, doing calculations in general relativity
  269. %%and field theories, or doing simple things such as calculating the
  270. %%Laplacian of a tensor field for an arbitrary given frame.
  271. %%
  272. %%Author: Eberhard Schr\"ufer.
  273. %%
  274. \item
  275. {FPS: Automatic calculation of formal power series}
  276. (chapter~\ref{FPS});\ttindex{FPS}
  277. %%
  278. %%This package can expand a specific class of functions into their
  279. %%corresponding Laurent-Puiseux series.
  280. %%
  281. %%Authors: Wolfram Koepf and Winfried Neun.
  282. %%
  283. \item
  284. {FIDE: Finite difference method for partial differential equations}
  285. (chapter~\ref{FIDE});\ttindex{FIDE}
  286. %%
  287. %%This package performs automation of the process of numerically
  288. %%solving partial differential equations systems (PDES) by means of
  289. %%computer algebra. For PDES solving, the finite difference method is applied.
  290. %%The computer algebra system REDUCE and the numerical programming
  291. %%language FORTRAN are used in the presented methodology. The main aim of
  292. %%this methodology is to speed up the process of preparing numerical
  293. %%programs for solving PDES. This process is quite often, especially for
  294. %%complicated systems, a tedious and time consuming task.
  295. %%
  296. %%Documentation for this package is in plain text.
  297. %%
  298. %%Author: Richard Liska.
  299. %%
  300. \item
  301. {GENTRAN: A code generation package} (chapter~\ref{GENTRAN});
  302. \ttindex{GENTRAN}
  303. %%
  304. %%GENTRAN is an automatic code GENerator and TRANslator. It constructs
  305. %%complete numerical programs based on sets of algorithmic specifications
  306. %%and symbolic expressions. Formatted FORTRAN, RATFOR, PASCAL or C code can be
  307. %%generated through a series of interactive commands or under the control of
  308. %%a template processing routine. Large expressions can be automatically
  309. %%segmented into subexpressions of manageable size, and a special
  310. %%file-handling mechanism maintains stacks of open I/O channels to allow
  311. %%output to be sent to any number of files simultaneously and to facilitate
  312. %%recursive invocation of the whole code generation process.
  313. %%
  314. %%Author: Barbara L. Gates.
  315. %%
  316. \item
  317. {GNUPLOT: Display of functions and surfaces}
  318. (chapter~\ref{GNUPLOT});\ttindex{PLOT}\ttindex{GNUPLOT}
  319. %%
  320. %%This package is an interface to the popular GNUPLOT package.
  321. %%It allows you to display functions in 2D and surfaces in 3D
  322. %%on a variety of output devices including X terminals, PC monitors, and
  323. %%postscript and Latex printer files.
  324. %%
  325. %%NOTE: The GNUPLOT package may not be included in all versions of REDUCE.
  326. %%
  327. %%Author: Herbert Melenk.
  328. %%
  329. \item
  330. {GROEBNER: A Gr\"obner basis package} (chapter~\ref{GROEBNER});
  331. \ttindex{GROEBNER}
  332. %%
  333. %%GROEBNER\ttindex{GROEBNER} is a package for the computation of Gr\"obner
  334. %%Bases using the Buchberger algorithm and related methods
  335. %%for polynomial ideals and modules. It can be used over a variety of
  336. %%different coefficient domains, and for different variable and term
  337. %%orderings.
  338. %%
  339. %%Gr\"obner Bases can be used for various purposes in commutative
  340. %%algebra, e.g. for elimination of variables,\index{Variable elimination}
  341. %%converting surd expressions to implicit polynomial form,
  342. %%computation of dimensions, solution of polynomial equation systems
  343. %%\index{Polynomial equations} etc.
  344. %%The package is also used internally by the {\tt SOLVE}\ttindex{SOLVE}
  345. %%operator.
  346. %%
  347. %%Authors: Herbert Melenk, H.M. M\"oller and Winfried Neun.
  348. %%
  349. \item
  350. {IDEALS: Arithmetic for polynomial ideals} (chapter~\ref{IDEALS});
  351. \ttindex{IDEALS}
  352. %%
  353. %%This package implements the basic arithmetic for polynomial ideals by
  354. %%exploiting the Gr\"obner bases package of REDUCE. In order to save
  355. %%computing time all intermediate Gr\"obner bases are stored internally such
  356. %%that time consuming repetitions are inhibited.
  357. %%
  358. %%Author: Herbert Melenk.
  359. %%
  360. \item
  361. {INEQ: Support for solving inequalities} (chapter~\ref{INEQ});\ttindex{INEQ}
  362. %%
  363. %%This package supports the operator {\bf ineq\_solve} that
  364. %%tries to solves single inequalities and sets of coupled inequalities.
  365. %%
  366. %%Author: Herbert Melenk.
  367. %%
  368. \item
  369. {INVBASE: A package for computing involutive bases}
  370. (chapter~\ref{INVBASE});\ttindex{INVBASE}
  371. %%
  372. %%Involutive bases are a new tool for solving problems in connection with
  373. %%multivariate polynomials, such as solving systems of polynomial equations
  374. %%and analyzing polynomial ideals. An involutive basis of polynomial ideal
  375. %%is nothing but a special form of a redundant Gr\"obner basis. The
  376. %%construction of involutive bases reduces the problem of solving polynomial
  377. %%systems to simple linear algebra.
  378. %%
  379. %%Authors: A.Yu. Zharkov and Yu.A. Blinkov.
  380. %%
  381. \item
  382. {LAPLACE: Laplace and inverse Laplace transforms}
  383. (chapter~\ref{LAPLACE});\ttindex{LAPLACE}
  384. %%
  385. %%This package can calculate ordinary and inverse Laplace transforms of
  386. %%expressions. Documentation is in plain text.
  387. %%
  388. %%Authors: C. Kazasov, M. Spiridonova, V. Tomov.
  389. %%
  390. \item
  391. {LIE: Functions for the classification of real n-dimensional Lie
  392. algebras} (chapter~\ref{LIE});\ttindex{LIE}
  393. %%algebras}
  394. %%\ttindex{LIE}
  395. %%
  396. %%{\bf LIE} is a package of functions for the classification of real
  397. %%n-dimensional Lie algebras. It consists of two modules: {\bf liendmc1}
  398. %%and {\bf lie1234}. With the help of the functions in the {\bf liendmcl}
  399. %%module, real n-dimensional Lie algebras $L$ with a derived algebra
  400. %%$L^{(1)}$ of dimension 1 can be classified.
  401. %%
  402. %%Authors: Carsten and Franziska Sch\"obel.
  403. %%
  404. \item
  405. {LIMITS: A package for finding limits} (chapter~\ref{LIMITS});\ttindex{LIMITS}
  406. %%
  407. %%LIMITS is a fast limit package for REDUCE for functions which are
  408. %%continuous except for computable poles and singularities, based on some
  409. %%earlier work by Ian Cohen and John P. Fitch. The Truncated Power Series
  410. %%package is used for non-critical points, at which the value of the
  411. %%function is the constant term in the expansion around that point.
  412. %%L'H\^opital's rule is used in critical cases, with preprocessing of
  413. %%$\infty - \infty$ forms and reformatting of product forms in order to
  414. %%be able to apply l'H\^opital's rule. A limited amount of bounded arithmetic
  415. %%is also employed where applicable.
  416. %%
  417. %%This package defines a {\tt LIMIT} operator, called with the syntax:
  418. %%\begin{verbatim}
  419. %% LIMIT(EXPRN:algebraic,VAR:kernel,LIMPOINT:algebraic):
  420. %% algebraic.
  421. %%\end{verbatim}
  422. %%For example:
  423. %%\begin{verbatim}
  424. %% limit(x*sin(1/x),x,infinity) -> 1
  425. %% limit(sin x/x^2,x,0) -> INFINITY
  426. %%\end{verbatim}
  427. %%Direction-dependent limit operators {\tt LIMIT!+} and {\tt LIMIT!-} are
  428. %%also defined.
  429. %%
  430. %%This package loads automatically.
  431. %%
  432. %%Author: Stanley L. Kameny.
  433. %%
  434. \item
  435. {LINALG: Linear algebra package} (chapter~\ref{LINALG});\ttindex{LINALG}
  436. %%
  437. %%This package provides a selection of functions that are useful
  438. %%in the world of linear algebra.
  439. %%
  440. %%Author: Matt Rebbeck.
  441. %%
  442. \item
  443. {MODSR: Modular solve and roots} (chapter~\ref{MODSR});\ttindex{MODSR}
  444. %%
  445. %%This package supports solve (M\_SOLVE) and roots (M\_ROOTS) operators for
  446. %%modular polynomials and modular polynomial systems. The moduli need not
  447. %%be primes. M\_SOLVE requires a modulus to be set. M\_ROOTS takes the
  448. %%modulus as a second argument. For example:
  449. %%
  450. %%\begin{verbatim}
  451. %%on modular; setmod 8;
  452. %%m_solve(2x=4); -> {{X=2},{X=6}}
  453. %%m_solve({x^2-y^3=3});
  454. %% -> {{X=0,Y=5}, {X=2,Y=1}, {X=4,Y=5}, {X=6,Y=1}}
  455. %%m_solve({x=2,x^2-y^3=3}); -> {{X=2,Y=1}}
  456. %%off modular;
  457. %%m_roots(x^2-1,8); -> {1,3,5,7}
  458. %%m_roots(x^3-x,7); -> {0,1,6}
  459. %%\end{verbatim}
  460. %%
  461. %%There is no further documentation for this package.
  462. %%
  463. %%Author: Herbert Melenk.
  464. %%
  465. \item
  466. {NCPOLY: Non--commutative polynomial ideals}
  467. (chapter~\ref{NCPOLY});\ttindex{NCPOLY}
  468. %%\ttindex{NCPOLY}
  469. %%
  470. %%This package allows the user to set up automatically a consistent
  471. %%environment for computing in an algebra where the non--commutativity is
  472. %%defined by Lie-bracket commutators. The package uses the {REDUCE} {\bf
  473. %%noncom} mechanism for elementary polynomial arithmetic; the commutator
  474. %%rules are automatically computed from the Lie brackets.
  475. %%
  476. %%Authors: Herbert Melenk and Joachim Apel.
  477. %%
  478. \item
  479. {NORMFORM: Computation of matrix normal forms}
  480. (chapter~\ref{NORMFORM});\ttindex{NORMFORM}
  481. %%
  482. %%This package contains routines for computing the following
  483. %%normal forms of matrices:
  484. %%\begin{itemize}
  485. %%\item smithex\_int
  486. %%\item smithex
  487. %%\item frobenius
  488. %%\item ratjordan
  489. %%\item jordansymbolic
  490. %%\item jordan.
  491. %%\end{itemize}
  492. %%
  493. %%Author: Matt Rebbeck.
  494. %%
  495. \item
  496. {NUMERIC: Solving numerical problems} (chapter~\ref{NUMERIC});\ttindex{NUMERIC}
  497. %%\ttindex{NUM\_SOLVE}\index{Newton's method}\ttindex{NUM\_ODESOLVE}
  498. %%\ttindex{BOUNDS}\index{Chebyshev fit}
  499. %%\ttindex{NUM\_MIN}\index{Minimum}\ttindex{NUM\_INT}\index{Quadrature}
  500. %%This package implements basic algorithms of numerical analysis.
  501. %%These include:
  502. %%\begin{itemize}
  503. %%\item solution of algebraic equations by Newton's method
  504. %%\begin{verbatim}
  505. %% num_solve({sin x=cos y, x + y = 1},{x=1,y=2})
  506. %%\end{verbatim}
  507. %%\item solution of ordinary differential equations
  508. %%\begin{verbatim}
  509. %% num_odesolve(df(y,x)=y,y=1,x=(0 .. 1), iterations=5)
  510. %%\end{verbatim}
  511. %%\item bounds of a function over an interval
  512. %%\begin{verbatim}
  513. %% bounds(sin x+x,x=(1 .. 2));
  514. %%\end{verbatim}
  515. %%\item minimizing a function (Fletcher Reeves steepest descent)
  516. %%\begin{verbatim}
  517. %% num_min(sin(x)+x/5, x);
  518. %%\end{verbatim}
  519. %%\item Chebyshev curve fitting
  520. %%\begin{verbatim}
  521. %% chebyshev_fit(sin x/x,x=(1 .. 3),5);
  522. %%\end{verbatim}
  523. %%\item numerical quadrature
  524. %%\begin{verbatim}
  525. %% num_int(sin x,x=(0 .. pi));
  526. %%\end{verbatim}
  527. %%\end{itemize}
  528. %%
  529. %%Author: Herbert Melenk.
  530. %%
  531. \item
  532. {ODESOLVE: Ordinary differential equations solver}
  533. (chapter~\ref{ODESOLVE});\ttindex{ODESOLVE}
  534. %%
  535. %%The ODESOLVE package is a solver for ordinary differential equations. At
  536. %%the present time it has very limited capabilities. It can handle only a
  537. %%single scalar equation presented as an algebraic expression or equation,
  538. %%and it can solve only first-order equations of simple types, linear
  539. %%equations with constant coefficients and Euler equations. These solvable
  540. %%types are exactly those for which Lie symmetry techniques give no useful
  541. %%information. For example, the evaluation of
  542. %%\begin{verbatim}
  543. %% depend(y,x);
  544. %% odesolve(df(y,x)=x**2+e**x,y,x);
  545. %%\end{verbatim}
  546. %%yields the result
  547. %%\begin{verbatim}
  548. %% X 3
  549. %% 3*E + 3*ARBCONST(1) + X
  550. %% {Y=---------------------------}
  551. %% 3
  552. %%\end{verbatim}
  553. %%
  554. %%Main Author: Malcolm A.H. MacCallum.
  555. %%
  556. %%Other contributors: Francis Wright, Alan Barnes.
  557. %%
  558. \item
  559. {ORTHOVEC: Manipulation of scalars and vectors}
  560. (chapter~\ref{ORTHOVEC});\ttindex{ORTHOVEC}
  561. %%
  562. %%ORTHOVEC is a collection of REDUCE procedures and operations which
  563. %%provide a simple-to-use environment for the manipulation of scalars and
  564. %%vectors. Operations include addition, subtraction, dot and cross
  565. %%products, division, modulus, div, grad, curl, laplacian, differentiation,
  566. %%integration, and Taylor expansion.
  567. %%
  568. %%Author: James W. Eastwood.
  569. %%
  570. \item
  571. {PHYSOP: Operator calculus in quantum theory}
  572. (chapter~\ref{PHYSOP});\ttindex{PHYSOP}
  573. %%
  574. %%This package has been designed to meet the requirements of theoretical
  575. %%physicists looking for a computer algebra tool to perform complicated
  576. %%calculations in quantum theory with expressions containing operators.
  577. %%These operations consist mainly of the calculation of commutators between
  578. %%operator expressions and in the evaluations of operator matrix elements in
  579. %%some abstract space.
  580. %%
  581. %%Author: Mathias Warns.
  582. %%
  583. \item
  584. {PM: A REDUCE pattern matcher} (chapter~\ref{PM});\ttindex{PM}
  585. %%
  586. %%PM is a general pattern matcher similar in style to those found in systems
  587. %%such as SMP and Mathematica, and is based on the pattern matcher described
  588. %%in Kevin McIsaac, ``Pattern Matching Algebraic Identities'', SIGSAM Bulletin,
  589. %%19 (1985), 4-13.
  590. %%
  591. %%Documentation for this package is in plain text.
  592. %%
  593. %%Author: Kevin McIsaac.
  594. %%
  595. \item
  596. {RANDPOLY: A random polynomial generator} (chapter~\ref{RANDPOLY});
  597. \ttindex{RANDPOLY}
  598. %%
  599. %%This package is based on a port of the Maple random polynomial
  600. %%generator together with some support facilities for the generation
  601. %%of random numbers and anonymous procedures.
  602. %%
  603. %%Author: Francis J. Wright.
  604. %%
  605. \item
  606. {REACTEQN: Support for chemical reaction equation systems}
  607. (chapter~\ref{REACTEQN});\ttindex{REACTEQN}
  608. %%
  609. %%This package allows a user to transform chemical reaction systems into
  610. %%ordinary differential equation systems (ODE) corresponding to the laws of
  611. %%pure mass action.
  612. %%
  613. %%Documentation for this package is in plain text.
  614. %%
  615. %%Author: Herbert Melenk.
  616. %%
  617. \item
  618. {RESET: Code to reset REDUCE to its initial state}
  619. (chapter~\ref{RESET});\ttindex{RESET}
  620. %%
  621. %%This package defines a command command RESETREDUCE that works through the
  622. %%history of previous commands, and clears any values which have been
  623. %%assigned, plus any rules, arrays and the like. It also sets the various
  624. %%switches to their initial values. It is not complete, but does work for
  625. %%most things that cause a gradual loss of space. It would be relatively
  626. %%easy to make it interactive, so allowing for selective resetting.
  627. %%
  628. %%There is no further documentation on this package.
  629. %%
  630. %%Author: John Fitch.
  631. %%
  632. \item
  633. {RESIDUE: A residue package} (chapter~\ref{RESIDUE});\ttindex{RESIDUE}
  634. %%
  635. %%This package supports the calculation of residues of arbitrary
  636. %%expressions.
  637. %%
  638. %%Author: Wolfram Koepf.
  639. %%
  640. \item
  641. {RLFI: REDUCE LaTeX formula interface} (chapter~\ref{RLFI});\ttindex{RLFI}
  642. %%
  643. %%This package adds \LaTeX syntax to REDUCE. Text generated by REDUCE in
  644. %%this mode can be directly used in \LaTeX source documents. Various
  645. %%mathematical constructions are supported by the interface including
  646. %%subscripts, superscripts, font changing, Greek letters, divide-bars,
  647. %%integral and sum signs, derivatives, and so on.
  648. %%
  649. %%Author: Richard Liska.
  650. %%
  651. \item
  652. {RSOLVE: Rational/integer polynomial solvers} (chapter~\ref{RSOLVE});\ttindex{RSOLVE}
  653. %%
  654. %%This package provides operators that compute the exact rational zeros
  655. %%of a single univariate polynomial using fast modular methods. The
  656. %%algorithm used is that described by R. Loos (1983): Computing rational
  657. %%zeros of integral polynomials by $p$-adic expansion, {\it SIAM J.
  658. %%Computing}, {\bf 12}, 286--293.
  659. %%
  660. %%Author: Francis J. Wright.
  661. %%
  662. \item
  663. {ROOTS: A REDUCE root finding package} (chapter~\ref{ROOTS});\ttindex{ROOTS}
  664. %%
  665. %%This root finding package can be used to find some or all of the roots of a
  666. %%univariate polynomial with real or complex coefficients, to the accuracy
  667. %%specified by the user.
  668. %%
  669. %%It is designed so that it can be used as an independent package, or it may
  670. %%be called from {\tt SOLVE} if {\tt ROUNDED} is on. For example,
  671. %%the evaluation of
  672. %%\begin{verbatim}
  673. %% on rounded,complex;
  674. %% solve(x**3+x+5,x);
  675. %%\end{verbatim}
  676. %%yields the result
  677. %%\begin{verbatim}
  678. %% {X= - 1.51598,X=0.75799 + 1.65035*I,X=0.75799 - 1.65035*I}
  679. %%\end{verbatim}
  680. %%
  681. %%This package loads automatically.
  682. %%
  683. %%Author: Stanley L. Kameny.
  684. %%
  685. \item
  686. {SCOPE: REDUCE source code optimization package}
  687. (chapter~\ref{SCOPE});\ttindex{SCOPE}
  688. %%
  689. %%SCOPE is a package for the production of an optimized form of a set of
  690. %%expressions. It applies an heuristic search for common (sub)expressions
  691. %%to almost any set of proper REDUCE assignment statements. The
  692. %%output is obtained as a sequence of assignment statements. GENTRAN is
  693. %%used to facilitate expression output.
  694. %%
  695. %%Author: J.A. van Hulzen.
  696. %%
  697. \item
  698. {SETS: A basic set theory package} (chapter~\ref{SETS});\ttindex{SETS}
  699. %%
  700. %%The SETS package provides algebraic-mode support for set operations on
  701. %%lists regarded as sets (or representing explicit sets) and on implicit
  702. %%sets represented by identifiers.
  703. %%
  704. %%Author: Francis J. Wright.
  705. %%
  706. \item
  707. {SPDE: A package for finding symmetry groups of {PDE}'s}
  708. (chapter~\ref{SPDE});\ttindex{SPDE}
  709. %%
  710. %%The package SPDE provides a set of functions which may be used to
  711. %%determine the symmetry group of Lie- or point-symmetries of a given system
  712. %%of partial differential equations. In many cases the determining system is
  713. %%solved completely automatically. In other cases the user has to provide
  714. %%additional input information for the solution algorithm to terminate.
  715. %%
  716. %%Author: Fritz Schwarz.
  717. %%
  718. \item
  719. {SPECFN: Package for special functions} (chapter~\ref{SPECFN});
  720. \ttindex{SPECFN}
  721. %%
  722. %%\index{Gamma function} \ttindex{Gamma}
  723. %%\index{Digamma function} \ttindex{Digamma}
  724. %%\index{Polygamma functions} \ttindex{Polygamma}
  725. %%\index{Pochhammer's symbol} \ttindex{Pochhammer}
  726. %%\index{Euler numbers} \ttindex{Euler}
  727. %%\index{Bernoulli numbers} \ttindex{Bernoulli}
  728. %%\index{Zeta function (Riemann's)} \ttindex{Zeta}
  729. %%\index{Bessel functions}\ttindex{BesselJ}\ttindex{BesselY}
  730. %% \ttindex{BesselK}\ttindex{BesselI}
  731. %%\index{Hankel functions}\ttindex{Hankel1}\ttindex{Hankel2}
  732. %%\index{Kummer functions}\ttindex{KummerM}\ttindex{KummerU}
  733. %%\index{Struve functions}\ttindex{StruveH}\ttindex{StruveL}
  734. %%\index{Lommel functions}\ttindex{Lommel1}\ttindex{Lommel2}
  735. %%\index{Polygamma functions}\ttindex{Polygamma}
  736. %%\index{Beta function} \ttindex{Beta}
  737. %%\index{Whittaker functions}\ttindex{WhittakerM}
  738. %% \ttindex{WhittakerW}
  739. %%\index{Dilogarithm function} \ttindex{Dilog}
  740. %%\index{Psi function} \ttindex{Psi}
  741. %%\index{Orthogonal polynomials}
  742. %%\index{Hermite polynomials} \ttindex{HermiteP}
  743. %%\index{Jacobi's polynomials} \ttindex{JacobiP}
  744. %%\index{Legendre polynomials} \ttindex{LegendreP}
  745. %%\index{Laguerre polynomials} \ttindex{LaguerreP}
  746. %%\index{Chebyshev polynomials} \ttindex{ChebyshevT}\ttindex{ChebyshevU}
  747. %%\index{Gegenbauer polynomials}\ttindex{GegenbauerP}
  748. %%\index{Euler polynomials} \ttindex{EulerP}
  749. %%\index{Binomial coefficients} \ttindex{Binomial}
  750. %%\index{Stirling numbers}\ttindex{Stirling1}\ttindex{Stirling2}
  751. %%
  752. %%This special function package is separated into two portions to make it
  753. %%easier to handle. The packages are called SPECFN and SPECFN2. The first
  754. %%one is more general in nature, whereas the second is devoted to special
  755. %%special functions. Documentation for the first package can be found in
  756. %%the file specfn.tex in the ``doc'' directory, and examples in specfn.tst
  757. %%and specfmor.tst in the examples directory.
  758. %%
  759. %%The package SPECFN is designed to provide algebraic and numerical
  760. %%manipulations of several common special functions, namely:
  761. %%
  762. %%\begin{itemize}
  763. %%\item Bernoulli Numbers and Euler Numbers;
  764. %%\item Stirling Numbers;
  765. %%\item Binomial Coefficients;
  766. %%\item Pochhammer notation;
  767. %%\item The Gamma function;
  768. %%\item The Psi function and its derivatives;
  769. %%\item The Riemann Zeta function;
  770. %%\item The Bessel functions J and Y of the first and second kind;
  771. %%\item The modified Bessel functions I and K;
  772. %%\item The Hankel functions H1 and H2;
  773. %%\item The Kummer hypergeometric functions M and U;
  774. %%\item The Beta function, and Struve, Lommel and Whittaker functions;
  775. %%\item The Exponential Integral, the Sine and Cosine Integrals;
  776. %%\item The Hyperbolic Sine and Cosine Integrals;
  777. %%\item The Fresnel Integrals and the Error function;
  778. %%\item The Dilog function;
  779. %%\item Hermite Polynomials;
  780. %%\item Jacobi Polynomials;
  781. %%\item Legendre Polynomials;
  782. %%\item Laguerre Polynomials;
  783. %%\item Chebyshev Polynomials;
  784. %%\item Gegenbauer Polynomials;
  785. %%\item Euler Polynomials;
  786. %%\item Bernoulli Polynomials.
  787. %%\end{itemize}
  788. %%
  789. %%Author: Chris Cannam, with contributions from Winfried Neun, Herbert
  790. %%Melenk, Victor Adamchik, Francis Wright and several others.
  791. %%
  792. \item
  793. {SPECFN2: Package for special special functions}
  794. (chapter~\ref{SPECFN2});\ttindex{SPECFN2}
  795. %%
  796. %%\index{Generalized Hypergeometric functions}
  797. %%\index{Meijer's G function}
  798. %%
  799. %%This package provides algebraic manipulations of generalized
  800. %%hypergeometric functions and Meijer's G function. Generalized
  801. %%hypergeometric functions are simplified towards special functions and
  802. %%Meijer's G function is simplified towards special functions or generalized
  803. %%hypergeometric functions.
  804. %%
  805. %%Author: Victor Adamchik, with major updates by Winfried Neun.
  806. %%
  807. \item
  808. {SUM: A package for series summation} (chapter~\ref{SUM});\ttindex{SUM}
  809. %%
  810. %%This package implements the Gosper algorithm for the summation of series.
  811. %%It defines operators {\tt SUM} and {\tt PROD}. The operator {\tt SUM}
  812. %%returns the indefinite or definite summation of a given expression, and
  813. %%{\tt PROD} returns the product of the given expression.
  814. %%
  815. %%This package loads automatically.
  816. %%
  817. %%Author: Fujio Kako.
  818. %%
  819. \item
  820. {SYMMETRY: Operations on symmetric matrices} (chapter~\ref{SYMMETRY});
  821. \ttindex{SYMMETRY}
  822. %%
  823. %%This package computes symmetry-adapted bases and block diagonal forms of
  824. %%matrices which have the symmetry of a group. The package is the
  825. %%implementation of the theory of linear representations for small finite
  826. %%groups such as the dihedral groups.
  827. %%
  828. %%Author: Karin Gatermann.
  829. %%
  830. \item
  831. {TAYLOR: Manipulation of Taylor series} (chapter~\ref{TAYLOR});\ttindex{TAYLOR}
  832. %%
  833. %%This package carries out the Taylor expansion of an expression in one or
  834. %%more variables and efficient manipulation of the resulting Taylor series.
  835. %%Capabilities include basic operations (addition, subtraction,
  836. %%multiplication and division) and also application of certain algebraic and
  837. %%transcendental functions.
  838. %%
  839. %%Author: Rainer Sch\"opf.
  840. %%
  841. \item
  842. {TPS: A truncated power series package} (chapter~\ref{TPS});
  843. \ttindex{TPS}\ttindex{PS}
  844. %%
  845. %%This package implements formal Laurent series expansions in one variable
  846. %%using the domain mechanism of REDUCE. This means that power series
  847. %%objects can be added, multiplied, differentiated etc., like other first
  848. %%class objects in the system. A lazy evaluation scheme is used and thus
  849. %%terms of the series are not evaluated until they are required for printing
  850. %%or for use in calculating terms in other power series. The series are
  851. %%extendible giving the user the impression that the full infinite series is
  852. %%being manipulated. The errors that can sometimes occur using series that
  853. %%are truncated at some fixed depth (for example when a term in the required
  854. %%series depends on terms of an intermediate series beyond the truncation
  855. %%depth) are thus avoided.
  856. %%
  857. %%Authors: Alan Barnes and Julian Padget.
  858. %%
  859. \item
  860. {TRI: TeX REDUCE interface} (chapter~\ref{TRI});\ttindex{TRI}
  861. %%
  862. %%This package provides facilities written in REDUCE-Lisp for typesetting
  863. %%REDUCE formulas using \TeX. The \TeX-REDUCE-Interface incorporates three
  864. %%levels of \TeX output: without line breaking, with line breaking, and
  865. %%with line breaking plus indentation.
  866. %%
  867. %%Author: Werner Antweiler.
  868. %%
  869. \item
  870. {TRIGSIMP: Simplification and factorization of trigonometric and
  871. hyperbolic functions} (chapter~\ref{TRIGSIMP});\ttindex{TRIGSIMP}
  872. %%and hyperbolic functions}\ttindex{TRIGSIMP}
  873. %%
  874. %%TRIGSIMP is a useful tool for all kinds of trigonometric and hyperbolic
  875. %%simplification and factorization. There are three procedures included in
  876. %%TRIGSIMP: trigsimp, trigfactorize and triggcd. The first is for finding
  877. %%simplifications of trigonometric or hyperbolic expressions with many
  878. %%options, the second for factorizing them and the third for finding the
  879. %%greatest common divisor of two trigonometric or hyperbolic polynomials.
  880. %%
  881. %%Author: Wolfram Koepf.
  882. %%
  883. \item
  884. {XCOLOR: Calculation of the color factor in non-abelian gauge field
  885. theories} (chapter~\ref{XCOLOR});\ttindex{XCOLOR}
  886. %%
  887. %%This package calculates the color factor in non-abelian gauge field
  888. %%theories using an algorithm due to Cvitanovich.
  889. %%
  890. %%Documentation for this package is in plain text.
  891. %%
  892. %%Author: A. Kryukov.
  893. %%
  894. \item
  895. {XIDEAL: Gr\"obner Bases for exterior algebra} (chapter~\ref{XIDEAL});
  896. \ttindex{XIDEAL}
  897. %%
  898. %%XIDEAL constructs Gr\"obner bases for solving the left ideal membership
  899. %%problem: Gr\"obner left ideal bases or GLIBs. For graded ideals, where each
  900. %%form is homogeneous in degree, the distinction between left and right
  901. %%ideals vanishes. Furthermore, if the generating forms are all homogeneous,
  902. %%then the Gr\"obner bases for the non-graded and graded ideals are
  903. %%identical. In this case, XIDEAL is able to save time by truncating the
  904. %%Gr\"obner basis at some maximum degree if desired.
  905. %%
  906. %%Author: David Hartley.
  907. %%
  908. \item
  909. {WU: Wu algorithm for polynomial systems} (chapter~\ref{WU});\ttindex{WU}
  910. %%
  911. %%This is a simple implementation of the Wu algorithm implemented in REDUCE
  912. %%working directly from ``A Zero Structure Theorem for
  913. %%Polynomial-Equations-Solving,'' Wu Wen-tsun, Institute of Systems Science,
  914. %%Academia Sinica, Beijing.
  915. %%
  916. %%Author: Russell Bradford.
  917. %%
  918. \item
  919. {ZEILBERG: A package for indefinite and definite summation}
  920. (chapter~\ref{ZEILBERG});\ttindex{ZEILBERG}
  921. %%
  922. %%This package is a careful implementation of the Gosper and Zeilberger
  923. %%algorithms for indefinite and definite summation of hypergeometric terms,
  924. %%respectively. Extensions of these algorithms are also included that are
  925. %%valid for ratios of products of powers, factorials, $\Gamma$ function
  926. %%terms, binomial coefficients, and shifted factorials that are
  927. %%rational-linear in their arguments.
  928. %%
  929. %%Authors: Gregor St\"olting and Wolfram Koepf.
  930. %%
  931. \item
  932. {ZTRANS: $Z$-transform package} (chapter~\ref{ZTRANS});\ttindex{ZTRANS}
  933. %%
  934. %%This package is an implementation of the $Z$-transform of a sequence.
  935. %%This is the discrete analogue of the Laplace Transform.
  936. %%
  937. %%Authors: Wolfram Koepf and Lisa Temme.
  938. \end{itemize}