r38_0600.html 51 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315131613171318131913201321132213231324132513261327132813291330133113321333133413351336133713381339134013411342134313441345134613471348134913501351135213531354135513561357135813591360136113621363136413651366136713681369137013711372137313741375137613771378137913801381138213831384138513861387138813891390139113921393139413951396139713981399140014011402140314041405140614071408140914101411141214131414141514161417141814191420142114221423142414251426142714281429143014311432143314341435143614371438143914401441144214431444144514461447144814491450145114521453145414551456145714581459146014611462146314641465146614671468146914701471147214731474147514761477147814791480148114821483148414851486148714881489149014911492149314941495149614971498149915001501150215031504150515061507150815091510151115121513151415151516151715181519152015211522152315241525152615271528152915301531153215331534153515361537153815391540154115421543154415451546154715481549155015511552155315541555155615571558155915601561156215631564156515661567156815691570157115721573157415751576157715781579158015811582158315841585158615871588158915901591159215931594159515961597159815991600160116021603160416051606160716081609161016111612161316141615161616171618161916201621162216231624162516261627162816291630163116321633163416351636163716381639164016411642164316441645164616471648164916501651165216531654165516561657165816591660166116621663166416651666166716681669167016711672167316741675167616771678167916801681168216831684168516861687168816891690169116921693169416951696169716981699170017011702170317041705170617071708170917101711171217131714171517161717171817191720172117221723172417251726172717281729173017311732173317341735173617371738173917401741174217431744174517461747174817491750175117521753175417551756175717581759176017611762176317641765176617671768176917701771177217731774177517761777177817791780178117821783178417851786178717881789179017911792179317941795179617971798179918001801180218031804180518061807180818091810181118121813181418151816181718181819182018211822182318241825182618271828182918301831183218331834183518361837183818391840184118421843184418451846184718481849185018511852185318541855185618571858185918601861186218631864186518661867186818691870187118721873187418751876187718781879188018811882188318841885188618871888188918901891189218931894189518961897189818991900190119021903190419051906190719081909191019111912191319141915191619171918191919201921192219231924192519261927192819291930193119321933193419351936193719381939194019411942194319441945194619471948194919501951195219531954195519561957195819591960196119621963196419651966196719681969197019711972197319741975197619771978197919801981198219831984198519861987198819891990199119921993199419951996199719981999200020012002200320042005200620072008200920102011201220132014201520162017201820192020202120222023202420252026202720282029203020312032203320342035203620372038203920402041204220432044204520462047204820492050205120522053205420552056205720582059206020612062206320642065206620672068206920702071207220732074207520762077207820792080208120822083208420852086208720882089209020912092209320942095209620972098209921002101210221032104210521062107210821092110211121122113211421152116211721182119212021212122212321242125212621272128212921302131213221332134213521362137213821392140214121422143214421452146214721482149215021512152215321542155215621572158215921602161216221632164216521662167216821692170217121722173217421752176217721782179218021812182218321842185218621872188218921902191219221932194219521962197219821992200220122022203
  1. <a name=r38_0600>
  2. <title>matrix_augment</title></a>
  3. <p align="centre"><img src="redlogo.gif" width=621 height=60 border=0 alt="REDUC
  4. E"></p>
  5. <b><a href=r38_idx.html>INDEX</a></b><p><p>
  6. <b>MATRIX_AUGMENT</b> _ _ _ _ _ _ _ _ _ _ _ _ <b>operator</b><P>
  7. <P>
  8. Matrix augment, matrix stack:
  9. <P>
  10. <P>
  11. <P> <H3>
  12. syntax: </H3>
  13. <em>matrix_augment</em>{&lt;matrix\_list&gt;}
  14. <P>
  15. <P>
  16. <P>
  17. (If you are feeling lazy then the braces can be omitted.)
  18. <P>
  19. <P>
  20. &lt;matrix\_list&gt; :- matrices.
  21. <P>
  22. <P>
  23. <em>matrix_augment</em>sticks the matrices in &lt;matrix\_list&gt;
  24. together horizontally.
  25. <P>
  26. <P>
  27. <em>matrix_stack</em>sticks the matrices in &lt;matrix\_list&gt;
  28. together vertically.
  29. <P>
  30. <P>
  31. <P> <H3>
  32. examples: </H3>
  33. <p><pre><tt>
  34. matrix_augment({A,A});
  35. [1 2 3 1 2 3]
  36. [ ]
  37. [4 5 6 4 5 6]
  38. [ ]
  39. [7 8 9 7 8 9]
  40. matrix_stack(A,A);
  41. [1 2 3]
  42. [ ]
  43. [4 5 6]
  44. [ ]
  45. [7 8 9]
  46. [ ]
  47. [1 2 3]
  48. [ ]
  49. [4 5 6]
  50. [ ]
  51. [7 8 9]
  52. </tt></pre><p>Related functions:
  53. <a href=r38_0550.html#r38_0577>augment_columns</a>,
  54. <a href=r38_0600.html#r38_0615>stack_rows</a>,
  55. <a href=r38_0600.html#r38_0616>sub_matrix</a>.
  56. <P>
  57. <P>
  58. <a name=r38_0601>
  59. <title>matrixp</title></a>
  60. <p align="centre"><img src="redlogo.gif" width=621 height=60 border=0 alt="REDUC
  61. E"></p>
  62. <b><a href=r38_idx.html>INDEX</a></b><p><p>
  63. <b>MATRIXP</b> _ _ _ _ _ _ _ _ _ _ _ _ <b>operator</b><P>
  64. <P>
  65. <P>
  66. <P>
  67. <P> <H3>
  68. syntax: </H3>
  69. <em>matrixp</em>(&lt;test\_input&gt;)
  70. <P>
  71. <P>
  72. <P>
  73. &lt;test\_input&gt; :- anything you like.
  74. <P>
  75. <P>
  76. <em>matrixp</em>is a boolean function that returns t if the input is a
  77. matrix and nil otherwise.
  78. <P>
  79. <P>
  80. <P> <H3>
  81. examples: </H3>
  82. <p><pre><tt>
  83. matrixp A;
  84. t
  85. matrixp(doodlesackbanana);
  86. nil
  87. </tt></pre><p>Related functions:
  88. <a href=r38_0600.html#r38_0614>squarep</a>,
  89. <a href=r38_0600.html#r38_0621>symmetricp</a>.
  90. <P>
  91. <P>
  92. <a name=r38_0602>
  93. <title>matrix_stack</title></a>
  94. <p align="centre"><img src="redlogo.gif" width=621 height=60 border=0 alt="REDUC
  95. E"></p>
  96. <b><a href=r38_idx.html>INDEX</a></b><p><p>
  97. <b>MATRIX_STACK</b> _ _ _ _ _ _ _ _ _ _ _ _ <b>operator</b><P>
  98. <P>
  99. see:
  100. <a href=r38_0600.html#r38_0600>matrix_augment</a>.
  101. <P>
  102. <P>
  103. <a name=r38_0603>
  104. <title>minor</title></a>
  105. <p align="centre"><img src="redlogo.gif" width=621 height=60 border=0 alt="REDUC
  106. E"></p>
  107. <b><a href=r38_idx.html>INDEX</a></b><p><p>
  108. <b>MINOR</b> _ _ _ _ _ _ _ _ _ _ _ _ <b>operator</b><P>
  109. <P>
  110. <P>
  111. <P>
  112. <P> <H3>
  113. syntax: </H3>
  114. <em>minor</em>(&lt;matrix&gt;,&lt;r&gt;,&lt;c&gt;)
  115. <P>
  116. <P>
  117. <P>
  118. &lt;matrix&gt; :- a
  119. <a href=r38_0300.html#r38_0345>matrix</a>.
  120. &lt;r&gt;,&lt;c&gt; :- positive integers.
  121. <P>
  122. <P>
  123. <em>minor</em>computes the (&lt;r&gt;,&lt;c&gt;)'th minor of &lt;matrix&gt;.
  124. This is created by removing the &lt;r&gt;'th row and the &lt;c&gt;'th
  125. column from &lt;matrix&gt;.
  126. <P>
  127. <P>
  128. <P> <H3>
  129. examples: </H3>
  130. <p><pre><tt>
  131. minor(A,1,3);
  132. [4 5]
  133. [ ]
  134. [7 8]
  135. </tt></pre><p>Related functions:
  136. <a href=r38_0600.html#r38_0609>remove_columns</a>,
  137. <a href=r38_0600.html#r38_0610>remove_rows</a>.
  138. <P>
  139. <P>
  140. <a name=r38_0604>
  141. <title>mult_columns</title></a>
  142. <p align="centre"><img src="redlogo.gif" width=621 height=60 border=0 alt="REDUC
  143. E"></p>
  144. <b><a href=r38_idx.html>INDEX</a></b><p><p>
  145. <b>MULT_COLUMNS</b> _ _ _ _ _ _ _ _ _ _ _ _ <b>operator</b><P>
  146. <P>
  147. Mult columns, mult rows:
  148. <P>
  149. <P>
  150. <P> <H3>
  151. syntax: </H3>
  152. <em>mult_columns</em>(&lt;matrix&gt;,&lt;column\_list&gt;,&lt;expr&gt;)
  153. <P>
  154. <P>
  155. <P>
  156. &lt;matrix&gt; :- a
  157. <a href=r38_0300.html#r38_0345>matrix</a>.
  158. <P>
  159. <P>
  160. &lt;column\_list&gt; :- a positive integer or a list of positive
  161. integers.
  162. <P>
  163. <P>
  164. &lt;expr&gt; :- an algebraic expression.
  165. <P>
  166. <P>
  167. <em>mult_columns</em>returns a copy of &lt;matrix&gt; in which the
  168. columns specified in &lt;column\_list&gt; have been multiplied by
  169. &lt;expr&gt;.
  170. <P>
  171. <P>
  172. <em>mult_rows</em>performs the same task on the rows of &lt;matrix&gt;.
  173. <P>
  174. <P>
  175. <P> <H3>
  176. examples: </H3>
  177. <p><pre><tt>
  178. mult_columns(A,{1,3},x);
  179. [ x 2 3*x]
  180. [ ]
  181. [4*x 5 6*x]
  182. [ ]
  183. [7*x 8 9*x]
  184. mult_rows(A,2,10);
  185. [1 2 3 ]
  186. [ ]
  187. [40 50 60]
  188. [ ]
  189. [7 8 9 ]
  190. </tt></pre><p>Related functions:
  191. <a href=r38_0550.html#r38_0575>add_to_columns</a>,
  192. <a href=r38_0550.html#r38_0576>add_to_rows</a>.
  193. <P>
  194. <P>
  195. <a name=r38_0605>
  196. <title>mult_rows</title></a>
  197. <p align="centre"><img src="redlogo.gif" width=621 height=60 border=0 alt="REDUC
  198. E"></p>
  199. <b><a href=r38_idx.html>INDEX</a></b><p><p>
  200. <b>MULT_ROWS</b> _ _ _ _ _ _ _ _ _ _ _ _ <b>operator</b><P>
  201. <P>
  202. see:
  203. <a href=r38_0600.html#r38_0604>mult_columns</a>.
  204. <P>
  205. <P>
  206. <a name=r38_0606>
  207. <title>pivot</title></a>
  208. <p align="centre"><img src="redlogo.gif" width=621 height=60 border=0 alt="REDUC
  209. E"></p>
  210. <b><a href=r38_idx.html>INDEX</a></b><p><p>
  211. <b>PIVOT</b> _ _ _ _ _ _ _ _ _ _ _ _ <b>operator</b><P>
  212. <P>
  213. <P>
  214. <P>
  215. <P> <H3>
  216. syntax: </H3>
  217. <em>pivot</em>(&lt;matrix&gt;,&lt;r&gt;,&lt;c&gt;)
  218. <P>
  219. <P>
  220. <P>
  221. &lt;matrix&gt; :- a matrix.
  222. <P>
  223. <P>
  224. &lt;r&gt;,&lt;c&gt; :- positive integers such that &lt;matrix&gt;(&lt;r&gt;,
  225. &lt;c&gt;) neq 0.
  226. <P>
  227. <P>
  228. <em>pivot</em>pivots &lt;matrix&gt; about it's (&lt;r&gt;,&lt;c&gt;)'th
  229. entry.
  230. <P>
  231. <P>
  232. To do this, multiples of the &lt;r&gt;'th row are added to every other
  233. row in the matrix.
  234. <P>
  235. <P>
  236. This means that the &lt;c&gt;'th column will be 0 except for the
  237. (&lt;r&gt;,&lt;c&gt;)'th entry.
  238. <P>
  239. <P>
  240. <P> <H3>
  241. examples: </H3>
  242. <p><pre><tt>
  243. pivot(A,2,3);
  244. [ - 1 ]
  245. [-1 ------ 0]
  246. [ 2 ]
  247. [ ]
  248. [4 5 6]
  249. [ ]
  250. [ 1 ]
  251. [1 --- 0]
  252. [ 2 ]
  253. </tt></pre><p>Related functions:
  254. <a href=r38_0600.html#r38_0612>rows_pivot</a>.
  255. <P>
  256. <P>
  257. <a name=r38_0607>
  258. <title>pseudo_inverse</title></a>
  259. <p align="centre"><img src="redlogo.gif" width=621 height=60 border=0 alt="REDUC
  260. E"></p>
  261. <b><a href=r38_idx.html>INDEX</a></b><p><p>
  262. <b>PSEUDO_INVERSE</b> _ _ _ _ _ _ _ _ _ _ _ _ <b>operator</b><P>
  263. <P>
  264. <P>
  265. <P>
  266. <P> <H3>
  267. syntax: </H3>
  268. <em>pseudo_inverse</em>(&lt;matrix&gt;)
  269. <P>
  270. <P>
  271. <P>
  272. &lt;matrix&gt; :- a
  273. <a href=r38_0300.html#r38_0345>matrix</a>.
  274. <P>
  275. <P>
  276. <em>pseudo_inverse</em>, also known as the Moore-Penrose inverse,
  277. computes the pseudo inverse of &lt;matrix&gt;.
  278. <P>
  279. <P>
  280. Given the singular value decomposition of &lt;matrix&gt;, i.e:
  281. A = U*P*V^T, then the pseudo inverse A^-1 is defined by
  282. A^-1 = V^T*P^-1*U.
  283. <P>
  284. <P>
  285. Thus &lt;matrix&gt; * pseudo_inverse(A) = Id.
  286. (Id is the identity matrix).
  287. <P>
  288. <P>
  289. <P> <H3>
  290. examples: </H3>
  291. <p><pre><tt>
  292. R := mat((1,2,3,4),(9,8,7,6));
  293. [1 2 3 4]
  294. r := [ ]
  295. [9 8 7 6]
  296. on rounded;
  297. pseudo_inverse(R);
  298. [ - 0.199999999996 0.100000000013 ]
  299. [ ]
  300. [ - 0.0499999999988 0.0500000000037 ]
  301. [ ]
  302. [ 0.0999999999982 - 5.57825497203e-12]
  303. [ ]
  304. [ 0.249999999995 - 0.0500000000148 ]
  305. </tt></pre><p>Related functions:
  306. <a href=r38_0600.html#r38_0617>svd</a>.
  307. <P>
  308. <P>
  309. <a name=r38_0608>
  310. <title>random_matrix</title></a>
  311. <p align="centre"><img src="redlogo.gif" width=621 height=60 border=0 alt="REDUC
  312. E"></p>
  313. <b><a href=r38_idx.html>INDEX</a></b><p><p>
  314. <b>RANDOM_MATRIX</b> _ _ _ _ _ _ _ _ _ _ _ _ <b>operator</b><P>
  315. <P>
  316. <P>
  317. <P>
  318. <P> <H3>
  319. syntax: </H3>
  320. <em>random_matrix</em>(&lt;r&gt;,&lt;c&gt;,&lt;limit&gt;)
  321. <P>
  322. <P>
  323. <P>
  324. &lt;r&gt;,&lt;c&gt;,&lt;limit&gt; :- positive integers.
  325. <P>
  326. <P>
  327. <em>random_matrix</em>creates an &lt;r&gt; by &lt;c&gt; matrix with random
  328. entries in the range -limit &lt;entry &lt;limit.
  329. <P>
  330. <P>
  331. Switches:
  332. <P>
  333. <P>
  334. <em>imaginary</em>:- if on then matrix entries are x+i*y where -limit &lt;x,y
  335. &lt;&lt;limit&gt;.
  336. <P>
  337. <P>
  338. <em>not_negative</em>:- if on then 0 &lt;entry &lt;&lt;limit&gt;. In the imagina
  339. ry
  340. case we have 0 &lt;x,y &lt;&lt;limit&gt;.
  341. <P>
  342. <P>
  343. <em>only_integer</em>:- if on then each entry is an integer. In the imaginary
  344. case x and y are integers.
  345. <P>
  346. <P>
  347. <em>symmetric</em>:- if on then the matrix is symmetric.
  348. <P>
  349. <P>
  350. <em>upper_matrix</em>:- if on then the matrix is upper triangular.
  351. <P>
  352. <P>
  353. <em>lower_matrix</em>:- if on then the matrix is lower triangular.
  354. <P>
  355. <P>
  356. <P> <H3>
  357. examples: </H3>
  358. <p><pre><tt>
  359. on rounded;
  360. random_matrix(3,3,10);
  361. [ - 8.11911717343 - 5.71677292768 0.620580830035 ]
  362. [ ]
  363. [ - 0.032596262422 7.1655452861 5.86742633837 ]
  364. [ ]
  365. [ - 9.37155438255 - 7.55636708637 - 8.88618627557]
  366. on only_integer, not_negative, upper_matrix, imaginary;
  367. random_matrix(4,4,10);
  368. [70*i + 15 28*i + 8 2*i + 79 27*i + 44]
  369. [ ]
  370. [ 0 46*i + 95 9*i + 63 95*i + 50]
  371. [ ]
  372. [ 0 0 31*i + 75 14*i + 65]
  373. [ ]
  374. [ 0 0 0 5*i + 52 ]
  375. </tt></pre><p>
  376. <a name=r38_0609>
  377. <title>remove_columns</title></a>
  378. <p align="centre"><img src="redlogo.gif" width=621 height=60 border=0 alt="REDUC
  379. E"></p>
  380. <b><a href=r38_idx.html>INDEX</a></b><p><p>
  381. <b>REMOVE_COLUMNS</b> _ _ _ _ _ _ _ _ _ _ _ _ <b>operator</b><P>
  382. <P>
  383. Remove columns, remove rows:
  384. <P>
  385. <P>
  386. <P> <H3>
  387. syntax: </H3>
  388. <em>remove_columns</em>(&lt;matrix&gt;,&lt;column\_list&gt;)
  389. <P>
  390. <P>
  391. <P>
  392. &lt;matrix&gt; :- a
  393. <a href=r38_0300.html#r38_0345>matrix</a>.
  394. &lt;column\_list&gt; :- either a positive integer or a list of positive
  395. integers.
  396. <P>
  397. <P>
  398. <em>remove_columns</em>removes the columns specified in
  399. &lt;column\_list&gt; from &lt;matrix&gt;.
  400. <P>
  401. <P>
  402. <em>remove_rows</em>performs the same task on the rows of &lt;matrix&gt;.
  403. <P>
  404. <P>
  405. <P> <H3>
  406. examples: </H3>
  407. <p><pre><tt>
  408. remove_columns(A,2);
  409. [1 3]
  410. [ ]
  411. [4 6]
  412. [ ]
  413. [7 9]
  414. remove_rows(A,{1,3});
  415. [4 5 6]
  416. </tt></pre><p>Related functions:
  417. <a href=r38_0600.html#r38_0603>minor</a>.
  418. <P>
  419. <P>
  420. <a name=r38_0610>
  421. <title>remove_rows</title></a>
  422. <p align="centre"><img src="redlogo.gif" width=621 height=60 border=0 alt="REDUC
  423. E"></p>
  424. <b><a href=r38_idx.html>INDEX</a></b><p><p>
  425. <b>REMOVE_ROWS</b> _ _ _ _ _ _ _ _ _ _ _ _ <b>operator</b><P>
  426. <P>
  427. see:
  428. <a href=r38_0600.html#r38_0609>remove_columns</a>.
  429. <P>
  430. <P>
  431. <a name=r38_0611>
  432. <title>row_dim</title></a>
  433. <p align="centre"><img src="redlogo.gif" width=621 height=60 border=0 alt="REDUC
  434. E"></p>
  435. <b><a href=r38_idx.html>INDEX</a></b><p><p>
  436. <b>ROW_DIM</b> _ _ _ _ _ _ _ _ _ _ _ _ <b>operator</b><P>
  437. <P>
  438. see:
  439. <a href=r38_0550.html#r38_0584>column_dim</a>.
  440. <P>
  441. <P>
  442. <a name=r38_0612>
  443. <title>rows_pivot</title></a>
  444. <p align="centre"><img src="redlogo.gif" width=621 height=60 border=0 alt="REDUC
  445. E"></p>
  446. <b><a href=r38_idx.html>INDEX</a></b><p><p>
  447. <b>ROWS_PIVOT</b> _ _ _ _ _ _ _ _ _ _ _ _ <b>operator</b><P>
  448. <P>
  449. <P>
  450. <P>
  451. <P> <H3>
  452. syntax: </H3>
  453. <em>rows_pivot</em>(&lt;matrix&gt;,&lt;r&gt;,&lt;c&gt;,{&lt;row\_list&gt;})
  454. <P>
  455. <P>
  456. <P>
  457. &lt;matrix&gt; :- a namerefmatrix.
  458. <P>
  459. <P>
  460. &lt;r&gt;,&lt;c&gt; :- positive integers such that &lt;matrix&gt;(&lt;r&gt;,
  461. &lt;c&gt;) neq 0.
  462. <P>
  463. <P>
  464. &lt;row\_list&gt; :- positive integer or a list of positive integers.
  465. <P>
  466. <P>
  467. <em>rows_pivot</em>performs the same task as <em>pivot</em> but applies
  468. the pivot only to the rows specified in &lt;row\_list&gt;.
  469. <P>
  470. <P>
  471. <P> <H3>
  472. examples: </H3>
  473. <p><pre><tt>
  474. N := mat((1,2,3),(4,5,6),(7,8,9),(1,2,3),(4,5,6));
  475. [1 2 3]
  476. [ ]
  477. [4 5 6]
  478. [ ]
  479. n := [7 8 9]
  480. [ ]
  481. [1 2 3]
  482. [ ]
  483. [4 5 6]
  484. rows_pivot(N,2,3,{4,5});
  485. [1 2 3]
  486. [ ]
  487. [4 5 6]
  488. [ ]
  489. [7 8 9]
  490. [ ]
  491. [ - 1 ]
  492. [-1 ------ 0]
  493. [ 2 ]
  494. [ ]
  495. [0 0 0]
  496. </tt></pre><p>Related functions:
  497. <a href=r38_0600.html#r38_0606>pivot</a>.
  498. <P>
  499. <P>
  500. <a name=r38_0613>
  501. <title>simplex</title></a>
  502. <p align="centre"><img src="redlogo.gif" width=621 height=60 border=0 alt="REDUC
  503. E"></p>
  504. <b><a href=r38_idx.html>INDEX</a></b><p><p>
  505. <b>SIMPLEX</b> _ _ _ _ _ _ _ _ _ _ _ _ <b>operator</b><P>
  506. <P>
  507. <P>
  508. <P>
  509. <P> <H3>
  510. syntax: </H3>
  511. <em>simplex</em>(&lt;max/min&gt;,&lt;objective function&gt;,
  512. {&lt;linear inequalities&gt;})
  513. <P>
  514. <P>
  515. <P>
  516. &lt;max/min&gt; :- either max or min (signifying maximize and
  517. minimize).
  518. <P>
  519. <P>
  520. &lt;objective function&gt; :- the function you are maximizing or
  521. minimizing.
  522. <P>
  523. <P>
  524. &lt;linear inequalities&gt; :- the constraint inequalities. Each one must
  525. be of the form sum of variables (
  526. &lt;=,=,&gt;=) number.
  527. <P>
  528. <P>
  529. <em>simplex</em>applies the revised simplex algorithm to find the
  530. optimal(either maximum or minimum) value of the
  531. &lt;objective function&gt; under the linear inequality constraints.
  532. <P>
  533. <P>
  534. It returns {optimal value,{ values of variables at this optimal}}.
  535. <P>
  536. <P>
  537. The algorithm implies that all the variables are non-negative.
  538. <P>
  539. <P>
  540. <P> <H3>
  541. examples: </H3>
  542. <p><pre><tt>
  543. simplex(max,x+y,{x&gt;=10,y&gt;=20,x+y&lt;=25});
  544. ***** Error in simplex: Problem has no feasible solution
  545. simplex(max,10x+5y+5.5z,{5x+3z&lt;=200,x+0.1y+0.5z&lt;=12,
  546. 0.1x+0.2y+0.3z&lt;=9, 30x+10y+50z&lt;=1500});
  547. {525.0,{x=40.0,y=25.0,z=0}}
  548. </tt></pre><p>
  549. <a name=r38_0614>
  550. <title>squarep</title></a>
  551. <p align="centre"><img src="redlogo.gif" width=621 height=60 border=0 alt="REDUC
  552. E"></p>
  553. <b><a href=r38_idx.html>INDEX</a></b><p><p>
  554. <b>SQUAREP</b> _ _ _ _ _ _ _ _ _ _ _ _ <b>operator</b><P>
  555. <P>
  556. <P>
  557. <P>
  558. <P> <H3>
  559. syntax: </H3>
  560. <em>squarep</em>(&lt;matrix&gt;)
  561. <P>
  562. <P>
  563. <P>
  564. &lt;matrix&gt; :- a
  565. <a href=r38_0300.html#r38_0345>matrix</a>.
  566. <P>
  567. <P>
  568. <em>squarep</em>is a predicate that returns t if the &lt;matrix&gt; is
  569. square and nil otherwise.
  570. <P>
  571. <P>
  572. <P> <H3>
  573. examples: </H3>
  574. <p><pre><tt>
  575. squarep(mat((1,3,5)));
  576. nil
  577. squarep(A);
  578. t
  579. </tt></pre><p>Related functions:
  580. <a href=r38_0600.html#r38_0601>matrixp</a>,
  581. <a href=r38_0600.html#r38_0621>symmetricp</a>.
  582. <P>
  583. <P>
  584. <a name=r38_0615>
  585. <title>stack_rows</title></a>
  586. <p align="centre"><img src="redlogo.gif" width=621 height=60 border=0 alt="REDUC
  587. E"></p>
  588. <b><a href=r38_idx.html>INDEX</a></b><p><p>
  589. <b>STACK_ROWS</b> _ _ _ _ _ _ _ _ _ _ _ _ <b>operator</b><P>
  590. <P>
  591. see:
  592. <a href=r38_0550.html#r38_0577>augment_columns</a>.
  593. <P>
  594. <P>
  595. <a name=r38_0616>
  596. <title>sub_matrix</title></a>
  597. <p align="centre"><img src="redlogo.gif" width=621 height=60 border=0 alt="REDUC
  598. E"></p>
  599. <b><a href=r38_idx.html>INDEX</a></b><p><p>
  600. <b>SUB_MATRIX</b> _ _ _ _ _ _ _ _ _ _ _ _ <b>operator</b><P>
  601. <P>
  602. <P>
  603. <P>
  604. <P> <H3>
  605. syntax: </H3>
  606. <em>sub_matrix</em>(&lt;matrix&gt;,&lt;row\_list&gt;,&lt;column\_list&gt;)
  607. <P>
  608. <P>
  609. <P>
  610. &lt;matrix&gt; :- a matrix.
  611. &lt;row\_list&gt;, &lt;column\_list&gt; :- either a positive integer or a
  612. list of positive integers.
  613. <P>
  614. <P>
  615. namesub_matrix produces the matrix consisting of the intersection of
  616. the rows specified in &lt;row\_list&gt; and the columns specified in
  617. &lt;column\_list&gt;.
  618. <P>
  619. <P>
  620. <P> <H3>
  621. examples: </H3>
  622. <p><pre><tt>
  623. sub_matrix(A,{1,3},{2,3});
  624. [2 3]
  625. [ ]
  626. [8 9]
  627. </tt></pre><p>Related functions:
  628. <a href=r38_0550.html#r38_0577>augment_columns</a>,
  629. <a href=r38_0600.html#r38_0615>stack_rows</a>.
  630. <P>
  631. <P>
  632. <a name=r38_0617>
  633. <title>svd</title></a>
  634. <p align="centre"><img src="redlogo.gif" width=621 height=60 border=0 alt="REDUC
  635. E"></p>
  636. <b><a href=r38_idx.html>INDEX</a></b><p><p>
  637. <b>SVD</b> _ _ _ _ _ _ _ _ _ _ _ _ <b>operator</b><P>
  638. <P>
  639. <P>
  640. <P>
  641. Singular value decomposition:
  642. <P>
  643. <P>
  644. <P> <H3>
  645. syntax: </H3>
  646. <em>svd</em>(&lt;matrix&gt;)
  647. <P>
  648. <P>
  649. <P>
  650. &lt;matrix&gt; :- a
  651. <a href=r38_0300.html#r38_0345>matrix</a> containing only numeric entries.
  652. <P>
  653. <P>
  654. <em>svd</em>computes the singular value decomposition of &lt;matrix&gt;.
  655. <P>
  656. <P>
  657. It returns
  658. <P>
  659. <P>
  660. {U,P,V}
  661. <P>
  662. <P>
  663. where A = U*P*V^T
  664. <P>
  665. <P>
  666. and P = diag(sigma(1) ... sigma(n)).
  667. <P>
  668. <P>
  669. sigma(i) for i= 1 ... n are the singular values of
  670. &lt;matrix&gt;.
  671. <P>
  672. <P>
  673. n is the column dimension of &lt;matrix&gt;.
  674. <P>
  675. <P>
  676. The singular values of &lt;matrix&gt; are the non-negative square roots
  677. of the eigenvalues of A^T*A.
  678. <P>
  679. <P>
  680. U and V are such that U*U^T = V*V^T = V^T*V = Id.
  681. Id is the identity matrix.
  682. <P>
  683. <P>
  684. <P> <H3>
  685. examples: </H3>
  686. <p><pre><tt>
  687. Q := mat((1,3),(-4,3));
  688. [1 3]
  689. q := [ ]
  690. [-4 3]
  691. on rounded;
  692. svd(Q);
  693. {
  694. [ 0.289784137735 0.957092029805]
  695. [ ]
  696. [ - 0.957092029805 0.289784137735]
  697. ,
  698. [5.1491628629 0 ]
  699. [ ]
  700. [ 0 2.9130948854]
  701. ,
  702. [ - 0.687215403194 0.726453707825 ]
  703. [ ]
  704. [ - 0.726453707825 - 0.687215403194]
  705. }
  706. </tt></pre><p>
  707. <a name=r38_0618>
  708. <title>swap_columns</title></a>
  709. <p align="centre"><img src="redlogo.gif" width=621 height=60 border=0 alt="REDUC
  710. E"></p>
  711. <b><a href=r38_idx.html>INDEX</a></b><p><p>
  712. <b>SWAP_COLUMNS</b> _ _ _ _ _ _ _ _ _ _ _ _ <b>operator</b><P>
  713. <P>
  714. Swap columns, swap rows:
  715. <P>
  716. <P>
  717. <P> <H3>
  718. syntax: </H3>
  719. <em>swap_columns</em>(&lt;matrix&gt;,&lt;c1&gt;,&lt;c2&gt;)
  720. <P>
  721. <P>
  722. <P>
  723. &lt;matrix&gt; :- a
  724. <a href=r38_0300.html#r38_0345>matrix</a>.
  725. <P>
  726. <P>
  727. &lt;c1&gt;,&lt;c1&gt; :- positive integers.
  728. <P>
  729. <P>
  730. <em>swap_columns</em>swaps column &lt;c1&gt; of &lt;matrix&gt; with
  731. column &lt;c2&gt;.
  732. <P>
  733. <P>
  734. <em>swap_rows</em>performs the same task on two rows of &lt;matrix&gt;.
  735. <P>
  736. <P>
  737. <P> <H3>
  738. examples: </H3>
  739. <p><pre><tt>
  740. swap_columns(A,2,3);
  741. [1 3 2]
  742. [ ]
  743. [4 6 5]
  744. [ ]
  745. [7 9 8]
  746. swap_rows(A,1,3);
  747. [7 8 9]
  748. [ ]
  749. [4 5 6]
  750. [ ]
  751. [1 2 3]
  752. </tt></pre><p>Related functions:
  753. <a href=r38_0600.html#r38_0619>swap_entries</a>.
  754. <P>
  755. <P>
  756. <a name=r38_0619>
  757. <title>swap_entries</title></a>
  758. <p align="centre"><img src="redlogo.gif" width=621 height=60 border=0 alt="REDUC
  759. E"></p>
  760. <b><a href=r38_idx.html>INDEX</a></b><p><p>
  761. <b>SWAP_ENTRIES</b> _ _ _ _ _ _ _ _ _ _ _ _ <b>operator</b><P>
  762. <P>
  763. <P>
  764. <P>
  765. <P> <H3>
  766. syntax: </H3>
  767. <em>swap_entries</em>(&lt;matrix&gt;,{&lt;r1&gt;,&lt;c1&gt;},{&lt;r2&gt;,
  768. &lt;c2&gt;})
  769. <P>
  770. <P>
  771. <P>
  772. &lt;matrix&gt; :- a
  773. <a href=r38_0300.html#r38_0345>matrix</a>.
  774. <P>
  775. <P>
  776. &lt;r1&gt;,&lt;c1&gt;,&lt;r2&gt;,&lt;c2&gt; :- positive integers.
  777. <P>
  778. <P>
  779. <em>swap_entries</em>swaps &lt;matrix&gt;(&lt;r1&gt;,&lt;c1&gt;) with
  780. &lt;matrix&gt;(&lt;r2&gt;,&lt;c2&gt;).
  781. <P>
  782. <P>
  783. <P> <H3>
  784. examples: </H3>
  785. <p><pre><tt>
  786. swap_entries(A,{1,1},{3,3});
  787. [9 2 3]
  788. [ ]
  789. [4 5 6]
  790. [ ]
  791. [7 8 1]
  792. </tt></pre><p>Related functions:
  793. <a href=r38_0600.html#r38_0618>swap_columns</a>,
  794. <a href=r38_0600.html#r38_0620>swap_rows</a>.
  795. <P>
  796. <P>
  797. <a name=r38_0620>
  798. <title>swap_rows</title></a>
  799. <p align="centre"><img src="redlogo.gif" width=621 height=60 border=0 alt="REDUC
  800. E"></p>
  801. <b><a href=r38_idx.html>INDEX</a></b><p><p>
  802. <b>SWAP_ROWS</b> _ _ _ _ _ _ _ _ _ _ _ _ <b>operator</b><P>
  803. <P>
  804. see:
  805. <a href=r38_0600.html#r38_0618>swap_columns</a>.
  806. <P>
  807. <P>
  808. <a name=r38_0621>
  809. <title>symmetricp</title></a>
  810. <p align="centre"><img src="redlogo.gif" width=621 height=60 border=0 alt="REDUC
  811. E"></p>
  812. <b><a href=r38_idx.html>INDEX</a></b><p><p>
  813. <b>SYMMETRICP</b> _ _ _ _ _ _ _ _ _ _ _ _ <b>operator</b><P>
  814. <P>
  815. <P>
  816. <P>
  817. <P> <H3>
  818. syntax: </H3>
  819. <em>symmetricp</em>(&lt;matrix&gt;)
  820. <P>
  821. <P>
  822. <P>
  823. &lt;matrix&gt; :- a
  824. <a href=r38_0300.html#r38_0345>matrix</a>.
  825. <P>
  826. <P>
  827. <em>symmetricp</em>is a predicate that returns t if the matrix is symmetric
  828. and nil otherwise.
  829. <P>
  830. <P>
  831. <P> <H3>
  832. examples: </H3>
  833. <p><pre><tt>
  834. symmetricp(make_identity(11));
  835. t
  836. symmetricp(A);
  837. nil
  838. </tt></pre><p>Related functions:
  839. <a href=r38_0600.html#r38_0601>matrixp</a>,
  840. <a href=r38_0600.html#r38_0614>squarep</a>.
  841. <P>
  842. <P>
  843. <a name=r38_0622>
  844. <title>toeplitz</title></a>
  845. <p align="centre"><img src="redlogo.gif" width=621 height=60 border=0 alt="REDUC
  846. E"></p>
  847. <b><a href=r38_idx.html>INDEX</a></b><p><p>
  848. <b>TOEPLITZ</b> _ _ _ _ _ _ _ _ _ _ _ _ <b>operator</b><P>
  849. <P>
  850. <P>
  851. <P>
  852. <P> <H3>
  853. syntax: </H3>
  854. <em>toeplitz</em>(&lt;expr\_list&gt;)
  855. <P>
  856. <P>
  857. <P>
  858. (If you are feeling lazy then the braces can be omitted.)
  859. <P>
  860. <P>
  861. &lt;expr\_list&gt; :- list of algebraic expressions.
  862. <P>
  863. <P>
  864. <em>toeplitz</em>creates the toeplitz matrix from the &lt;expr\_list&gt;.
  865. <P>
  866. <P>
  867. This is a square symmetric matrix in which the first expression is
  868. placed on the diagonal and the i'th expression is placed on the (i-1)'th
  869. sub and super diagonals.
  870. <P>
  871. <P>
  872. It has dimension n where n is the number of expressions.
  873. <P>
  874. <P>
  875. <P> <H3>
  876. examples: </H3>
  877. <p><pre><tt>
  878. toeplitz({w,x,y,z});
  879. [w x y z]
  880. [ ]
  881. [x w x y]
  882. [ ]
  883. [y x w x]
  884. [ ]
  885. [z y x w]
  886. </tt></pre><p>
  887. <a name=r38_0623>
  888. <title>vandermonde</title></a>
  889. <p align="centre"><img src="redlogo.gif" width=621 height=60 border=0 alt="REDUC
  890. E"></p>
  891. <b><a href=r38_idx.html>INDEX</a></b><p><p>
  892. <b>VANDERMONDE</b> _ _ _ _ _ _ _ _ _ _ _ _ <b>operator</b><P>
  893. <P>
  894. <P>
  895. <P>
  896. <P> <H3>
  897. syntax: </H3>
  898. <em>vandermonde</em>({&lt;expr\_list&gt;})
  899. <P>
  900. <P>
  901. <P>
  902. (If you are feeling lazy then the braces can be omitted.)
  903. <P>
  904. <P>
  905. &lt;expr\_list&gt; :- list of algebraic expressions.
  906. <P>
  907. <P>
  908. <em>vandermonde</em>creates the vandermonde matrix from the
  909. &lt;expr\_list&gt;.
  910. <P>
  911. <P>
  912. This is the square matrix in which the (i,j)'th entry is
  913. &lt;expr\_list&gt;(i)^(j-1).
  914. <P>
  915. <P>
  916. It has dimension n where n is the number of expressions.
  917. <P>
  918. <P>
  919. <P> <H3>
  920. examples: </H3>
  921. <p><pre><tt>
  922. vandermonde({x,2*y,3*z});
  923. [ 2 ]
  924. [1 x x ]
  925. [ ]
  926. [ 2]
  927. [1 2*y 4*y ]
  928. [ ]
  929. [ 2]
  930. [1 3*z 9*z ]
  931. </tt></pre><p>
  932. <a name=r38_0624>
  933. <title>Linear Algebra package</title></a>
  934. <p align="centre"><img src="redlogo.gif" width=621 height=60 border=0 alt="REDUC
  935. E"></p>
  936. <b><a href=r38_idx.html>INDEX</a></b><p><p>
  937. <b>Linear Algebra package</b><menu>
  938. <li><a href=r38_0550.html#r38_0571>Linear Algebra package introduction</a><P>
  939. <li><a href=r38_0550.html#r38_0572>fast_la switch</a><P>
  940. <li><a href=r38_0550.html#r38_0573>add_columns operator</a><P>
  941. <li><a href=r38_0550.html#r38_0574>add_rows operator</a><P>
  942. <li><a href=r38_0550.html#r38_0575>add_to_columns operator</a><P>
  943. <li><a href=r38_0550.html#r38_0576>add_to_rows operator</a><P>
  944. <li><a href=r38_0550.html#r38_0577>augment_columns operator</a><P>
  945. <li><a href=r38_0550.html#r38_0578>band_matrix operator</a><P>
  946. <li><a href=r38_0550.html#r38_0579>block_matrix operator</a><P>
  947. <li><a href=r38_0550.html#r38_0580>char_matrix operator</a><P>
  948. <li><a href=r38_0550.html#r38_0581>char_poly operator</a><P>
  949. <li><a href=r38_0550.html#r38_0582>cholesky operator</a><P>
  950. <li><a href=r38_0550.html#r38_0583>coeff_matrix operator</a><P>
  951. <li><a href=r38_0550.html#r38_0584>column_dim operator</a><P>
  952. <li><a href=r38_0550.html#r38_0585>companion operator</a><P>
  953. <li><a href=r38_0550.html#r38_0586>copy_into operator</a><P>
  954. <li><a href=r38_0550.html#r38_0587>diagonal operator</a><P>
  955. <li><a href=r38_0550.html#r38_0588>extend operator</a><P>
  956. <li><a href=r38_0550.html#r38_0589>find_companion operator</a><P>
  957. <li><a href=r38_0550.html#r38_0590>get_columns operator</a><P>
  958. <li><a href=r38_0550.html#r38_0591>get_rows operator</a><P>
  959. <li><a href=r38_0550.html#r38_0592>gram_schmidt operator</a><P>
  960. <li><a href=r38_0550.html#r38_0593>hermitian_tp operator</a><P>
  961. <li><a href=r38_0550.html#r38_0594>hessian operator</a><P>
  962. <li><a href=r38_0550.html#r38_0595>hilbert operator</a><P>
  963. <li><a href=r38_0550.html#r38_0596>jacobian operator</a><P>
  964. <li><a href=r38_0550.html#r38_0597>jordan_block operator</a><P>
  965. <li><a href=r38_0550.html#r38_0598>lu_decom operator</a><P>
  966. <li><a href=r38_0550.html#r38_0599>make_identity operator</a><P>
  967. <li><a href=r38_0600.html#r38_0600>matrix_augment operator</a><P>
  968. <li><a href=r38_0600.html#r38_0601>matrixp operator</a><P>
  969. <li><a href=r38_0600.html#r38_0602>matrix_stack operator</a><P>
  970. <li><a href=r38_0600.html#r38_0603>minor operator</a><P>
  971. <li><a href=r38_0600.html#r38_0604>mult_columns operator</a><P>
  972. <li><a href=r38_0600.html#r38_0605>mult_rows operator</a><P>
  973. <li><a href=r38_0600.html#r38_0606>pivot operator</a><P>
  974. <li><a href=r38_0600.html#r38_0607>pseudo_inverse operator</a><P>
  975. <li><a href=r38_0600.html#r38_0608>random_matrix operator</a><P>
  976. <li><a href=r38_0600.html#r38_0609>remove_columns operator</a><P>
  977. <li><a href=r38_0600.html#r38_0610>remove_rows operator</a><P>
  978. <li><a href=r38_0600.html#r38_0611>row_dim operator</a><P>
  979. <li><a href=r38_0600.html#r38_0612>rows_pivot operator</a><P>
  980. <li><a href=r38_0600.html#r38_0613>simplex operator</a><P>
  981. <li><a href=r38_0600.html#r38_0614>squarep operator</a><P>
  982. <li><a href=r38_0600.html#r38_0615>stack_rows operator</a><P>
  983. <li><a href=r38_0600.html#r38_0616>sub_matrix operator</a><P>
  984. <li><a href=r38_0600.html#r38_0617>svd operator</a><P>
  985. <li><a href=r38_0600.html#r38_0618>swap_columns operator</a><P>
  986. <li><a href=r38_0600.html#r38_0619>swap_entries operator</a><P>
  987. <li><a href=r38_0600.html#r38_0620>swap_rows operator</a><P>
  988. <li><a href=r38_0600.html#r38_0621>symmetricp operator</a><P>
  989. <li><a href=r38_0600.html#r38_0622>toeplitz operator</a><P>
  990. <li><a href=r38_0600.html#r38_0623>vandermonde operator</a><P>
  991. </menu>
  992. <a name=r38_0625>
  993. <title>Smithex</title></a>
  994. <p align="centre"><img src="redlogo.gif" width=621 height=60 border=0 alt="REDUC
  995. E"></p>
  996. <b><a href=r38_idx.html>INDEX</a></b><p><p>
  997. <b>SMITHEX</b> _ _ _ _ _ _ _ _ _ _ _ _ <b>operator</b><P>
  998. <P>
  999. The operator <em>smithex</em> computes the Smith normal form S of a
  1000. <a href=r38_0300.html#r38_0345>matrix</a> A (say). It returns {S,P,P^-1} where P
  1001. *S*P^-1 = A.
  1002. <P>
  1003. <P>
  1004. <P> <H3>
  1005. syntax: </H3>
  1006. <em>smithex</em>(&lt;matrix&gt;,&lt;variable&gt;)
  1007. <P>
  1008. <P>
  1009. &lt;matrix&gt; :- a rectangular
  1010. <a href=r38_0300.html#r38_0345>matrix</a> of univariate polynomials in
  1011. &lt;variable&gt;.
  1012. &lt;variable&gt; :- the variable.
  1013. <P>
  1014. <P>
  1015. <P>
  1016. <P> <H3>
  1017. examples: </H3>
  1018. <p><pre><tt>
  1019. a := mat((x,x+1),(0,3*x^2));
  1020. [x x + 1]
  1021. [ ]
  1022. a := [ 2 ]
  1023. [0 3*x ]
  1024. smithex(a,x);
  1025. [1 0 ] [1 0] [x x + 1]
  1026. { [ ], [ ], [ ] }
  1027. [ 3] [ 2 ] [ ]
  1028. [0 x ] [3*x 1] [-3 -3 ]
  1029. </tt></pre><p>
  1030. <a name=r38_0626>
  1031. <title>Smithex_int</title></a>
  1032. <p align="centre"><img src="redlogo.gif" width=621 height=60 border=0 alt="REDUC
  1033. E"></p>
  1034. <b><a href=r38_idx.html>INDEX</a></b><p><p>
  1035. <b>SMITHEX\_INT</b> _ _ _ _ _ _ _ _ _ _ _ _ <b>operator</b><P>
  1036. <P>
  1037. The operator <em>smithex_int</em> performs the same task as <em>smithex</em>
  1038. but on matrices containing only integer entries. Namely,
  1039. <em>smithex_int</em> returns {S,P,P^-1} where S is the smith normal
  1040. form of the input
  1041. <a href=r38_0300.html#r38_0345>matrix</a> (A say), and P*S*P^-1 = A.
  1042. <P>
  1043. <P>
  1044. <P> <H3>
  1045. syntax: </H3>
  1046. <em>smithex_int</em>(&lt;matrix&gt;)
  1047. <P>
  1048. <P>
  1049. &lt;matrix&gt; :- a rectangular
  1050. <a href=r38_0300.html#r38_0345>matrix</a> of integer entries.
  1051. <P>
  1052. <P>
  1053. <P>
  1054. <P> <H3>
  1055. examples: </H3>
  1056. <p><pre><tt>
  1057. a := mat((9,-36,30),(-36,192,-180),(30,-180,180));
  1058. [ 9 -36 30 ]
  1059. [ ]
  1060. a := [-36 192 -180]
  1061. [ ]
  1062. [30 -180 180 ]
  1063. smithex_int(a);
  1064. [3 0 0 ] [-17 -5 -4 ] [1 -24 30 ]
  1065. [ ] [ ] [ ]
  1066. { [0 12 0 ], [64 19 15 ], [-1 25 -30] }
  1067. [ ] [ ] [ ]
  1068. [0 0 60] [-50 -15 -12] [0 -1 1 ]
  1069. </tt></pre><p>
  1070. <a name=r38_0627>
  1071. <title>Frobenius</title></a>
  1072. <p align="centre"><img src="redlogo.gif" width=621 height=60 border=0 alt="REDUC
  1073. E"></p>
  1074. <b><a href=r38_idx.html>INDEX</a></b><p><p>
  1075. <b>FROBENIUS</b> _ _ _ _ _ _ _ _ _ _ _ _ <b>operator</b><P>
  1076. <P>
  1077. The operator <em>frobenius</em> computes the <em>frobenius</em> normal form F of
  1078. a
  1079. <a href=r38_0300.html#r38_0345>matrix</a> (A say). It returns {F,P,P^-1} where P
  1080. *F*P^-1 = A.
  1081. <P>
  1082. <P>
  1083. <P> <H3>
  1084. syntax: </H3>
  1085. <em>frobenius</em>(&lt;matrix&gt;)
  1086. <P>
  1087. <P>
  1088. &lt;matrix&gt; :- a square
  1089. <a href=r38_0300.html#r38_0345>matrix</a>.
  1090. <P>
  1091. <P>
  1092. <P>
  1093. Field Extensions:
  1094. <P>
  1095. <P>
  1096. By default, calculations are performed in the rational numbers. To
  1097. extend this field the
  1098. <a href=r38_0600.html#r38_0635>arnum</a> package can be used. The package must
  1099. first be loaded by load_package arnum;. The field can now be extended
  1100. by using the defpoly command. For example, defpoly sqrt2**2-2; will
  1101. extend the field to include the square root of 2 (now defined by sqrt2).
  1102. <P>
  1103. <P>
  1104. Modular Arithmetic:
  1105. <P>
  1106. <P>
  1107. <em>Frobenius</em>can also be calculated in a modular base. To do this
  1108. first type on modular;. Then setmod p; (where p is a prime) will set
  1109. the modular base of calculation to p. By further typing on balanced_mod
  1110. the answer will appear using a symmetric modular representation. See
  1111. <a href=r38_0600.html#r38_0628>ratjordan</a> for an example.
  1112. <P>
  1113. <P>
  1114. <P> <H3>
  1115. examples: </H3>
  1116. <p><pre><tt>
  1117. a := mat((x,x^2),(3,5*x));
  1118. [ 2 ]
  1119. [x x ]
  1120. a := [ ]
  1121. [3 5*x]
  1122. frobenius(a);
  1123. [ 2] [1 x] [ - x ]
  1124. { [0 - 2*x ], [ ], [1 -----] }
  1125. [ ] [0 3] [ 3 ]
  1126. [1 6*x ] [ ]
  1127. [ 1 ]
  1128. [0 --- ]
  1129. [ 3 ]
  1130. load_package arnum;
  1131. defpoly sqrt2**2-2;
  1132. a := mat((sqrt2,5),(7*sqrt2,sqrt2));
  1133. [ sqrt2 5 ]
  1134. a := [ ]
  1135. [7*sqrt2 sqrt2]
  1136. frobenius(a);
  1137. [0 35*sqrt2 - 2] [1 sqrt2 ] [ 1 ]
  1138. { [ ], [ ], [1 - --- ] }
  1139. [1 2*sqrt2 ] [1 7*sqrt2] [ 7 ]
  1140. [ ]
  1141. [ 1 ]
  1142. [0 ----*sqrt2]
  1143. [ 14 ]
  1144. </tt></pre><p>
  1145. <a name=r38_0628>
  1146. <title>Ratjordan</title></a>
  1147. <p align="centre"><img src="redlogo.gif" width=621 height=60 border=0 alt="REDUC
  1148. E"></p>
  1149. <b><a href=r38_idx.html>INDEX</a></b><p><p>
  1150. <b>RATJORDAN</b> _ _ _ _ _ _ _ _ _ _ _ _ <b>operator</b><P>
  1151. <P>
  1152. The operator <em>ratjordan</em> computes the rational Jordan normal form R
  1153. of a
  1154. <a href=r38_0300.html#r38_0345>matrix</a> (A say). It returns {R,P,P^-1} where P
  1155. *R*P^-1 = A.
  1156. <P>
  1157. <P>
  1158. <P> <H3>
  1159. syntax: </H3>
  1160. <em>ratjordan</em>(&lt;matrix&gt;)
  1161. <P>
  1162. <P>
  1163. &lt;matrix&gt; :- a square
  1164. <a href=r38_0300.html#r38_0345>matrix</a>.
  1165. <P>
  1166. <P>
  1167. <P>
  1168. Field Extensions:
  1169. <P>
  1170. <P>
  1171. By default, calculations are performed in the rational numbers. To
  1172. extend this field the <em>arnum</em> package can be used. The package must
  1173. first be loaded by load_package arnum;. The field can now be extended
  1174. by using the defpoly command. For example, defpoly sqrt2**2-2; will
  1175. extend the field to include the square root of 2 (now defined by sqrt2).
  1176. See
  1177. <a href=r38_0600.html#r38_0627>frobenius</a> for an example.
  1178. <P>
  1179. <P>
  1180. Modular Arithmetic:
  1181. <P>
  1182. <P>
  1183. <em>ratjordan</em>can also be calculated in a modular base. To do this
  1184. first type on modular;. Then setmod p; (where p is a prime) will set
  1185. the modular base of calculation to p. By further typing on balanced_mod
  1186. the answer will appear using a symmetric modular representation.
  1187. <P>
  1188. <P>
  1189. <P> <H3>
  1190. examples: </H3>
  1191. <p><pre><tt>
  1192. a := mat((5,4*x),(2,x^2));
  1193. [5 4*x]
  1194. [ ]
  1195. a := [ 2 ]
  1196. [2 x ]
  1197. ratjordan(a);
  1198. [0 x*( - 5*x + 8)] [1 5] [ -5 ]
  1199. { [ ], [ ], [1 -----] }
  1200. [ 2 ] [0 2] [ 2 ]
  1201. [1 x + 5 ] [ ]
  1202. [ 1 ]
  1203. [0 -----]
  1204. [ 2 ]
  1205. on modular;
  1206. setmod 23;
  1207. a := mat((12,34),(56,78));
  1208. [12 11]
  1209. a := [ ]
  1210. [10 9 ]
  1211. ratjordan(a);
  1212. [15 0] [16 8] [1 21]
  1213. { [ ], [ ], [ ] }
  1214. [0 6] [19 4] [1 4 ]
  1215. on balanced_mod;
  1216. ratjordan(a);
  1217. [- 8 0] [ - 7 8] [1 - 2]
  1218. { [ ], [ ], [ ] }
  1219. [ 0 6] [ - 4 4] [1 4 ]
  1220. </tt></pre><p>
  1221. <a name=r38_0629>
  1222. <title>Jordansymbolic</title></a>
  1223. <p align="centre"><img src="redlogo.gif" width=621 height=60 border=0 alt="REDUC
  1224. E"></p>
  1225. <b><a href=r38_idx.html>INDEX</a></b><p><p>
  1226. <b>JORDANSYMBOLIC</b> _ _ _ _ _ _ _ _ _ _ _ _ <b>operator</b><P>
  1227. <P>
  1228. The operator <em>jordansymbolic</em> computes the Jordan normal form J
  1229. of a
  1230. <a href=r38_0300.html#r38_0345>matrix</a> (A say). It returns {J,L,P,P^-1} where
  1231. P*J*P^-1 = A. L = {ll,mm} where mm is a name and ll is a list of
  1232. irreducible factors of p(mm).
  1233. <P>
  1234. <P>
  1235. <P> <H3>
  1236. syntax: </H3>
  1237. <em>jordansymbolic</em>(&lt;matrix&gt;)
  1238. <P>
  1239. <P>
  1240. &lt;matrix&gt; :- a square
  1241. <a href=r38_0300.html#r38_0345>matrix</a>.
  1242. <P>
  1243. <P>
  1244. <P>
  1245. Field Extensions:
  1246. <P>
  1247. <P>
  1248. By default, calculations are performed in the rational numbers. To
  1249. extend this field the
  1250. <a href=r38_0600.html#r38_0635>arnum</a> package can be used. The package must
  1251. first be loaded by load_package arnum;. The field can now be extended
  1252. by using the defpoly command. For example, defpoly sqrt2**2-2; will
  1253. extend the field to include the square root of 2 (now defined by sqrt2).
  1254. See
  1255. <a href=r38_0600.html#r38_0627>frobenius</a> for an example.
  1256. <P>
  1257. <P>
  1258. Modular Arithmetic:
  1259. <P>
  1260. <P>
  1261. <em>jordansymbolic</em>can also be calculated in a modular base. To do this
  1262. first type on modular;. Then setmod p; (where p is a prime) will set
  1263. the modular base of calculation to p. By further typing on balanced_mod
  1264. the answer will appear using a symmetric modular representation. See
  1265. <a href=r38_0600.html#r38_0628>ratjordan</a> for an example.
  1266. <P>
  1267. <P>
  1268. <P> <H3>
  1269. examples: </H3>
  1270. <p><pre><tt>
  1271. a := mat((1,y),(2,5*y));
  1272. [1 y ]
  1273. a := [ ]
  1274. [2 5*y]
  1275. jordansymbolic(a);
  1276. {
  1277. [lambda11 0 ]
  1278. [ ]
  1279. [ 0 lambda12]
  1280. ,
  1281. 2
  1282. lambda - 5*lambda*y - lambda + 3*y,lambda,
  1283. [lambda11 - 5*y lambda12 - 5*y]
  1284. [ ]
  1285. [ 2 2 ]
  1286. ,
  1287. [ 2*lambda11 - 5*y - 1 5*lambda11*y - lambda11 - y + 1 ]
  1288. [---------------------- ---------------------------------]
  1289. [ 2 2 ]
  1290. [ 25*y - 2*y + 1 2*(25*y - 2*y + 1) ]
  1291. [ ]
  1292. [ 2*lambda12 - 5*y - 1 5*lambda12*y - lambda12 - y + 1 ]
  1293. [---------------------- ---------------------------------]
  1294. [ 2 2 ]
  1295. [ 25*y - 2*y + 1 2*(25*y - 2*y + 1) ]
  1296. }
  1297. </tt></pre><p>
  1298. <a name=r38_0630>
  1299. <title>Jordan</title></a>
  1300. <p align="centre"><img src="redlogo.gif" width=621 height=60 border=0 alt="REDUC
  1301. E"></p>
  1302. <b><a href=r38_idx.html>INDEX</a></b><p><p>
  1303. <b>JORDAN</b> _ _ _ _ _ _ _ _ _ _ _ _ <b>operator</b><P>
  1304. <P>
  1305. The operator <em>jordan</em> computes the Jordan normal form J
  1306. of a
  1307. <a href=r38_0300.html#r38_0345>matrix</a> (A say). It returns {J,P,P^-1} where P
  1308. *J*P^-1 = A.
  1309. <P>
  1310. <P>
  1311. <P> <H3>
  1312. syntax: </H3>
  1313. <em>jordan</em>(&lt;matrix&gt;)
  1314. <P>
  1315. <P>
  1316. &lt;matrix&gt; :- a square
  1317. <a href=r38_0300.html#r38_0345>matrix</a>.
  1318. <P>
  1319. <P>
  1320. <P>
  1321. Field Extensions:
  1322. By default, calculations are performed in the rational numbers. To
  1323. extend this field the <em>arnum</em> package can be used. The package must
  1324. first be loaded by load_package arnum;. The field can now be extended
  1325. by using the defpoly command. For example, defpoly sqrt2**2-2; will
  1326. extend the field to include the square root of 2 (now defined by sqrt2).
  1327. See
  1328. <a href=r38_0600.html#r38_0627>frobenius</a> for an example.
  1329. <P>
  1330. <P>
  1331. Modular Arithmetic:
  1332. <em>Jordan</em> can also be calculated in a modular base. To do this
  1333. first type on modular;. Then setmod p; (where p is a prime) will set
  1334. the modular base of calculation to p. By further typing on balanced_mod
  1335. the answer will appear using a symmetric modular representation. See
  1336. <a href=r38_0600.html#r38_0628>ratjordan</a> for an example.
  1337. <P>
  1338. <P>
  1339. <P> <H3>
  1340. examples: </H3>
  1341. <p><pre><tt>
  1342. a := mat((1,x),(0,x));
  1343. [1 x]
  1344. a := [ ]
  1345. [0 x]
  1346. jordan(a);
  1347. {
  1348. [1 0]
  1349. [ ]
  1350. [0 x]
  1351. ,
  1352. [ 1 x ]
  1353. [------- --------------]
  1354. [ x - 1 2 ]
  1355. [ x - 2*x + 1 ]
  1356. [ ]
  1357. [ 1 ]
  1358. [ 0 ------- ]
  1359. [ x - 1 ]
  1360. ,
  1361. [x - 1 - x ]
  1362. [ ]
  1363. [ 0 x - 1]
  1364. }
  1365. </tt></pre><p>
  1366. <a name=r38_0631>
  1367. <title>Matrix Normal Forms</title></a>
  1368. <p align="centre"><img src="redlogo.gif" width=621 height=60 border=0 alt="REDUC
  1369. E"></p>
  1370. <b><a href=r38_idx.html>INDEX</a></b><p><p>
  1371. <b>Matrix Normal Forms</b><menu>
  1372. <li><a href=r38_0600.html#r38_0625>Smithex operator</a><P>
  1373. <li><a href=r38_0600.html#r38_0626>Smithex\_int operator</a><P>
  1374. <li><a href=r38_0600.html#r38_0627>Frobenius operator</a><P>
  1375. <li><a href=r38_0600.html#r38_0628>Ratjordan operator</a><P>
  1376. <li><a href=r38_0600.html#r38_0629>Jordansymbolic operator</a><P>
  1377. <li><a href=r38_0600.html#r38_0630>Jordan operator</a><P>
  1378. </menu>
  1379. <a name=r38_0632>
  1380. <title>Miscellaneous_Packages</title></a>
  1381. <p align="centre"><img src="redlogo.gif" width=621 height=60 border=0 alt="REDUC
  1382. E"></p>
  1383. <b><a href=r38_idx.html>INDEX</a></b><p><p>
  1384. <b>MISCELLANEOUS PACKAGES</b> _ _ _ _ _ _ _ _ _ _ _ _ <b>introduction</b><P>
  1385. <P>
  1386. REDUCE includes a large number of packages that have been contributed by
  1387. users from various fields. Some of these, together with their relevant
  1388. commands, switches and so on (e.g., the NUMERIC package), have
  1389. been described elsewhere. This section describes those packages for which
  1390. no separate help material exists. Each has its own switches, commands,
  1391. and operators, and some redefine special characters to aid in their
  1392. notation. However, the brief descriptions given here do not include all
  1393. such information. Readers are referred to the general package
  1394. documentation in this case, which can be found, along with the source
  1395. code, under the subdirectories <em>doc</em> and <em>src</em> in the
  1396. <em>reduce</em> directory. The
  1397. <a href=r38_0100.html#r38_0127>load_package</a> command is used to
  1398. load the files you wish into your system. There will be a short delay
  1399. while the package is loaded. A package cannot be unloaded. Once it
  1400. is in your system, it stays there until you end the session. Each package
  1401. also has a test file, which you will find under its name in the
  1402. <em>$reduce/xmpl</em> directory.
  1403. <P>
  1404. <P>
  1405. Finally, it should be mentioned that such user-contributed packages are
  1406. unsupported; any questions or problems should be directed to their
  1407. authors.
  1408. <P>
  1409. <P>
  1410. <a name=r38_0633>
  1411. <title>ALGINT_package</title></a>
  1412. <p align="centre"><img src="redlogo.gif" width=621 height=60 border=0 alt="REDUC
  1413. E"></p>
  1414. <b><a href=r38_idx.html>INDEX</a></b><p><p>
  1415. <b>ALGINT</b> _ _ _ _ _ _ _ _ _ _ _ _ <b>package</b><P>
  1416. <P>
  1417. <P>
  1418. <P>
  1419. Author: James H. Davenport
  1420. <P>
  1421. <P>
  1422. The <em>algint</em> package provides indefinite integration of square roots.
  1423. This package, which is an extension of the basic integration package
  1424. distributed with REDUCE, will analytically integrate a wide range of
  1425. expressions involving square roots. The
  1426. <a href=r38_0250.html#r38_0265>algint</a> switch provides for
  1427. the use of the facilities given by the package, and is automatically turned
  1428. on when the package is loaded. If you want to return to the standard
  1429. integration algorithms, turn
  1430. <a href=r38_0250.html#r38_0265>algint</a> off. An error message is given
  1431. if you try to turn the
  1432. <a href=r38_0250.html#r38_0265>algint</a> switch on when its package is not
  1433. loaded.
  1434. <P>
  1435. <P>
  1436. <a name=r38_0634>
  1437. <title>APPLYSYM</title></a>
  1438. <p align="centre"><img src="redlogo.gif" width=621 height=60 border=0 alt="REDUC
  1439. E"></p>
  1440. <b><a href=r38_idx.html>INDEX</a></b><p><p>
  1441. <b>APPLYSYM</b> _ _ _ _ _ _ _ _ _ _ _ _ <b>package</b><P>
  1442. <P>
  1443. <P>
  1444. <P>
  1445. Author: Thomas Wolf
  1446. <P>
  1447. <P>
  1448. This package provides programs APPLYSYM, QUASILINPDE and DETRAFO for
  1449. computing with infinitesimal symmetries of differential equations.
  1450. <P>
  1451. <P>
  1452. <a name=r38_0635>
  1453. <title>ARNUM</title></a>
  1454. <p align="centre"><img src="redlogo.gif" width=621 height=60 border=0 alt="REDUC
  1455. E"></p>
  1456. <b><a href=r38_idx.html>INDEX</a></b><p><p>
  1457. <b>ARNUM</b> _ _ _ _ _ _ _ _ _ _ _ _ <b>package</b><P>
  1458. <P>
  1459. <P>
  1460. <P>
  1461. Author: Eberhard Schruefer
  1462. <P>
  1463. <P>
  1464. This package provides facilities for handling algebraic numbers as polynomial
  1465. coefficients in REDUCE calculations. It includes facilities for introducing
  1466. indeterminates to represent algebraic numbers, for calculating splitting
  1467. fields, and for factoring and finding greatest common divisors in such
  1468. domains.
  1469. <P>
  1470. <P>
  1471. <a name=r38_0636>
  1472. <title>ASSIST</title></a>
  1473. <p align="centre"><img src="redlogo.gif" width=621 height=60 border=0 alt="REDUC
  1474. E"></p>
  1475. <b><a href=r38_idx.html>INDEX</a></b><p><p>
  1476. <b>ASSIST</b> _ _ _ _ _ _ _ _ _ _ _ _ <b>package</b><P>
  1477. <P>
  1478. <P>
  1479. <P>
  1480. Author: Hubert Caprasse
  1481. <P>
  1482. <P>
  1483. ASSIST contains a large number of additional general purpose functions
  1484. that allow a user to better adapt REDUCE to various calculational
  1485. strategies and to make the programming task more straightforward and more
  1486. efficient.
  1487. <P>
  1488. <P>
  1489. <a name=r38_0637>
  1490. <title>AVECTOR</title></a>
  1491. <p align="centre"><img src="redlogo.gif" width=621 height=60 border=0 alt="REDUC
  1492. E"></p>
  1493. <b><a href=r38_idx.html>INDEX</a></b><p><p>
  1494. <b>AVECTOR</b> _ _ _ _ _ _ _ _ _ _ _ _ <b>package</b><P>
  1495. <P>
  1496. <P>
  1497. <P>
  1498. Author: David Harper
  1499. <P>
  1500. <P>
  1501. This package provides REDUCE with the ability to perform vector algebra
  1502. using the same notation as scalar algebra. The basic algebraic operations
  1503. are supported, as are differentiation and integration of vectors with
  1504. respect to scalar variables, cross product and dot product, component
  1505. manipulation and application of scalar functions (e.g. cosine) to a vector
  1506. to yield a vector result.
  1507. <P>
  1508. <P>
  1509. <a name=r38_0638>
  1510. <title>BOOLEAN</title></a>
  1511. <p align="centre"><img src="redlogo.gif" width=621 height=60 border=0 alt="REDUC
  1512. E"></p>
  1513. <b><a href=r38_idx.html>INDEX</a></b><p><p>
  1514. <b>BOOLEAN</b> _ _ _ _ _ _ _ _ _ _ _ _ <b>package</b><P>
  1515. <P>
  1516. <P>
  1517. <P>
  1518. Author: Herbert Melenk
  1519. <P>
  1520. <P>
  1521. This package supports the computation with boolean expressions in the
  1522. propositional calculus. The data objects are composed from algebraic
  1523. expressions connected by the infix boolean operators and, or,
  1524. implies, equiv, and the unary prefix operator not.
  1525. Boolean allows you to simplify expressions built from these
  1526. operators, and to test properties like equivalence, subset property etc.
  1527. <P>
  1528. <P>
  1529. <a name=r38_0639>
  1530. <title>CALI</title></a>
  1531. <p align="centre"><img src="redlogo.gif" width=621 height=60 border=0 alt="REDUC
  1532. E"></p>
  1533. <b><a href=r38_idx.html>INDEX</a></b><p><p>
  1534. <b>CALI</b> _ _ _ _ _ _ _ _ _ _ _ _ <b>package</b><P>
  1535. <P>
  1536. <P>
  1537. <P>
  1538. Author: Hans-Gert Gr&quot;abe
  1539. <P>
  1540. <P>
  1541. This package contains algorithms for computations in commutative algebra
  1542. closely related to the Groebner algorithm for ideals and modules. Its
  1543. heart is a new implementation of the Groebner algorithm that also allows
  1544. for the computation of syzygies. This implementation is also applicable to
  1545. submodules of free modules with generators represented as rows of a matrix.
  1546. <P>
  1547. <P>
  1548. <a name=r38_0640>
  1549. <title>CAMAL</title></a>
  1550. <p align="centre"><img src="redlogo.gif" width=621 height=60 border=0 alt="REDUC
  1551. E"></p>
  1552. <b><a href=r38_idx.html>INDEX</a></b><p><p>
  1553. <b>CAMAL</b> _ _ _ _ _ _ _ _ _ _ _ _ <b>package</b><P>
  1554. <P>
  1555. <P>
  1556. <P>
  1557. Author: John P. Fitch
  1558. <P>
  1559. <P>
  1560. This package implements in REDUCE the Fourier transform procedures of the
  1561. CAMAL package for celestial mechanics.
  1562. <P>
  1563. <P>
  1564. <a name=r38_0641>
  1565. <title>CHANGEVR</title></a>
  1566. <p align="centre"><img src="redlogo.gif" width=621 height=60 border=0 alt="REDUC
  1567. E"></p>
  1568. <b><a href=r38_idx.html>INDEX</a></b><p><p>
  1569. <b>CHANGEVR</b> _ _ _ _ _ _ _ _ _ _ _ _ <b>package</b><P>
  1570. <P>
  1571. Author: G. Ucoluk
  1572. <P>
  1573. <P>
  1574. This package provides facilities for changing the independent variables in
  1575. a differential equation. It is basically the application of the chain rule.
  1576. <P>
  1577. <P>
  1578. <a name=r38_0642>
  1579. <title>COMPACT</title></a>
  1580. <p align="centre"><img src="redlogo.gif" width=621 height=60 border=0 alt="REDUC
  1581. E"></p>
  1582. <b><a href=r38_idx.html>INDEX</a></b><p><p>
  1583. <b>COMPACT</b> _ _ _ _ _ _ _ _ _ _ _ _ <b>package</b><P>
  1584. <P>
  1585. <P>
  1586. <P>
  1587. Author: Anthony C. Hearn
  1588. <P>
  1589. <P>
  1590. COMPACT is a package of functions for the reduction of a polynomial in the
  1591. presence of side relations. COMPACT applies the side relations to the
  1592. polynomial so that an equivalent expression results with as few terms as
  1593. possible. For example, the evaluation of
  1594. <P>
  1595. <P>
  1596. <p><pre><tt>
  1597. compact(s*(1-sin x^2)+c*(1-cos x^2)+sin x^2+cos x^2,
  1598. {cos x^2+sin x^2=1});
  1599. </tt></pre><p>yields the result
  1600. <p><pre><tt>
  1601. 2 2
  1602. SIN(X) *C + COS(X) *S + 1
  1603. </tt></pre><p><P>
  1604. <P>
  1605. The first argument to the operator <em>compact</em> is the expression
  1606. and the second is a list of side relations that can be
  1607. equations or simple expressions (implicitly equated to zero). The
  1608. kernels in the side relations may also be free variables with the
  1609. same meaning as in rules, e.g.
  1610. <p><pre><tt>
  1611. sin_cos_identity := {cos ~w^2+sin ~w^2=1}$
  1612. compact(u,in_cos_identity);
  1613. </tt></pre><p><P>
  1614. <P>
  1615. Also the full rule syntax with the replacement operator is allowed here.
  1616. <P>
  1617. <P>
  1618. <a name=r38_0643>
  1619. <title>CRACK</title></a>
  1620. <p align="centre"><img src="redlogo.gif" width=621 height=60 border=0 alt="REDUC
  1621. E"></p>
  1622. <b><a href=r38_idx.html>INDEX</a></b><p><p>
  1623. <b>CRACK</b> _ _ _ _ _ _ _ _ _ _ _ _ <b>package</b><P>
  1624. <P>
  1625. <P>
  1626. <P>
  1627. Authors: Andreas Brand, Thomas Wolf
  1628. <P>
  1629. <P>
  1630. CRACK is a package for solving overdetermined systems of partial or
  1631. ordinary differential equations (PDEs, ODEs). Examples of programs which
  1632. make use of CRACK for investigating ODEs (finding symmetries, first
  1633. integrals, an equivalent Lagrangian or a ``differential factorization'') are
  1634. included.
  1635. <P>
  1636. <P>
  1637. <a name=r38_0644>
  1638. <title>CVIT</title></a>
  1639. <p align="centre"><img src="redlogo.gif" width=621 height=60 border=0 alt="REDUC
  1640. E"></p>
  1641. <b><a href=r38_idx.html>INDEX</a></b><p><p>
  1642. <b>CVIT</b> _ _ _ _ _ _ _ _ _ _ _ _ <b>package</b><P>
  1643. <P>
  1644. <P>
  1645. <P>
  1646. Authors: V.Ilyin, A.Kryukov, A.Rodionov, A.Taranov
  1647. <P>
  1648. <P>
  1649. This package provides an alternative method for computing traces of Dirac
  1650. gamma matrices, based on an algorithm by Cvitanovich that treats gamma
  1651. matrices as 3-j symbols.
  1652. <P>
  1653. <P>
  1654. <a name=r38_0645>
  1655. <title>DEFINT</title></a>
  1656. <p align="centre"><img src="redlogo.gif" width=621 height=60 border=0 alt="REDUC
  1657. E"></p>
  1658. <b><a href=r38_idx.html>INDEX</a></b><p><p>
  1659. <b>DEFINT</b> _ _ _ _ _ _ _ _ _ _ _ _ <b>package</b><P>
  1660. <P>
  1661. <P>
  1662. <P>
  1663. Authors: Kerry Gaskell, Stanley M. Kameny, Winfried Neun
  1664. <P>
  1665. <P>
  1666. This package finds the definite integral of an expression in a stated
  1667. interval. It uses several techniques, including an innovative approach
  1668. based on the Meijer G-function, and contour integration.
  1669. <P>
  1670. <P>
  1671. <a name=r38_0646>
  1672. <title>DESIR</title></a>
  1673. <p align="centre"><img src="redlogo.gif" width=621 height=60 border=0 alt="REDUC
  1674. E"></p>
  1675. <b><a href=r38_idx.html>INDEX</a></b><p><p>
  1676. <b>DESIR</b> _ _ _ _ _ _ _ _ _ _ _ _ <b>package</b><P>
  1677. <P>
  1678. <P>
  1679. <P>
  1680. Authors: C. Dicrescenzo, F. Richard-Jung, E. Tournier
  1681. <P>
  1682. <P>
  1683. This package enables the basis of formal solutions to be computed for an
  1684. ordinary homogeneous differential equation with polynomial coefficients
  1685. over Q of any order, in the neighborhood of zero (regular or irregular
  1686. singular point, or ordinary point).
  1687. <P>
  1688. <P>
  1689. <a name=r38_0647>
  1690. <title>DFPART</title></a>
  1691. <p align="centre"><img src="redlogo.gif" width=621 height=60 border=0 alt="REDUC
  1692. E"></p>
  1693. <b><a href=r38_idx.html>INDEX</a></b><p><p>
  1694. <b>DFPART</b> _ _ _ _ _ _ _ _ _ _ _ _ <b>package</b><P>
  1695. <P>
  1696. <P>
  1697. <P>
  1698. Author: Herbert Melenk
  1699. <P>
  1700. <P>
  1701. This package supports computations with total and partial derivatives of
  1702. formal function objects. Such computations can be useful in the context
  1703. of differential equations or power series expansions.
  1704. <P>
  1705. <P>
  1706. <a name=r38_0648>
  1707. <title>DUMMY</title></a>
  1708. <p align="centre"><img src="redlogo.gif" width=621 height=60 border=0 alt="REDUC
  1709. E"></p>
  1710. <b><a href=r38_idx.html>INDEX</a></b><p><p>
  1711. <b>DUMMY</b> _ _ _ _ _ _ _ _ _ _ _ _ <b>package</b><P>
  1712. <P>
  1713. <P>
  1714. <P>
  1715. Author: Alain Dresse
  1716. <P>
  1717. <P>
  1718. This package allows a user to find the canonical form of expressions
  1719. involving dummy variables. In that way, the simplification of
  1720. polynomial expressions can be fully done. The indeterminates are general
  1721. operator objects endowed with as few properties as possible. In that way
  1722. the package may be used in a large spectrum of applications.
  1723. <P>
  1724. <P>
  1725. <a name=r38_0649>
  1726. <title>EXCALC</title></a>
  1727. <p align="centre"><img src="redlogo.gif" width=621 height=60 border=0 alt="REDUC
  1728. E"></p>
  1729. <b><a href=r38_idx.html>INDEX</a></b><p><p>
  1730. <b>EXCALC</b> _ _ _ _ _ _ _ _ _ _ _ _ <b>package</b><P>
  1731. <P>
  1732. <P>
  1733. <P>
  1734. Author: Eberhard Schruefer
  1735. <P>
  1736. <P>
  1737. The <em>excalc</em> package is designed for easy use by all who are familiar
  1738. with the calculus of Modern Differential Geometry. The program is currently
  1739. able to handle scalar-valued exterior forms, vectors and operations between
  1740. them, as well as non-scalar valued forms (indexed forms). It is thus an ideal
  1741. tool for studying differential equations, doing calculations in general
  1742. relativity and field theories, or doing simple things such as calculating the
  1743. Laplacian of a tensor field for an arbitrary given frame.
  1744. <P>
  1745. <P>