Data update
This commit is contained in:
parent
ed705008a8
commit
0df55f9f24
2196 changed files with 32999 additions and 3075 deletions
|
|
@ -0,0 +1,58 @@
|
|||
import "qa"
|
||||
|
||||
number.isInteger = function
|
||||
return self == floor(self)
|
||||
end function
|
||||
|
||||
ipow = function(base, exp)
|
||||
if not base.isInteger then qa.abort("ipow must have an integer base")
|
||||
if not exp.isInteger then qa.abort("ipow must have an integer exponent")
|
||||
if base == 1 or exp == 0 then return 1
|
||||
if base == -1 then
|
||||
if exp%2 == 0 then return 1
|
||||
return -1
|
||||
end if
|
||||
if exp < 0 then qa.abort("ipow cannot have a negative exponent")
|
||||
ans = 1
|
||||
e = exp
|
||||
while e > 1
|
||||
if e%2 == 1 then ans *= base
|
||||
e = floor(e/2)
|
||||
base *= base
|
||||
end while
|
||||
return ans * base
|
||||
end function
|
||||
|
||||
fpow = function(base, exp)
|
||||
if not exp.isInteger then qa.abort("fpow must have an integer exponent")
|
||||
ans = 1.0
|
||||
e = exp
|
||||
if e < 0 then
|
||||
base = 1 / base
|
||||
e = -e
|
||||
end if
|
||||
while e > 0
|
||||
if e%2 == 1 then ans *= base
|
||||
e = floor(e/2)
|
||||
base *= base
|
||||
end while
|
||||
return ans
|
||||
end function
|
||||
|
||||
print "Using the reimplemented functions:"
|
||||
print " 2 ^ 3 = " + ipow(2, 3)
|
||||
print " 1 ^ -10 = " + ipow(1, -10)
|
||||
print " -1 ^ -3 = " + ipow(-1, -3)
|
||||
print
|
||||
print " 2.0 ^ -3 = " + fpow(2.0, -3)
|
||||
print " 1.5 ^ 0 = " + fpow(1.5, 0)
|
||||
print " 4.5 ^ 2 = " + fpow(4.5, 2)
|
||||
print
|
||||
print "Using the ^ operator:"
|
||||
print " 2 ^ 3 = " + 2 ^ 3
|
||||
print " 1 ^ -10 = " + 1 ^ (-10)
|
||||
print " -1 ^ -3 = " + (-1) ^ (-3)
|
||||
print
|
||||
print " 2.0 ^ -3 = " + 2.0 ^ (-3)
|
||||
print " 1.5 ^ 0 = " + 1.5 ^ 0
|
||||
print " 4.5 ^ 2 = " + 4.5 ^ 2
|
||||
Loading…
Add table
Add a link
Reference in a new issue