On Sun, Nov 09, 2025 at 02:40:56PM +0100, 'Ralf Hemmecke' via FriCAS - computer algebra system wrote: > Patch is attached.
Thanks. Please commit. > Ralf > > On 10/24/25 14:02, Ralf Hemmecke wrote: > > Ooops. > > > > %%% (309) -> stirling1(0,0)$IntegerCombinatoricFunctions(Integer) > > > > (309) 0 > > Type: Integer > > That should be 1, right? > > > > stirling1(n, m) == > > -- Definition: (-1)^(n-m) S[n, m] is the number of > > -- permutations of n symbols which have m cycles. > > n < 0 or m < 1 or m > n => 0 > > m = n => 1 > > S.Sn = n => coefficient(S.Sp, convert(m)@Z :: N) > > x := monomial(1, 1)$SUP(I) > > S.Sn := n > > S.Sp := x > > for k in 1 .. convert(n-1)@Z repeat S.Sp := S.Sp * (x - k::SUP(I)) > > coefficient(S.Sp, convert(m)@Z :: N) > > > > It seems that the condition "m < 1" in the first line should only be > > applied if n>0, i.e. it should be: > > > > n < 0 or (n > 0 and m < 1) or m > n => 0 > > > > Probably the same problem in stirling2. > > > > Ralf > > > > > > -- > You received this message because you are subscribed to the Google Groups > "FriCAS - computer algebra system" group. > To unsubscribe from this group and stop receiving emails from it, send an > email to [email protected]. > To view this discussion visit > https://groups.google.com/d/msgid/fricas-devel/b4b4d1b7-6dd7-4a8b-a25f-5411d618d4ec%40hemmecke.org. > From 98709d5d73ddf373c22bae13aca9685b09aad52e Mon Sep 17 00:00:00 2001 > From: Ralf Hemmecke <[email protected]> > Date: Sun, 9 Nov 2025 14:37:11 +0100 > Subject: correct stirling1(0,0)=stirling2(0,0)=1 > > --- > src/algebra/combinat.spad | 2 ++ > 1 file changed, 2 insertions(+) > > diff --git a/src/algebra/combinat.spad b/src/algebra/combinat.spad > index 18ac0dee..17452892 100644 > --- a/src/algebra/combinat.spad > +++ b/src/algebra/combinat.spad > @@ -157,6 +157,7 @@ IntegerCombinatoricFunctions(I : IntegerNumberSystem) : > with > stirling1(n, m) == > -- Definition: (-1)^(n-m) S[n, m] is the number of > -- permutations of n symbols which have m cycles. > + zero? n and zero? m => 1 > n < 0 or m < 1 or m > n => 0 > m = n => 1 > S.Sn = n => coefficient(S.Sp, convert(m)@Z :: N) > @@ -169,6 +170,7 @@ IntegerCombinatoricFunctions(I : IntegerNumberSystem) : > with > stirling2(n, m) == > -- definition: SS[n, m] is the number of ways of partitioning > -- a set of n elements into m non-empty subsets > + zero? n and zero? m => 1 > n < 0 or m < 1 or m > n => 0 > m = 1 or n = m => 1 > s : I := if odd? m then -1 else 1 > -- > 2.43.0 > -- Waldek Hebisch -- You received this message because you are subscribed to the Google Groups "FriCAS - computer algebra system" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. To view this discussion visit https://groups.google.com/d/msgid/fricas-devel/aRH9OgY-9xJY1OuR%40fricas.org.
