You can subscribe to this list here.
2001 
_{Jan}

_{Feb}

_{Mar}

_{Apr}

_{May}

_{Jun}

_{Jul}

_{Aug}

_{Sep}

_{Oct}

_{Nov}
(20) 
_{Dec}
(17) 

2002 
_{Jan}
(39) 
_{Feb}
(21) 
_{Mar}
(33) 
_{Apr}
(135) 
_{May}
(53) 
_{Jun}
(88) 
_{Jul}
(47) 
_{Aug}
(59) 
_{Sep}
(207) 
_{Oct}
(40) 
_{Nov}
(7) 
_{Dec}
(26) 
2003 
_{Jan}
(49) 
_{Feb}
(39) 
_{Mar}
(117) 
_{Apr}
(50) 
_{May}
(62) 
_{Jun}
(6) 
_{Jul}
(19) 
_{Aug}
(24) 
_{Sep}
(11) 
_{Oct}
(11) 
_{Nov}
(49) 
_{Dec}
(9) 
2004 
_{Jan}
(29) 
_{Feb}
(123) 
_{Mar}
(32) 
_{Apr}
(53) 
_{May}
(52) 
_{Jun}
(19) 
_{Jul}
(33) 
_{Aug}
(10) 
_{Sep}
(76) 
_{Oct}
(86) 
_{Nov}
(171) 
_{Dec}
(163) 
2005 
_{Jan}
(147) 
_{Feb}
(121) 
_{Mar}
(120) 
_{Apr}
(126) 
_{May}
(120) 
_{Jun}
(213) 
_{Jul}
(76) 
_{Aug}
(79) 
_{Sep}
(140) 
_{Oct}
(83) 
_{Nov}
(156) 
_{Dec}
(202) 
2006 
_{Jan}
(181) 
_{Feb}
(171) 
_{Mar}
(157) 
_{Apr}
(98) 
_{May}
(96) 
_{Jun}
(97) 
_{Jul}
(193) 
_{Aug}
(76) 
_{Sep}
(130) 
_{Oct}
(63) 
_{Nov}
(196) 
_{Dec}
(253) 
2007 
_{Jan}
(256) 
_{Feb}
(293) 
_{Mar}
(276) 
_{Apr}
(258) 
_{May}
(181) 
_{Jun}
(91) 
_{Jul}
(108) 
_{Aug}
(69) 
_{Sep}
(107) 
_{Oct}
(179) 
_{Nov}
(137) 
_{Dec}
(121) 
2008 
_{Jan}
(124) 
_{Feb}
(129) 
_{Mar}
(192) 
_{Apr}
(201) 
_{May}
(90) 
_{Jun}
(86) 
_{Jul}
(115) 
_{Aug}
(142) 
_{Sep}
(49) 
_{Oct}
(91) 
_{Nov}
(95) 
_{Dec}
(218) 
2009 
_{Jan}
(230) 
_{Feb}
(149) 
_{Mar}
(118) 
_{Apr}
(72) 
_{May}
(77) 
_{Jun}
(68) 
_{Jul}
(102) 
_{Aug}
(72) 
_{Sep}
(89) 
_{Oct}
(76) 
_{Nov}
(125) 
_{Dec}
(86) 
2010 
_{Jan}
(75) 
_{Feb}
(90) 
_{Mar}
(89) 
_{Apr}
(121) 
_{May}
(111) 
_{Jun}
(66) 
_{Jul}
(75) 
_{Aug}
(66) 
_{Sep}
(66) 
_{Oct}
(166) 
_{Nov}
(121) 
_{Dec}
(73) 
2011 
_{Jan}
(74) 
_{Feb}

_{Mar}

_{Apr}
(14) 
_{May}
(22) 
_{Jun}
(31) 
_{Jul}
(53) 
_{Aug}
(37) 
_{Sep}
(23) 
_{Oct}
(25) 
_{Nov}
(31) 
_{Dec}
(28) 
2012 
_{Jan}
(18) 
_{Feb}
(11) 
_{Mar}
(32) 
_{Apr}
(17) 
_{May}
(48) 
_{Jun}
(37) 
_{Jul}
(23) 
_{Aug}
(54) 
_{Sep}
(15) 
_{Oct}
(11) 
_{Nov}
(19) 
_{Dec}
(22) 
2013 
_{Jan}
(11) 
_{Feb}
(32) 
_{Mar}
(24) 
_{Apr}
(37) 
_{May}
(31) 
_{Jun}
(14) 
_{Jul}
(26) 
_{Aug}
(33) 
_{Sep}
(40) 
_{Oct}
(21) 
_{Nov}
(36) 
_{Dec}
(84) 
2014 
_{Jan}
(23) 
_{Feb}
(20) 
_{Mar}
(27) 
_{Apr}
(24) 
_{May}
(31) 
_{Jun}
(27) 
_{Jul}
(34) 
_{Aug}
(26) 
_{Sep}
(21) 
_{Oct}
(45) 
_{Nov}
(23) 
_{Dec}
(73) 
2015 
_{Jan}
(33) 
_{Feb}
(8) 
_{Mar}
(24) 
_{Apr}
(45) 
_{May}
(27) 
_{Jun}
(19) 
_{Jul}
(21) 
_{Aug}
(51) 
_{Sep}
(43) 
_{Oct}
(29) 
_{Nov}
(61) 
_{Dec}
(86) 
2016 
_{Jan}
(99) 
_{Feb}
(52) 
_{Mar}
(80) 
_{Apr}
(61) 
_{May}
(24) 
_{Jun}
(23) 
_{Jul}
(26) 
_{Aug}

