Posts: 764

Threads: 118

Joined: Aug 2007

How is the Sigma function used?
I am trying to find the sum:

10

Sigma .5^x * .2 (= .399805)

x=0

If understand the manual correctly, I am supposed to enter the counter in the x stack as ccc.fffiii:

So I would enter 0.01001? (final = 10, increment = 0, c = 0)

I am not getting the answer I expected. Please help.

Here is what I have:

LBL FF

.

5

x<>y

y^x

.2

x

RTN

.01001 g [3] f [ENTER] FF ?? (I'm not getting what I am expecting, I get .2000)

Thanks in advance.

Posts: 3,229

Threads: 42

Joined: Jul 2006

The source for sum is in the subversion repository.

The big problem I think you're encountering is that the loop is a DSE loop not an ISG one. So, try entering 10 SUM'FF

The finish value defaults to 0 and the increment/decrement defaults to 1.

- Pauli

Posts: 3,229

Threads: 42

Joined: Jul 2006

Small correction.

You need to start the sum from 11 and subtract 1 at the start of the function. The sum stops before the zero term is evaluated.

Thus,

LBL A

DEC x

.

5

x<>y

y^x

5

/

RTN

Then 11 g Sigma A gives 0.3998046875

- Pauli

Posts: 653

Threads: 26

Joined: Aug 2010

Quote:

The big problem I think you're encountering is that the loop is a DSE loop not an ISG one. So, try entering 10 SUM'FF

Not just him. ;-) That's one of the things that made me read the manual twice before I finally realized that the sum and product loops are working backwards.

Pauli, I think this is a quite unintuitive feature. I'm a big fan of POLA user interfaces (policy of least astonishment - things should work the way the average user expects). That's why I think the sum and product functions should count upwards. Simply think of the way you write down a sum: it's from 1 to n, not from n down to 1. And this way there is also no problem with an index starting at zero. ;-)

Dieter

Posts: 3,229

Threads: 42

Joined: Jul 2006

Originally I had both product and sum counting up then the documentation had them counting down so I switched.

There are arguments both ways on this:

- Counting up limits you to a final value to 999, counting down doesn't.

- Counting up lets you get a zero index easily, counting down doesn't.

- Counting up requires more keystrokes (e.g. sum 1 to 5 requires 1.005 SUM as opposed to 5 SUM).

- For summations whose terms diminish as the index increases (i.e. many), counting down is generally more accurate.

The change to make the count go the other way is trivial -- the DSE becomes an ISG in the main loop. I guess we could implement alternate commands to count the other way or switch to counting up again. I'm indecisive on this one, like I said advantages both ways.

- Pauli

*Edited: 25 Apr 2011, 9:41 p.m. *

Posts: 67

Threads: 5

Joined: Apr 2011

how about a flag to decide (switch) if counting up or down is used?

(but I bet you are tight on flag usage though)

Anyway, very nice work done, I'm looking forward to buy a 30b and starting to flash the business out of it ;-)

Thanks a lot for more fun!

Posts: 3,229

Threads: 42

Joined: Jul 2006

We wouldn't use a flag for this, we'd define two commands for each.

- Pauli

Posts: 2,247

Threads: 200

Joined: Jun 2005

How about using the sign of the summation range as a way to tell if you are summing up or down. Let's say a negative value means you are counting down, and vice versa?

Namir