Meow/libs/math.meow

From Esolang
Jump to navigation Jump to search
Back to Meow/libs

math.meow: Math functions.

func pow
poparg arg1
poparg arg2
equal arg2 0
addret 1
end
big arg2 0
sub arg2 1 arg2
run pow
popret ret
mul ret arg1 ret
addret ret
add arg2 1 arg2
end
endf
add 0 1 fby
func fb
poparg arg1
add fbx fby temp
add 0 fby fbx
add 0 temp fby
equal arg1 0
addret 0
end
equal arg1 1
addret fbx
end
big arg1 1
sub arg1 1 arg1
run fb
end
endf
func fbclear
del fbx
add 0 1 fby
endf
func fpow
poparg arg1
poparg arg2
equal arg2 0
addret 1
end
big arg2 0
mod arg2 2 c
equal c 1
sub arg2 1 arg2
run fpow
popret ret
mul ret arg1 ret
addret ret
end
equal c 0
div arg2 2 arg2
run fpow
popret ret
mul ret ret ret
addret ret
end
end
endf
func pihelp
equal a f
addret v
end
small a f
div 1 a q
mul q s q
mul s -1 s
add v q v
add a 2 a
run pihelp
end
endf
func pi
poparg ac
add 1 ac f
add 0 1 a
add 0 1 s
del v
run pihelp
popret rt
mul rt 4 rt
addret rt
endf
add 0 3.141492653589793 PI
add 0 2.718281828459045 E
add 0 1.618033988749895 PHI

Functions:

  • pow(x,y): Brute force power.
  • fb(x): Generates the x-th term of Fibonacci sequence.
  • fbclear(): Initialization that has to be run before running fb.
  • fpow(x,y): Fast power.
  • pi(x): Rough Pi generator, x is the number of iterations.

Helper functions:

  • pihelp

Variables:

  • PI=3.141492653589793
  • E=2.718281828459045
  • PHI=1.618033988749895