_{Sep}

_{Oct}

_{Nov}

_{Dec}

S  M  T  W  T  F  S 

1
(14) 
2
(3) 
3
(2) 
4

5
(6) 
6
(7) 
7
(3) 
8
(1) 
9

10

11
(3) 
12
(1) 
13

14

15
(8) 
16
(1) 
17
(1) 
18
(6) 
19
(6) 
20
(11) 
21
(8) 
22
(1) 
23
(9) 
24
(4) 
25
(4) 
26
(6) 
27

28
(3) 
29
(7) 
30
(1) 
31
(4) 




From: James Amundson <amundson@us...>  20050531 02:56:38

Update of /cvsroot/maxima/maxima/src In directory sc8prcvs1.sourceforge.net:/tmp/cvsserv22667 Modified Files: macdes.lisp Log Message: Bug fix: Sourceforge bug database bug: [ 1169996 ] Prompt missing after example Fixed. Index: macdes.lisp =================================================================== RCS file: /cvsroot/maxima/maxima/src/macdes.lisp,v retrieving revision 1.22 retrieving revision 1.23 diff u d r1.22 r1.23  macdes.lisp 1 Apr 2005 17:33:24 0000 1.22 +++ macdes.lisp 31 May 2005 02:56:24 0000 1.23 @@ 57,6 +57,7 @@ doit (setq tem (peekchar nil st nil)) (cond ((or (null tem) (eql tem #\&)) + (setf *needprompt* t) (returnfrom $example '$done))) (setq tem (dbmread st nil nil)) (setq $linenum (+ 1 $linenum)) @@ 74,6 +75,7 @@ notfound (format t "Not Found. You can look at:") + (setf *needprompt* t) (returnfrom $example `((mlist) ,@ (nreverse all))) )))))) 
From: Robert Dodier <robert_dodier@us...>  20050531 02:56:02

Update of /cvsroot/maxima/maxima/doc/info In directory sc8prcvs1.sourceforge.net:/tmp/cvsserv22336 Modified Files: nset.texi Log Message: Fix up refs to input/output labels; fix up hanging phrases before examples; replace some instances two spaces in text with one space. Index: nset.texi =================================================================== RCS file: /cvsroot/maxima/maxima/doc/info/nset.texi,v retrieving revision 1.7 retrieving revision 1.8 diff u d r1.7 r1.8  nset.texi 31 May 2005 02:00:28 0000 1.7 +++ nset.texi 31 May 2005 02:55:53 0000 1.8 @@ 65,7 +65,7 @@ Sets are always displayed as brace delimited lists; if you would like to be able to @i{input} a set using braces, see @ref{Defining sets with braces}. To construct a set from the elements of a list, use @code{setify} +To construct a set from the elements of a list, use @code{setify}. @c ===beg=== @c setify([b, a]); @@ 135,7 +135,7 @@ the set functions might use a different ordering function}. Some operations on sets, such as substitution, automatically force a resimplification; for example, +resimplification; for example, @c ===beg=== @c s: set (a, b, c)$ @@ 173,7 +173,7 @@ @end example To extract all set elements of a set @code{s} that satisfy a predicate @...{f}, use @code{subset(s,f)}. (In Maxima, a @i{predicate} is a +@code{f}, use @code{subset(s,f)}. (A @i{predicate} is a booleanvalued function.) For example, to find the equations in a given set that do not depend on a variable @code{z}, use @@ 191,7 +191,7 @@ @subsection Set Member Iteration There two ways to to iterate over set members. One way is the use @...{map}; for example +@code{map}; for example: @c ===beg=== @c map (f, set (a, b, c)); @@ 289,7 +289,7 @@ Until these bugs are fixed, do not construct sets with members that are lists or matrices containing expressions in CRE form; a set with a member in CRE form, however, shouldn't be a problem +member in CRE form, however, shouldn't be a problem: @c ===beg=== @c set (x, rat (x)); @@ 342,7 +342,7 @@ located in the directory @code{maxima/share/contrib/nset}. Maxima's sign function has a bug that may cause the Kronecker delta function to misbehave; for example +delta function to misbehave; for example: @c ===beg=== @c kron_delta (1/sqrt(2), sqrt(2)/2); @@ 399,7 +399,7 @@ @end example To always allow this form of set input, place the two commands in lines (c1) and (c2) in your @code{maximainit.mac} file. +(%i1) and (%i2) in your @code{maximainit.mac} file. @subsection Combinatorial and Miscellaneous Functions @@ 444,7 +444,7 @@ @deffn {Function} belln (@var{n}) For nonnegative integers @var{n}, return the nth Bell number. If @code{s} is a set with @code{n} members, @code{belln(n)} is the number of partitions of @code{s}. For example +of partitions of @code{s}. For example: @c ===beg=== @c makelist (belln (i), i, 0, 6); @@ 461,7 +461,7 @@ @end example When @var{n} isn't a nonnegative integer, @code{belln(n)} doesn't simplify +simplify. @c ===beg=== @c [belln (x), belln (sqrt(3)), belln (9)]; @@ 494,7 +494,7 @@ (%o3) 3 @end example In line (c3), we see that cardinality works correctly even when simplification +In line (%o3), we see that cardinality works correctly even when simplification has been turned off. @end deffn @@ 543,9 +543,9 @@ @deffn {Function} divisors (@var{n}) When @var{n} is a nonzero integer, return the set of its divisors. The set of divisors includes the members 1 and @var{n}. The divisors of a negative integer are the divisors of its absolute value. +The divisors of a negative integer are the divisors of its absolute value. We can show that 28 is a perfect number using +We can verify that 28 is a perfect number. @c ===beg=== @c s: divisors(28); @@ 559,7 +559,7 @@ @end example The function divisors works by simplification; you shouldn't need to manually reevaluate after a substitution. For example +manually reevaluate after a substitution. For example: @c ===beg=== @c divisors (a); @@ 572,6 +572,7 @@ (%o2) @{1, 2, 4, 8@} @end example +@c WHAT DOES "THREADING" MEAN IN THIS CONTEXT ?? The function divisors threads over equalities, lists, matrices, and sets. Here is an example of threading over a list and an equality. @@ 626,7 +627,7 @@ Actually, @code{equiv_classes (@var{s}, @var{f})} automatically applies the Maxima function @code{is} after applying the function @var{f}; accordingly, we can rework the previous example with the command +we can restate the previous example more briefly. @c ===beg=== @c equiv_classes (set (a, b, c), "="); @@ 636,7 +637,7 @@ (%o1) @{@{a@}, @{b@}, @{c@}@} @end example Here is another example +Here is another example. @c ===beg=== @c equiv_classes (set (1, 2, 3, 4, 5, 6, 7), lambda ([x, y], remainder (x  y, 3) = 0)); @@ 654,7 +655,7 @@ The first argument @var{f} should be a predicate (a function that evaluates to true, false, or unknown). Given one set as the second argument, +Given one set as the second argument, @code{every (@var{f}, @var{a})} returns @code{true} if @code{@var{f}(@var{a_i})} returns @code{true} for all @var{a_i} in @var{a}. Since sets are unordered, @code{every} is free to evaluate @code{@var{f}(@var{a_i})} in any @@ 669,10 +670,10 @@ @code{every} may or may not evaluate @var{f} for every combination @var{x_1}, ..., @var{x_n}. @c FOLLOWING STATEMENT IS AMBIGUOUS: IS f(L_1[1], L_2[2]) EVALUATED BEFORE OR AFTER f(L_1[2], L_2[2]) ?? Since lists are ordered, @code{every} evaluates in the order of increasing index. +Since lists are ordered, @code{every} evaluates in the order of increasing index. To use @code{every} on multiple set arguments, they should first be converted to an ordered sequence so that their relative alignment becomes welldefined. +to an ordered sequence so that their relative alignment becomes welldefined. If the global flag @code{maperror} is @code{true} (the default), all lists @var{L_1}, ..., @var{L_n} must have equal lengths  otherwise, @code{every} signals an error. @@ 680,7 +681,7 @@ effectively truncated each to the length of the shortest list. The Maxima function @code{is} automatically applied after evaluating the predicate @var{f}; thus the following work correctly +predicate @var{f}. @c ===beg=== @c every ("=", [a, b], [a, b]); @@ 716,9 +717,9 @@ @anchor{flatten} @deffn {Function} flatten (@var{e}) Flatten essentially evaluates an expression as if its main operator had +Flatten essentially evaluates an expression as if its main operator had been declared nary; there is, however, one difference  flatten doesn't recurse into other function arguments. Consider +recurse into other function arguments. For example: @c ===beg=== @c expr: flatten (f (g (f (f (x))))); @@ 735,7 +736,7 @@ @end example Applied to a set, flatten gathers all members of set elements that are sets; for example +are sets; for example: @c ===beg=== @c flatten (set (a, set (b), set (set (c)))); @@ 791,7 +792,7 @@ (%o2) @{a, f([b])@} @end example In line (C2), the argument of @code{f} isn't converted to a set +In line (%o2), the argument of @code{f} isn't converted to a set because the main operator of @code{f([b])} isn't a list. To convert just the toplevel operator of a list to a set, see @@ 823,7 +824,7 @@ terms to make each partition have exactly @var{len} terms. In either case, each partition is a list sorted from greatest to least. We say a list @math{[a_1, ..., a_m]} is a partition of a nonnegative integer +We say a list @math{[a_1, ..., a_m]} is a partition of a nonnegative integer @math{n} provided (1) each @math{a_i} is a nonzero integer and (2) @math{a_1 + ... + a_m = n.} Thus 0 has no partitions. @@ 850,7 +851,7 @@ @end example To find all partitions that satisfy a condition, use the function @code{subset}; here is an example that finds all partitions of 10 that consist of prime numbers +here is an example that finds all partitions of 10 that consist of prime numbers. @c ===beg=== @c s: integer_partitions (10)$ @@ 872,7 +873,7 @@ @c intersect IS AN ALIAS FOR intersection  JUST REFER TO THE LATTER HERE @anchor{intersect} @deffn {Function} intersect (@var{a_1}, ..., @var{a_n}) Return a set containing the elements that are common to the +Return a set containing the elements that are common to the sets @var{a_1} through @var{a_n}. The function @code{intersect} must receive one or more arguments. Signal an error if any of @var{a_1} through @var{a_n} isn't a set. See also @ref{intersection}. @@ 880,7 +881,7 @@ @anchor{intersection} @deffn {Function} intersection (@var{a_1}, ..., @var{a_n}) Return a set containing the elements that are common to the +Return a set containing the elements that are common to the sets @var{a_1} through @var{a_n}. The function @code{intersection} must receive one or more arguments. Signal an error if any of @var{a_1} through @var{a_n} isn't a set. See also @ref{intersect}. @@ 897,7 +898,7 @@ symmetric; thus, for example, @code{kron_delta(x, y)  kron_delta(y, x)} simplifies to zero. Here are a few examples, +Here are a few examples. @c ===beg=== @c [kron_delta (a, a), kron_delta (a + 1, a)]; @@ 949,7 +950,7 @@ 10 @end example If you want (D7) to evaluate to 1, apply @code{float} +If you want @code{kron_delta (1/10, 0.1)} to evaluate to 1, apply @code{float}. @c ===beg=== @c float (kron_delta (1/10, 0.1)); @@ 964,7 +965,7 @@ @deffn {Function} listify (@var{a}) If @var{a} is a set, return a list containing the members of @var{a}; when @var{a} isn't a set, return @var{a}. To convert a set and all of its members to lists, see @ref{full_listify} +of its members to lists, see @ref{full_listify}. @c NEED TO PUT SOMETHING HERE @c ===beg=== @@ 994,7 +995,7 @@ Notice that the function @var{f} is first applied to the @code{leftmost} list elements (thus the name lreduce). When @var{init} is defined, the second argument to the inner most function evaluation is @var{init}; for example +evaluation is @var{init}; for example: @c ===beg=== @c lreduce (f, [1, 2, 3], 4); @@ 1005,7 +1006,7 @@ @end example The function @code{lreduce} makes it easy to find the product or sum of the elements of a list +sum of the elements of a list. @c ===beg=== @c lreduce ("+", args (set (a, b))); @@ 1068,7 +1069,7 @@ evaluates to @code{(@var{a_1} + ... + @var{a_n})!/(@var{a_1}! ... @var{a_n}!)}. Given no arguments, @code{multinomial()} evaluates to 1. A user may use @code{minfactorial} to simplify the value returned by @code{multinomial_coeff}; for example +for example: @c ===beg=== @c multinomial_coeff (1, 2, x); @@ 1212,7 +1213,7 @@ Notice that the function @var{f} is first applied to the rightmost list elements (thus the name rreduce). When @var{init} is defined, the second argument to the inner most function evaluation is @var{init}; for example +evaluation is @var{init}; for example: @c ===beg=== @c rreduce (f, [1, 2, 3], 4); @@ 1223,7 +1224,7 @@ @end example The function @code{rreduce} makes it easy to find the product or sum of the elements of a list +sum of the elements of a list. @c ===beg=== @c rreduce ("+", args (set (a, b))); @@ 1282,6 +1283,7 @@ subsets. When @var{n} isn't defined, return the set of all partitions. We say a set @math{P} is a partition of a set @math{S} provided + @enumerate @item each member of @math{P} is a nonempty set, @@ 1290,6 +1292,7 @@ @item the union of the members of @math{P} equals @math{S}. @end enumerate + The empty set is a partition of itself (the conditions 1 and 2 being vacuously true); thus @@ 1301,8 +1304,6 @@ (%o1) @{@{@}@} @end example A few additional examples  The cardinality of the set of partitions of a set can be found using @code{stirling2}; thus @c ===beg=== @@ 1317,7 +1318,7 @@ (%i4) cardinality(p) = stirling2 (6, 3); @end example Each member of @code{p} should have 3 members; let's check +Each member of @code{p} should have 3 members; let's check. @c ===beg=== @c s: set (0, 1, 2, 3, 4, 5)$ @@ 1332,7 +1333,7 @@ @end example Finally, for each member of @code{p}, the union of its members should equal @code{s}; again let's check +equal @code{s}; again let's check. @c ===beg=== @c s: set (0, 1, 2, 3, 4, 5)$ @@ 1354,15 +1355,15 @@ The first argument @var{f} should be a predicate (a function that evaluates to true, false, or unknown). Given one set as the second argument, +Given one set as the second argument, @code{some (@var{f}, @var{a})} returns @code{true} if @code{@var{f}(@var{a_i})} returns @code{true} for at least one @var{a_i} in @var{a}. Since sets are unordered, @code{some} is free to evaluate @code{@var{f}(@var{a_i})} in any order. @code{some} may or may not evaluate @var{f} for all @var{a_i} in @var{a}. Because the order of evaluation isn't specified, the predicate @var{f} should +order of evaluation isn't specified, the predicate @var{f} should not have sideeffects or signal errors for any input. To use @code{some} on multiple set arguments, they should first be converted to an ordered sequence so that their relative alignment becomes welldefined. +to an ordered sequence so that their relative alignment becomes welldefined. Given one or more lists as arguments, @code{some (@var{f}, @var{L_1}, ..., @var{L_n})} returns @code{true} @@ 1379,7 +1380,7 @@ effectively truncated each to the length of the shortest list. The Maxima function @code{is} is automatically applied after evaluating the predicate @var{f}; thus the following work correctly +predicate @var{f}. @c ===beg=== @c some ("<", [a, b, 5], [1, 2, 8]); @@ 1407,7 +1408,7 @@ basic special values (see Donald Knuth, @i{The Art of Computer Programming,} third edition, Volume 1, Section 1.2.6, Equations 48, 49, and 50). For Maxima to apply these rules, the arguments must be declared to be integer and the first argument must nonnegative. Here's an example +be integer and the first argument must nonnegative. For example: @c ===beg=== @c declare (n, integer)$ @@ 1421,7 +1422,7 @@ (%o3) 1 @end example With a noninteger argument, this simplification isn't made +@code{stirling1} does not simplify for noninteger arguments. @c ===beg=== @c stirling1 (sqrt(2), sqrt(2)); @@ 1431,7 +1432,7 @@ (%o1) stirling1(sqrt(2), sqrt(2)) @end example Maxima knows a few other special values; for example +Maxima knows a few other special values; for example: @c ===beg=== @c declare (n, integer)$ @@ 1464,7 +1465,7 @@ basic special values (see Donald Knuth, @i{The Art of Computer Programming,} third edition, Volume 1, Section 1.2.6, Equations 48, 49, and 50). For Maxima to apply these rules, the arguments must be declared to be integer and the first argument must nonnegative. Here's an example +be integer and the first argument must nonnegative. For example: @c ===beg=== @c declare (n, integer)$ @@ 1478,7 +1479,7 @@ (%o3) 1 @end example With a noninteger argument, this simplification isn't made +@code{stirling2} does not simplify for noninteger arguments. @c ===beg=== @c stirling2 (%pi, %pi); @@ 1488,7 +1489,8 @@ (%o1) stirling2(%pi, %pi) @end example Maxima knows a few other special values; for example +@c ENUMERATE OR OTHERWISE DESCRIBE LIST OF KNOWN SPECIAL VALUES +Maxima knows a few other special values. @c ===beg=== @c declare (n, integer)$ @@ 1512,7 +1514,7 @@ @anchor{subset} @deffn {Function} subset (@var{a}, @var{f}) Return the subset of the set @var{a} that satisfies the predicate @var{f}. For example +For example: @c ===beg=== @c subset (set (1, 2, x, x + y, z, x + y + z), atom); @@ 1525,7 +1527,7 @@ (%o2) @{2, 8, 14@} @end example The second argument to @code{subset} must be a Maxima predicate +The second argument to @code{subset} must be a predicate (a booleanvalued function of one argument) if the first argument to @code{subset} isn't a set, signal an error. See also @ref{partition_set}. @@ 1552,7 +1554,7 @@ The function @code{tree_reduce} extends a associative binary operator @math{f : S x S > S} from two arguments to any number of arguments using a minimum depth tree. An example should make this clear +depth tree. An example should make this clear. @c ===beg=== @c tree_reduce (f, [a, b, c, d]); @@ 1563,7 +1565,7 @@ @end example Given an odd number of arguments, @code{tree_reduce} favors the left side of the tree; for example +side of the tree; for example: @c ===beg=== @c tree_reduce (f, [a, b, c, d, e]); 
From: Robert Dodier <robert_dodier@us...>  20050531 02:00:38

Update of /cvsroot/maxima/maxima/doc/info In directory sc8prcvs1.sourceforge.net:/tmp/cvsserv26385 Modified Files: nset.texi Log Message:  Changed references to nset to "set functions" or "Maxima set functions" or "Maxima".  Cut out description of the nset test script; it was incorporated into run_testsuite some time ago.  Changed instances of @emph{n} to @var{n} (in every case, a function argument). Index: nset.texi =================================================================== RCS file: /cvsroot/maxima/maxima/doc/info/nset.texi,v retrieving revision 1.6 retrieving revision 1.7 diff u d r1.6 r1.7  nset.texi 31 May 2005 00:56:02 0000 1.6 +++ nset.texi 31 May 2005 02:00:28 0000 1.7 @@ 6,13 +6,13 @@ @node Introduction to Sets, Definitions for Sets, Sets, Sets @section Introduction to Sets The @emph{nset} package provides set functions, such as intersection and +Maxima provides set functions, such as intersection and union, for finite sets that are defined by explicit enumeration. @...{nset} treats +Maxima treats lists and sets as distinct objects. This feature makes it possible to work with sets that have members that are either lists or sets. In addition to functions for finite sets, @emph{nset} provides some +In addition to functions for finite sets, Maxima provides some functions related to combinatorics; these include the Stirling numbers, the Bell numbers, and several others. @@ 38,25 +38,10 @@ @c fixes this problem. Additionally, @emph{nsetinit.lisp} contains @c autoload statements for all userlevel functions in @emph{nset}. @... NEED TO MOVE testnset.mac TO tests/  @... Once @emph{nset} is installed, run its testing code. Do this from a Maxima @... prompt using the command @... @example @... (C1) batch("testnset.mac",'test); @... @end example @... You may need to use the full pathname for the file. The test should @... end with the statement @... @example @... ..Which was correct @... Congratulations: No differences! @... @end example @... Please report any errors to the Maxima list.  @subsection Usage To construct a set with members @code{a_1, ..., a_n}, use the command @code{set(a_1, ,..., a_n)}; to construct the empty +command @code{set(a_1, ..., a_n)}; to construct the empty set, use @code{set()}. If a member is listed more than once, the simplification process eliminates the redundant member. @@ 145,11 +130,9 @@ @end example A set is simplified when its members are nonredundant and sorted. The current version of @emph{nset} uses the Maxima function @...{orderlessp} to order sets; however, @emph{future versions of @...{nset} might use a different ordering function. Robust application code that uses nset must not depend on a particular ordering.} +sorted. The current version of the set functions uses the Maxima function +@code{orderlessp} to order sets; however, @i{future versions of +the set functions might use a different ordering function}. Some operations on sets, such as substitution, automatically force a resimplification; for example, @@ 171,7 +154,7 @@ @end example @c NAME HERE ANY FUNCTIONS WHICH AUTOMATICALLY COERCE SETS TO LISTS OR VV The @emph{nset} package treats lists and sets as distinct objects; +Maxima treats lists and sets as distinct objects; functions such as @code{union} and @code{intersection} will signal an error if any argument is a list. If you need to apply a set function to a list, use the @code{setify} function to convert it @@ 203,7 +186,7 @@ @end example The section @ref{Definitions for Sets} has a complete list of the functions in @emph{nset}. +the set functions in Maxima. @subsection Set Member Iteration @@ 238,19 +221,20 @@ correctly on sets. Applied to a set, @code{first} returns the first displayed element of a set; which element that is may be implementationdependent. If @code{s} is a set, then @...{rest(s)} is equivalent to @code{disjoin(first(s),s)}. +@code{rest(s)} is equivalent to @code{disjoin (first(s), s)}. Currently, there are other Maxima functions that work correctly on sets; however, for future versions of @emph{nset}, they may function differently or not at all. +on sets. +In future versions of the set functions, +@code{first} and @code{rest} may function differently or not at all. @subsection Bugs @c AT THIS POINT (2005/05) I DON'T KNOW IF IT'S NECESSARY TO GO INTO DETAILS @c ABOUT BUGS IN MAXIMA REVISIONS 5.9.0 AND EARLIER The @emph{nset} package uses the Maxima function @code{orderlessp} to +The set functions use the Maxima function @code{orderlessp} to order set members and the (Lisplevel) function @code{like} to test for set member equality. Both of these functions have known bugs (versions 5.9.0 and earlier) that may manifest if you attempt to use +5.9.2 and earlier) that may manifest if you attempt to use sets with members that are lists or matrices that contain expressions in CRE form. An example is @@ 285,7 +269,7 @@ @end example These bugs are caused by bugs in @code{orderlessp} and @code{like}; they are not caused by bugs in @emph{nset}. To illustrate, try the commands +are not caused by bugs in the set functions. To illustrate, try the commands @c ===beg=== @c orderlessp ([rat(a)], [rat(b)]); @@ 316,7 +300,7 @@ @end example Maxima's @code{orderlessp} has another bug that can cause problems with @emph{nset } functions; the ordering predicate @code{orderlessp} is +with set functions, namely that the ordering predicate @code{orderlessp} is not transitive. The simplest known example that shows this is @c ===beg=== @@ 339,22 +323,23 @@ (%o6) false @end example This bug can cause trouble will all @emph{nset} functions as well as with +This bug can cause trouble will all set functions as well as with Maxima functions in general. It's likely, but not certain, that if all set members are either in CRE form or have been simplified using @code{ratsimp}, this bug will not manifest. +@c WHAT EXACTLY IS THE EFFECT OF ordergreat AND orderless ON THE SET FUNCTIONS ?? Maxima's @code{orderless} and @code{ordergreat} mechanisms are incompatible with @math{nset}. If you need to use either @code{orderless} or @code{ordergreat}, issue these commands before loading @emph{nset} +incompatible with the set functions. If you need to use either @code{orderless} +or @code{ordergreat}, issue these commands before constructing any sets and do not use the @code{unorder} command. You may encounter two other minor bugs while using @emph{nset}. +You may encounter two other minor bugs. Maxima versions 5.5 and earlier had a bug in the @code{tex} function that makes the empty set incorrectly translate to TeX; this bug is fixed in the Maxima 5.9.0. Additionally, the @code{setup_autoload} function in Maxima 5.9.0 is broken; a fix is in the @emph{nsetinit.lisp} file located in the @emph{nset} distribution. +Maxima 5.9.0 is broken; a fix is in the @code{nsetinit.lisp} file +located in the directory @code{maxima/share/contrib/nset}. Maxima's sign function has a bug that may cause the Kronecker delta function to misbehave; for example @@ 377,8 +362,8 @@ (%o1) pos @end example If you find something that you think might be a @emph{nset} bug, please report it to the Maxima bug database. +If you find something that you think might be a set function bug, please +report it to the Maxima bug database. See @code{bug_report}. @anchor{Defining sets with braces} @subsection Defining sets with braces @@ 418,17 +403,17 @@ @subsection Combinatorial and Miscellaneous Functions In addition to functions for finite sets, @emph{nset} provides some +In addition to functions for finite sets, Maxima provides some functions related to combinatorics; these include the Stirling numbers of the first and second kind, the Bell numbers, multinomial coefficients, partitions of nonnegative integers, and a few others. The @emph{nset} package also defines a Kronecker delta function. +Maxima also defines a Kronecker delta function. @subsection Authors Stavros Macrakis of Cambridge, Massachusetts and Barton Willis of the University of Nebraska at Kearney (UNK) wrote the nset package and its +University of Nebraska at Kearney (UNK) wrote the Maxima set functions and their documentation. @node Definitions for Sets, , Introduction to Sets, Sets @@ 556,7 +541,7 @@ @anchor{divisors} @deffn {Function} divisors (@var{n}) When @emph{n} is a nonzero integer, return the set of its divisors. +When @var{n} is a nonzero integer, return the set of its divisors. The set of divisors includes the members 1 and @var{n}. The divisors of a negative integer are the divisors of its absolute value. @@ 1113,12 +1098,12 @@ @deffn {Function} num_distinct_partitions (@var{n}) @deffnx {Function} num_distinct_partitions (@var{n}, @var{a}) When @emph{n} is a nonnegative integer, return the number of distinct integer partitions of @emph{n}. +When @var{n} is a nonnegative integer, return the number of +distinct integer partitions of @var{n}. If the optional parameter @var{a} has the value @code{list}, return a list of the number of distinct partitions of 1,2,3, ... , n. If @emph{n} isn't a nonnegative integer, return a noun form. +If @var{n} isn't a nonnegative integer, return a noun form. Definition: If @math{@var{n} = k_1 + ... + k_m}, where @math{k_1} through @math{k_m} are distinct positive integers, we call @@ 1128,9 +1113,9 @@ @anchor{num_partitions} @deffn {Function} num_partitions (@var{n}) @deffnx {Function} num_partitions (@var{n}, @var{a}) When @emph{n} is a nonnegative integer, return the number of partitions of @emph{n}. If the optional parameter @var{a} has the value @code{list}, return a list of the number of partitions of 1,2,3, ... , n. If @emph{n} +When @var{n} is a nonnegative integer, return the number of partitions +of @var{n}. If the optional parameter @var{a} has the value @code{list}, +return a list of the number of partitions of 1,2,3, ... , n. If @var{n} isn't a nonnegative integer, return a noun form. @c ===beg=== @@ 1178,7 +1163,7 @@ @deffn {Function} permutations (@var{a}) Return a set of all @i{distinct} permutations of the members of the list or set @var{a}. (Each permutation is a list, not a set.) When @var{a} is a list, duplicate members of @var{a} are @emph{not} deleted +When @var{a} is a list, duplicate members of @var{a} are @i{not} deleted before finding the permutations. Thus @c ===beg=== @@ 1202,7 +1187,7 @@ of all subsets of the set @var{a}. @code{powerset(@var{a})} has @code{2^cardinality(@var{a})} members. Given a second argument, @code{powerset(@var{a},@var{n})} returns the set of all subsets of @var{a} that have cardinality @emph{n}. Signal an error if @var{a} isn't a set; +cardinality @var{n}. Signal an error if @var{a} isn't a set; additionally signal an error if @var{n} isn't a positive integer. @end deffn @@ 1293,7 +1278,7 @@ @deffn {Function} set_partitions (@var{a}) @deffnx {Function} set_partitions (@var{a}, @var{n}) When the optional argument @var{n} is defined, return a set of all decompositions of @var{a} into @var{n} @emph{nonempty} disjoint +decompositions of @var{a} into @var{n} @var{nonempty} disjoint subsets. When @var{n} isn't defined, return the set of all partitions. We say a set @math{P} is a partition of a set @math{S} provided 
From: Robert Dodier <robert_dodier@us...>  20050531 00:56:17

Update of /cvsroot/maxima/maxima/doc/info In directory sc8prcvs1.sourceforge.net:/tmp/cvsserv29008 Modified Files: nset.texi Log Message:  Change @defun to @deffn {Function} throughout.  If there are two ways to call a function, split into two @deffn/@deffnx items.  Regularize quotation of names: literal names (such as function names and names of variables in examples) are enclosed in @code, names of function arguments are enclosed in @var. Variables which are introduced for the purpose of discussion are in @math as before.  Minor clarifications. Index: nset.texi =================================================================== RCS file: /cvsroot/maxima/maxima/doc/info/nset.texi,v retrieving revision 1.5 retrieving revision 1.6 diff u d r1.5 r1.6  nset.texi 29 May 2005 20:21:45 0000 1.5 +++ nset.texi 31 May 2005 00:56:02 0000 1.6 @@ 53,11 +53,11 @@ @c @end example @c Please report any errors to the Maxima list. @... Usage +@subsection Usage To construct a set with members @emph{a1,a2,...,an}, use the command @emph{set(a1,a2,...,an)}; to construct the empty set, use @emph{set()}. If a member is listed more than +To construct a set with members @code{a_1, ..., a_n}, use the +command @code{set(a_1, ,..., a_n)}; to construct the empty [...1320 lines suppressed...] +in particular when @var{f} is an associative function and Maxima +has a builtin evaluator for it, @code{xreduce} may use the nary +function; these nary functions include +addition @code{+}, multiplication @code{*}, @code{and}, @code{or}, @code{max}, +@code{min}, and @code{append}. For these operators, we generally expect +using @code{xreduce} to be faster than using either @code{rreduce} or +@code{lreduce}. When @var{f} isn't nary, @code{xreduce} uses leftassociativity. Floating point addition is not associative; nevertheless, @math{xreduce} uses Maxima's nary addition when the set or list @math{s} contains +Floating point addition is not associative; nevertheless, @code{xreduce} +uses Maxima's nary addition when the set or list @var{s} contains floating point numbers. @... defun +@end deffn 