Sujet : Re: Average of a [stack]
De : dxforth (at) *nospam* gmail.com (dxf)
Groupes : comp.lang.forthDate : 12. Jul 2024, 04:53:00
Autres entêtes
Organisation : Ausics - https://newsgroups.ausics.net
Message-ID : <6690a89a$1@news.ausics.net>
References : 1 2 3 4 5
User-Agent : Mozilla Thunderbird
On 12/07/2024 2:35 am, Buzz McCool wrote:
On 7/10/2024 8:31 PM, dxf wrote:
Simpler to count down. I find it easier writing for a common-stack model.
>
: FloatStackAvg ( rn ... r -- avg )
fdepth dup >r ( count)
begin 1- dup while ( not done)
>r f+ ( add two floats) r>
repeat drop
r> s>f f/ ( sum/count)
;
>
Thanks for sharing.
What is the purpose of putting something on and then off the return stack on this line?
>r f+ ( add two floats) r>
Your example word seemed to work fine without it.
Traditionally floats existed on the data stack along with integers, doubles etc.
This required being sensitive to what was on top of the stack. As time passed some
argued floats should have their own stack. That's now progressed to Forth-200x
outlawing floats on the data stack. Implementing a separate float stack is usually
no issue for 16-bit processors and above but for 8-bit cpu's it's prohibitive.
My observation is the same people that push for locals also push for floats on a
separate stack using essentially the same argument.