mirror of
https://github.com/mruby/mruby
synced 2026-06-08 16:11:16 +00:00
mruby-math/math.c: avoid mrb_get_args() if possible
When a method takes single argument, we can use lighter `mrb_get_arg1()` instead of `mrb_get_args()`.
This commit is contained in:
@@ -174,6 +174,8 @@ log2(double x)
|
||||
|
||||
#endif
|
||||
|
||||
#define get_float_arg(mrb) mrb_as_float((mrb), mrb_get_arg1(mrb))
|
||||
|
||||
/*
|
||||
TRIGONOMETRIC FUNCTIONS
|
||||
*/
|
||||
@@ -188,11 +190,7 @@ log2(double x)
|
||||
static mrb_value
|
||||
math_sin(mrb_state *mrb, mrb_value obj)
|
||||
{
|
||||
mrb_float x;
|
||||
|
||||
mrb_get_args(mrb, "f", &x);
|
||||
x = sin(x);
|
||||
|
||||
mrb_float x = sin(get_float_arg(mrb));
|
||||
return mrb_float_value(mrb, x);
|
||||
}
|
||||
|
||||
@@ -206,11 +204,7 @@ math_sin(mrb_state *mrb, mrb_value obj)
|
||||
static mrb_value
|
||||
math_cos(mrb_state *mrb, mrb_value obj)
|
||||
{
|
||||
mrb_float x;
|
||||
|
||||
mrb_get_args(mrb, "f", &x);
|
||||
x = cos(x);
|
||||
|
||||
mrb_float x = cos(get_float_arg(mrb));
|
||||
return mrb_float_value(mrb, x);
|
||||
}
|
||||
|
||||
@@ -223,11 +217,7 @@ math_cos(mrb_state *mrb, mrb_value obj)
|
||||
static mrb_value
|
||||
math_tan(mrb_state *mrb, mrb_value obj)
|
||||
{
|
||||
mrb_float x;
|
||||
|
||||
mrb_get_args(mrb, "f", &x);
|
||||
x = tan(x);
|
||||
|
||||
mrb_float x = tan(get_float_arg(mrb));
|
||||
return mrb_float_value(mrb, x);
|
||||
}
|
||||
|
||||
@@ -245,9 +235,8 @@ math_tan(mrb_state *mrb, mrb_value obj)
|
||||
static mrb_value
|
||||
math_asin(mrb_state *mrb, mrb_value obj)
|
||||
{
|
||||
mrb_float x;
|
||||
mrb_float x = get_float_arg(mrb);
|
||||
|
||||
mrb_get_args(mrb, "f", &x);
|
||||
if (x < -1.0 || x > 1.0) {
|
||||
domain_error(mrb, "asin");
|
||||
}
|
||||
@@ -265,9 +254,8 @@ math_asin(mrb_state *mrb, mrb_value obj)
|
||||
static mrb_value
|
||||
math_acos(mrb_state *mrb, mrb_value obj)
|
||||
{
|
||||
mrb_float x;
|
||||
mrb_float x = get_float_arg(mrb);
|
||||
|
||||
mrb_get_args(mrb, "f", &x);
|
||||
if (x < -1.0 || x > 1.0) {
|
||||
domain_error(mrb, "acos");
|
||||
}
|
||||
@@ -285,11 +273,7 @@ math_acos(mrb_state *mrb, mrb_value obj)
|
||||
static mrb_value
|
||||
math_atan(mrb_state *mrb, mrb_value obj)
|
||||
{
|
||||
mrb_float x;
|
||||
|
||||
mrb_get_args(mrb, "f", &x);
|
||||
x = atan(x);
|
||||
|
||||
mrb_float x = atan(get_float_arg(mrb));
|
||||
return mrb_float_value(mrb, x);
|
||||
}
|
||||
|
||||
@@ -336,11 +320,7 @@ math_atan2(mrb_state *mrb, mrb_value obj)
|
||||
static mrb_value
|
||||
math_sinh(mrb_state *mrb, mrb_value obj)
|
||||
{
|
||||
mrb_float x;
|
||||
|
||||
mrb_get_args(mrb, "f", &x);
|
||||
x = sinh(x);
|
||||
|
||||
mrb_float x = sinh(get_float_arg(mrb));
|
||||
return mrb_float_value(mrb, x);
|
||||
}
|
||||
|
||||
@@ -353,11 +333,7 @@ math_sinh(mrb_state *mrb, mrb_value obj)
|
||||
static mrb_value
|
||||
math_cosh(mrb_state *mrb, mrb_value obj)
|
||||
{
|
||||
mrb_float x;
|
||||
|
||||
mrb_get_args(mrb, "f", &x);
|
||||
x = cosh(x);
|
||||
|
||||
mrb_float x = cosh(get_float_arg(mrb));
|
||||
return mrb_float_value(mrb, x);
|
||||
}
|
||||
|
||||
@@ -371,11 +347,7 @@ math_cosh(mrb_state *mrb, mrb_value obj)
|
||||
static mrb_value
|
||||
math_tanh(mrb_state *mrb, mrb_value obj)
|
||||
{
|
||||
mrb_float x;
|
||||
|
||||
mrb_get_args(mrb, "f", &x);
|
||||
x = tanh(x);
|
||||
|
||||
mrb_float x = tanh(get_float_arg(mrb));
|
||||
return mrb_float_value(mrb, x);
|
||||
}
|
||||
|
||||
@@ -393,12 +365,7 @@ math_tanh(mrb_state *mrb, mrb_value obj)
|
||||
static mrb_value
|
||||
math_asinh(mrb_state *mrb, mrb_value obj)
|
||||
{
|
||||
mrb_float x;
|
||||
|
||||
mrb_get_args(mrb, "f", &x);
|
||||
|
||||
x = asinh(x);
|
||||
|
||||
mrb_float x = asinh(get_float_arg(mrb));
|
||||
return mrb_float_value(mrb, x);
|
||||
}
|
||||
|
||||
@@ -411,9 +378,8 @@ math_asinh(mrb_state *mrb, mrb_value obj)
|
||||
static mrb_value
|
||||
math_acosh(mrb_state *mrb, mrb_value obj)
|
||||
{
|
||||
mrb_float x;
|
||||
mrb_float x = get_float_arg(mrb);
|
||||
|
||||
mrb_get_args(mrb, "f", &x);
|
||||
if (x < 1.0) {
|
||||
domain_error(mrb, "acosh");
|
||||
}
|
||||
@@ -431,9 +397,8 @@ math_acosh(mrb_state *mrb, mrb_value obj)
|
||||
static mrb_value
|
||||
math_atanh(mrb_state *mrb, mrb_value obj)
|
||||
{
|
||||
mrb_float x;
|
||||
mrb_float x = get_float_arg(mrb);
|
||||
|
||||
mrb_get_args(mrb, "f", &x);
|
||||
if (x < -1.0 || x > 1.0) {
|
||||
domain_error(mrb, "atanh");
|
||||
}
|
||||
@@ -460,11 +425,7 @@ math_atanh(mrb_state *mrb, mrb_value obj)
|
||||
static mrb_value
|
||||
math_exp(mrb_state *mrb, mrb_value obj)
|
||||
{
|
||||
mrb_float x;
|
||||
|
||||
mrb_get_args(mrb, "f", &x);
|
||||
x = exp(x);
|
||||
|
||||
mrb_float x = exp(get_float_arg(mrb));
|
||||
return mrb_float_value(mrb, x);
|
||||
}
|
||||
|
||||
@@ -518,9 +479,8 @@ math_log(mrb_state *mrb, mrb_value obj)
|
||||
static mrb_value
|
||||
math_log2(mrb_state *mrb, mrb_value obj)
|
||||
{
|
||||
mrb_float x;
|
||||
mrb_float x = get_float_arg(mrb);
|
||||
|
||||
mrb_get_args(mrb, "f", &x);
|
||||
if (x < 0.0) {
|
||||
domain_error(mrb, "log2");
|
||||
}
|
||||
@@ -543,9 +503,8 @@ math_log2(mrb_state *mrb, mrb_value obj)
|
||||
static mrb_value
|
||||
math_log10(mrb_state *mrb, mrb_value obj)
|
||||
{
|
||||
mrb_float x;
|
||||
mrb_float x = get_float_arg(mrb);
|
||||
|
||||
mrb_get_args(mrb, "f", &x);
|
||||
if (x < 0.0) {
|
||||
domain_error(mrb, "log10");
|
||||
}
|
||||
@@ -564,9 +523,8 @@ math_log10(mrb_state *mrb, mrb_value obj)
|
||||
static mrb_value
|
||||
math_sqrt(mrb_state *mrb, mrb_value obj)
|
||||
{
|
||||
mrb_float x;
|
||||
mrb_float x = get_float_arg(mrb);
|
||||
|
||||
mrb_get_args(mrb, "f", &x);
|
||||
if (x < 0.0) {
|
||||
domain_error(mrb, "sqrt");
|
||||
}
|
||||
@@ -610,11 +568,7 @@ math_sqrt(mrb_state *mrb, mrb_value obj)
|
||||
static mrb_value
|
||||
math_cbrt(mrb_state *mrb, mrb_value obj)
|
||||
{
|
||||
mrb_float x;
|
||||
|
||||
mrb_get_args(mrb, "f", &x);
|
||||
x = cbrt(x);
|
||||
|
||||
mrb_float x = cbrt(get_float_arg(mrb));
|
||||
return mrb_float_value(mrb, x);
|
||||
}
|
||||
|
||||
@@ -633,10 +587,9 @@ math_cbrt(mrb_state *mrb, mrb_value obj)
|
||||
static mrb_value
|
||||
math_frexp(mrb_state *mrb, mrb_value obj)
|
||||
{
|
||||
mrb_float x;
|
||||
mrb_float x = get_float_arg(mrb);
|
||||
int exp;
|
||||
|
||||
mrb_get_args(mrb, "f", &x);
|
||||
x = frexp(x, &exp);
|
||||
|
||||
return mrb_assoc_new(mrb, mrb_float_value(mrb, x), mrb_fixnum_value(exp));
|
||||
@@ -692,11 +645,7 @@ math_hypot(mrb_state *mrb, mrb_value obj)
|
||||
static mrb_value
|
||||
math_erf(mrb_state *mrb, mrb_value obj)
|
||||
{
|
||||
mrb_float x;
|
||||
|
||||
mrb_get_args(mrb, "f", &x);
|
||||
x = erf(x);
|
||||
|
||||
mrb_float x = erf(get_float_arg(mrb));
|
||||
return mrb_float_value(mrb, x);
|
||||
}
|
||||
|
||||
@@ -710,11 +659,7 @@ math_erf(mrb_state *mrb, mrb_value obj)
|
||||
static mrb_value
|
||||
math_erfc(mrb_state *mrb, mrb_value obj)
|
||||
{
|
||||
mrb_float x;
|
||||
|
||||
mrb_get_args(mrb, "f", &x);
|
||||
x = erfc(x);
|
||||
|
||||
mrb_float x = erfc(get_float_arg(mrb));
|
||||
return mrb_float_value(mrb, x);
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user