1
0
Fork 0
mirror of https://github.com/ruby/ruby.git synced 2022-11-09 12:17:21 -05:00

* math.c (Init_Math): backport asin, acos, atan.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_6@2525 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
matz 2002-06-05 09:54:09 +00:00
parent 605ac74db3
commit 7c3537f27d
3 changed files with 44 additions and 3 deletions

View file

@ -1,3 +1,7 @@
Wed Jun 5 18:53:06 2002 Yukihiro Matsumoto <matz@ruby-lang.org>
* math.c (Init_Math): backport asin, acos, atan.
Tue Jun 4 00:45:50 2002 Nobuyoshi Nakada <nobu.nokada@softhome.net>
* ext/socket/addrinfo.h: typo.

View file

@ -8,7 +8,7 @@
# --
# Usage:
# class Rational < Numeric
# (include Compareable)
# (include Comparable)
#
# Rational(a, b) --> a/b
#
@ -47,7 +47,7 @@ class Rational < Numeric
@RCS_ID='-$Id: rational.rb,v 1.7 1999/08/24 12:49:28 keiju Exp keiju $-'
def Rational.reduce(num, den = 1)
raise ZeroDivisionError, "denometor is 0" if den == 0
raise ZeroDivisionError, "denominator is 0" if den == 0
if den < 0
num = -num
@ -132,7 +132,7 @@ class Rational < Numeric
den = @denominator * a.numerator
Rational(num, den)
elsif a.kind_of?(Integer)
raise ZeroDivisionError, "devided by 0" if a == 0
raise ZeroDivisionError, "divided by 0" if a == 0
self / Rational.new!(a, 1)
elsif a.kind_of?(Float)
Float(self) / a

37
math.c
View file

@ -56,6 +56,39 @@ math_tan(obj, x)
return rb_float_new(tan(RFLOAT(x)->value));
}
static VALUE
math_acos(obj, x)
VALUE obj, x;
{
Need_Float(x);
/*
if (RFLOAT(x)->value < -1.0 || RFLOAT(x)->value > 1.0)
rb_raise(rb_eArgError, "Out of range (-1..1)");
*/
return rb_float_new(acos(RFLOAT(x)->value));
}
static VALUE
math_asin(obj, x)
VALUE obj, x;
{
Need_Float(x);
/*
if (RFLOAT(x)->value < -1.0 || RFLOAT(x)->value > 1.0)
rb_raise(rb_eArgError, "Out of range (-1..1)");
*/
return rb_float_new(asin(RFLOAT(x)->value));
}
static VALUE
math_atan(obj, x)
VALUE obj, x;
{
Need_Float(x);
return rb_float_new(atan(RFLOAT(x)->value));
}
static VALUE
math_exp(obj, x)
VALUE obj, x;
@ -140,6 +173,10 @@ Init_Math()
rb_define_module_function(rb_mMath, "sin", math_sin, 1);
rb_define_module_function(rb_mMath, "tan", math_tan, 1);
rb_define_module_function(rb_mMath, "acos", math_acos, 1);
rb_define_module_function(rb_mMath, "asin", math_asin, 1);
rb_define_module_function(rb_mMath, "atan", math_atan, 1);
rb_define_module_function(rb_mMath, "exp", math_exp, 1);
rb_define_module_function(rb_mMath, "log", math_log, 1);
rb_define_module_function(rb_mMath, "log10", math_log10, 1);