1. something like 'abs()' ???
er... me again...
i cant seem to find the equivalent of an 'abs' or 'absolute' function as found
in 'commodore 64' basic etc...
it is a function that returns the positive value of a number regardless of
whether the original number is positive or negative
i have got around this by taking the square root of the square of the number...
but is there a simpler way anyone knows of? (maybe i'm having another brain-cell
free day)
cheerz again - eel
2. Re: something like 'abs()' ???
eel picton wrote:
>
> er... me again...
>
> i cant seem to find the equivalent of an 'abs' or 'absolute' function as found
> in 'commodore
> 64' basic etc...
>
> it is a function that returns the positive value of a number regardless of
> whether
> the original number is positive or negative
>
> i have got around this by taking the square root of the square of the
> number...
>
> but is there a simpler way anyone knows of? (maybe i'm having another
> brain-cell free
> day)
The EuForum archives are a good place to look up such things. One way:
function abs(integer x)
return x * ((x>0) - (x<0))
end function
Regards,
Irv
3. Re: something like 'abs()' ???
-- Use the following code to determine which
-- abs() function is faster. Interesting!!!
include get.e
object junk
with warning
function abs(integer x)
if x > 0 then
return x
end if
return -x
end function
function abs2(integer x)
if x < 0 then
return -x
end if
return x
end function
integer test_time, tester, counter
atom timer
test_time = 5 -- change this for shorter/longer testing time
counter = 0
puts(1,"Testing abs(1)\t")
timer = time() + test_time
while timer > time() do
counter += 1
tester = abs( 1 )
end while
?counter
counter = 0
puts(1,"Testing abs2(1)\t")
timer = time() + test_time
while timer > time() do
counter += 1
tester = abs2( 1 )
end while
?counter
counter = 0
puts(1,"Testing abs(-1)\t")
timer = time() + test_time
while timer > time() do
counter += 1
tester = abs( -1 )
end while
?counter
counter = 0
puts(1,"Testing abs2(-1)\t")
timer = time() + test_time
while timer > time() do
counter += 1
tester = abs2( -1 )
end while
?counter
junk = wait_key()
-- end of test code
-=ck
"Programming in a state of EUPHORIA."