2015-04-10 00:37:31 -04:00
|
|
|
__if_comp__ __C__ simple_passthrough(::"-lm") """
|
2015-03-18 18:35:00 -04:00
|
|
|
#include <math.h>
|
|
|
|
|
"""
|
2014-05-01 01:18:01 -04:00
|
|
|
|
2015-05-09 06:24:56 -04:00
|
|
|
fun fibanacci(num: int): int {
|
2014-05-01 01:18:01 -04:00
|
|
|
if (num < 2)
|
|
|
|
|
return 1;
|
|
|
|
|
return fibanacci(num-1) + fibanacci(num-2);
|
2014-08-01 00:45:48 -07:00
|
|
|
}
|
2015-03-18 18:35:00 -04:00
|
|
|
|
|
|
|
|
/*********************
|
|
|
|
|
* Trig Functions
|
|
|
|
|
********************/
|
|
|
|
|
|
2015-05-09 06:24:56 -04:00
|
|
|
fun atan(arg: double): double
|
2015-03-18 18:35:00 -04:00
|
|
|
{
|
2015-05-09 06:24:56 -04:00
|
|
|
var ans: double = 0;
|
2015-03-18 18:35:00 -04:00
|
|
|
__if_comp__ __C__{
|
2015-04-10 00:37:31 -04:00
|
|
|
simple_passthrough(arg = arg, ans = ans : ans = ans :) """
|
2015-03-18 18:35:00 -04:00
|
|
|
ans = atan(arg);
|
|
|
|
|
"""
|
|
|
|
|
}//end C wrapper
|
2015-04-04 01:32:40 -04:00
|
|
|
|
2015-03-18 18:35:00 -04:00
|
|
|
return ans;
|
|
|
|
|
}//end atan function
|
|
|
|
|
|
2015-05-09 06:24:56 -04:00
|
|
|
fun atan2(x: double, y: double): double
|
2015-03-18 18:35:00 -04:00
|
|
|
{
|
2015-05-09 06:24:56 -04:00
|
|
|
var ans: double = 0;
|
2015-03-18 18:35:00 -04:00
|
|
|
__if_comp__ __C__{
|
2015-04-10 00:37:31 -04:00
|
|
|
simple_passthrough(x = x, y = y, ans = ans : ans = ans :) """
|
2015-03-18 18:35:00 -04:00
|
|
|
ans = atan2(x,y);
|
|
|
|
|
"""
|
|
|
|
|
}//end C wrapper
|
2015-04-04 01:32:40 -04:00
|
|
|
|
2015-03-18 18:35:00 -04:00
|
|
|
return ans;
|
|
|
|
|
}//end atan2 function
|
|
|
|
|
|
2015-05-09 06:24:56 -04:00
|
|
|
fun acos(arg: double): double
|
2015-03-18 18:35:00 -04:00
|
|
|
{
|
2015-05-09 06:24:56 -04:00
|
|
|
var ans: double = 0;
|
2015-03-18 18:35:00 -04:00
|
|
|
__if_comp__ __C__{
|
2015-04-10 00:37:31 -04:00
|
|
|
simple_passthrough(arg = arg, ans = ans : ans = ans :) """
|
2015-03-18 18:35:00 -04:00
|
|
|
ans = acos(arg);
|
|
|
|
|
"""
|
|
|
|
|
}//end C wrapper
|
2015-04-04 01:32:40 -04:00
|
|
|
|
2015-03-18 18:35:00 -04:00
|
|
|
return ans;
|
|
|
|
|
}//end acos function
|
|
|
|
|
|
2015-05-09 06:24:56 -04:00
|
|
|
fun asin(arg: double): double
|
2015-03-18 18:35:00 -04:00
|
|
|
{
|
2015-05-09 06:24:56 -04:00
|
|
|
var ans: double = 0;
|
2015-03-18 18:35:00 -04:00
|
|
|
__if_comp__ __C__{
|
2015-04-10 00:37:31 -04:00
|
|
|
simple_passthrough(arg = arg, ans = ans : ans = ans :) """
|
2015-03-18 18:35:00 -04:00
|
|
|
ans = asin(arg);
|
|
|
|
|
"""
|
|
|
|
|
}//end C wrapper
|
2015-04-04 01:32:40 -04:00
|
|
|
|
2015-03-18 18:35:00 -04:00
|
|
|
return ans;
|
|
|
|
|
}//end asin function
|
|
|
|
|
|
2015-05-09 06:24:56 -04:00
|
|
|
fun tan(arg: double): double
|
2015-03-18 18:35:00 -04:00
|
|
|
{
|
2015-05-09 06:24:56 -04:00
|
|
|
var ans: double = 0;
|
2015-03-18 18:35:00 -04:00
|
|
|
__if_comp__ __C__{
|
2015-04-10 00:37:31 -04:00
|
|
|
simple_passthrough(arg = arg, ans = ans : ans = ans :) """
|
2015-03-18 18:35:00 -04:00
|
|
|
ans = tan(arg);
|
|
|
|
|
"""
|
|
|
|
|
}//end C wrapper
|
2015-04-04 01:32:40 -04:00
|
|
|
|
2015-03-18 18:35:00 -04:00
|
|
|
return ans;
|
|
|
|
|
}//end tan function
|
|
|
|
|
|
2015-05-09 06:24:56 -04:00
|
|
|
fun cos(arg: double): double
|
2015-03-18 18:35:00 -04:00
|
|
|
{
|
2015-05-09 06:24:56 -04:00
|
|
|
var ans: double = 0;
|
2015-03-18 18:35:00 -04:00
|
|
|
__if_comp__ __C__{
|
2015-04-10 00:37:31 -04:00
|
|
|
simple_passthrough(arg = arg, ans = ans : ans = ans :) """
|
2015-03-18 18:35:00 -04:00
|
|
|
ans = cos(arg);
|
|
|
|
|
"""
|
|
|
|
|
}//end C wrapper
|
2015-04-04 01:32:40 -04:00
|
|
|
|
2015-03-18 18:35:00 -04:00
|
|
|
return ans;
|
|
|
|
|
}//end cos function
|
|
|
|
|
|
2015-05-09 06:24:56 -04:00
|
|
|
fun sin(arg: double): double
|
2015-03-18 18:35:00 -04:00
|
|
|
{
|
2015-05-09 06:24:56 -04:00
|
|
|
var ans: double = 0;
|
2015-03-18 18:35:00 -04:00
|
|
|
__if_comp__ __C__{
|
2015-04-10 00:37:31 -04:00
|
|
|
simple_passthrough(arg = arg, ans = ans : ans = ans :) """
|
2015-03-18 18:35:00 -04:00
|
|
|
ans = sin(arg);
|
|
|
|
|
"""
|
|
|
|
|
}//end C wrapper
|
2015-04-04 01:32:40 -04:00
|
|
|
|
2015-03-18 18:35:00 -04:00
|
|
|
return ans;
|
|
|
|
|
}//end sin function
|
|
|
|
|
|
|
|
|
|
//|int| NotPi = 3;
|
|
|
|
|
//|double| STD_PI = 4*atan(1);
|
|
|
|
|
|