Coder, video game industry veteran (since the '80s, ❤'s assembler), arrested - never convicted hacker (in the '90s), dad of five, he/him (if that even matters!). https://deluxepixel.com
Coder, video game industry veteran (since the '80s, ❤'s assembler), arrested - never convicted hacker (in the '90s), dad of five, he/him (if that even matters!). https://deluxepixel.com
I think the bitwise operators deal with real numbers so they have to do conversions, so they slow down. If they were true bitwise operators then I think 9 would be faster than 2.
Coder, video game industry veteran (since the '80s, ❤'s assembler), arrested - never convicted hacker (in the '90s), dad of five, he/him (if that even matters!). https://deluxepixel.com
Coder, video game industry veteran (since the '80s, ❤'s assembler), arrested - never convicted hacker (in the '90s), dad of five, he/him (if that even matters!). https://deluxepixel.com
If zero has no negative value then it's not negative. If zero has no positive value then it's not positive. So zero has no sign.
Coder, video game industry veteran (since the '80s, ❤'s assembler), arrested - never convicted hacker (in the '90s), dad of five, he/him (if that even matters!). https://deluxepixel.com
It doesn't return what you might logically expect. Usually its not hard to remember and you can make corner case code to accommodate for it... it is just annoying
It doesn't return what you might logically expect. Usually its not hard to remember and you can make corner case code to accommodate for it... it is just annoying
You can do the right function that will return 0 correctly.
For example, there is a math.atan2 function which correctly returns zero
Interesting. I've got -0 results doing normal math and think that it is pretty dumb to have to then pass results through another math function just in case they are incorrect? Oh well, it's all fun and games
Interesting. I've got -0 results doing normal math and think that it is pretty dumb to have to then pass results through another math function just in case they are incorrect? Oh well, it's all fun and games
My familiar math professor to work around problems with 0, just uses 0.0001 instead of zero. No exact precision is required in mathematics, no one uses the number pi with all signs. - logical to do so that would simplify the calculations with a tolerance in the calculations
ps/ The sign -0 cannot be because:
-0 = x*-0% -1 = x*-100% The sign number is always the digit '1'
Comments
https://stackoverflow.com/questions/441893/which-is-faster-math-absvalue-or-value-1
Likes: MoKaLux
https://play.google.com/store/apps/developer?id=razorback456
мій блог по гідерос https://simartinfo.blogspot.com
Слава Україні!
Likes: oleg
Likes: oleg
Fragmenter - animated loop machine and IKONOMIKON - the memory game
https://play.google.com/store/apps/developer?id=razorback456
мій блог по гідерос https://simartinfo.blogspot.com
Слава Україні!
Likes: oleg
https://deluxepixel.com
All the examples are wrong with zero ...
Exept this..
if a<0 then return -1 else return 1 end
https://play.google.com/store/apps/developer?id=razorback456
мій блог по гідерос https://simartinfo.blogspot.com
Слава Україні!
Core i7-8700: Android Snapdragon 660:
I guess, #2 or #3 is ok. Less than a sec., shoud be good
EDIT:
Found one more way:
Hmm, I wonder why bit operations slower that just "x < y and a or b"?
This give us -1 for neagative and 1 for 0 and positive numbers
Likes: MoKaLux, hgy29, oleg
Zero itself is without a sign, or signless.
Likes: SinisterSoft
Fragmenter - animated loop machine and IKONOMIKON - the memory game
All other values except "-1" and "+1" will cause errors in the program
https://play.google.com/store/apps/developer?id=razorback456
мій блог по гідерос https://simartinfo.blogspot.com
Слава Україні!
Fragmenter - animated loop machine and IKONOMIKON - the memory game
For my program only 3 ways will not cause an error in the program:
1.@rrraptor
a<0 and -1 or a > 0 and 1 or 0
2.@SinisterSoft
a=0
anti_abs=(a<>-1)><1
print(anti_abs)
3.if a<0 then return -1 else return 1 end
And my example and example @hgy29 will give a value of 'nan' and cause an error
https://play.google.com/store/apps/developer?id=razorback456
мій блог по гідерос https://simartinfo.blogspot.com
Слава Україні!
So there are only '-1' and '+1' and '0' is not allowed
https://play.google.com/store/apps/developer?id=razorback456
мій блог по гідерос https://simartinfo.blogspot.com
Слава Україні!
test7 results with:
-1 if neg, 0 if 0, +1 if pos
test8 result with:
-1 if neg, 0 if not neg
function test7()
for loop=1,max do
local sign =(a<>-1)><1
end
end
function test8()
for loop=1,max do
local sign =(a<>-1)><0
end
end
test1 4.5261051000002
test2 0.23030710000012
test3 0.25647970000023
test4 4.9691175000003
test5 0.48598210000046
test6 0.3186288000004
test7 0.17589819999989
test8 0.17575890000012
Likes: oleg
https://deluxepixel.com
I also added a test9 in case being -1 or +1 was important, test9 will give -1 if neg and +1 if pos (inc zero)...
function test9()
for loop=1,max do
local sign =((a<>-1)><0)|1
end
end
test2 0.23013360000004
test3 0.25745690000076
test5 0.37778469999967
test6 0.31808180000007
test7 0.17587430000003
test8 0.17580960000032
test9 0.24851379999927
I removed the two crazy slow functions (1 and 4)!
I think the bitwise operators deal with real numbers so they have to do conversions, so they slow down. If they were true bitwise operators then I think 9 would be faster than 2.
Likes: oleg
https://deluxepixel.com
test7
sign=a<>-1><1
test8
sign=a<>-1><0
test9
sign=a<>-1><0|1
timings are the same though, just saves typing!
Likes: oleg
https://deluxepixel.com
-3,, -2, -1, 0, 1 ,2
Likes: antix
https://play.google.com/store/apps/developer?id=razorback456
мій блог по гідерос https://simartinfo.blogspot.com
Слава Україні!
https://deluxepixel.com
https://play.google.com/store/apps/developer?id=razorback456
мій блог по гідерос https://simartinfo.blogspot.com
Слава Україні!
Assuming '-0' is an infinite negative number '-0,000000000000001'
https://play.google.com/store/apps/developer?id=razorback456
мій блог по гідерос https://simartinfo.blogspot.com
Слава Україні!
For example, there is a math.atan2 function which correctly returns zero
Instead of the math.atan function
https://play.google.com/store/apps/developer?id=razorback456
мій блог по гідерос https://simartinfo.blogspot.com
Слава Україні!
ps/ The sign -0 cannot be because:
-0 = x*-0%
-1 = x*-100%
The sign number is always the digit '1'
33*-1=-33
33*-0 =0 error!!
Likes: antix
https://play.google.com/store/apps/developer?id=razorback456
мій блог по гідерос https://simartinfo.blogspot.com
Слава Україні!