axiom-mail
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

## Re: [Axiom-mail] sum()

 From: David MENTRE Subject: Re: [Axiom-mail] sum() Date: Tue, 22 Jun 2004 18:34:33 +0200 User-agent: Gnus/5.1006 (Gnus v5.10.6) Emacs/21.3 (gnu/linux)

```Hello Daniel,

"Daniel Yokomiso" <address@hidden> writes:

>> You tried:
>>
>>  >    f: Integer -> Integer;
>>  >    f(0)==1; f(1)==2;
>>  >    f(n)==sum(f(i)*f(n-i), i=0..(n-1))
>>
>> Try
>>
>> f: Integer -> Integer;
>> f(0)==1; f(1)==2;
>> f(n)==reduce(+,[f(i)*f(n-i) for i in 1..(n-1)])
>>
>> I have no good explanation why sum won't work.
>
> "sum" doesn't work because your definition is different. The original
> has "i" ranging from 0 to (n - 1), while yours ranges from 1 to (n -
> 1). Using "i" from 0 makes the definition incorrect.

I don't agree with you. The range of i was one bug (when i=0,
f(n)=...*f(n-0)...=...*f(n)... -> stack overflow).

But there is another type bug.

-> f: Integer -> Integer; f(0)==1; f(1)==2; f(n)==sum(f(i)*f(n-i), i=1..(n-1))

-> f(3)
Compiling function f with type Integer -> Integer
Conversion failed in the compiled user function f .

Cannot convert from type Variable i to Integer for value
i

sum expects (rationalFunction, symbolOrSegmentBinding), from Axiom book
p. 683 in its paper form (Operations appendix).

f as defined by Marcus is not a rationalFunction and thus cannot be
defined using sum.

reduce is a program loop and not the mathematical Sum operator, that's
why it works.

Yours,
david
--
David MENTRE <address@hidden> -- http://www.nongnu.org/axiom/

```

reply via email to

 [Prev in Thread] Current Thread [Next in Thread]