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

* ext/tk/lib/tk.rb (TkCore::chooseDirectory): back up wrongly

removed method.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@4175 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
matz 2003-07-26 15:03:16 +00:00
parent 472efdfeb4
commit f0b77b0cde
5 changed files with 124 additions and 88 deletions

View file

@ -7,6 +7,11 @@ Sat Jul 26 21:25:21 2003 NAKAMURA Usaku <usa@ruby-lang.org>
* win32/win32.c: remove some old comments.
Sat Jul 26 14:26:57 2003 Yukihiro Matsumoto <matz@ruby-lang.org>
* ext/tk/lib/tk.rb (TkCore::chooseDirectory): back up wrongly
removed method.
Sat Jul 26 14:14:12 2003 Nobuyoshi Nakada <nobu.nokada@softhome.net>
* ext/stringio/stringio.c: includes Enumerable as well as IO.

View file

@ -750,7 +750,7 @@ if test "$with_dln_a_out" != yes; then
esac
else
case "$target_os" in
hpux*) CCDLFLAGS='+z';;
hpux*) CCDLFLAGS='+Z';;
solaris*|irix*) CCDLFLAGS='-KPIC' ;;
sunos*) CCDLFLAGS='-PIC' ;;
esix*|uxpds*) CCDLFLAGS='-KPIC' ;;

View file

@ -67,7 +67,7 @@ typedef uint8_t sha2_byte; /* Exactly 1 byte */
typedef uint32_t sha2_word32; /* Exactly 4 bytes */
typedef uint64_t sha2_word64; /* Exactly 8 bytes */
#if defined(__GNUC__)
#if defined(__GNUC__) || defined(_HPUX_SOURCE)
#define ULL(number) number##ULL
#else
#define ULL(number) (uint64_t)(number)

View file

@ -3,15 +3,16 @@
#include <errno.h>
#include <stdio.h>
#ifdef HAVE_UNISTD_H
#include <unistd.h>
#endif
#include <readline/readline.h>
#include <readline/history.h>
#include "ruby.h"
#include "rubysig.h"
#ifdef HAVE_UNISTD_H
#include <unistd.h>
#endif
static VALUE mReadline;
#define TOLOWER(c) (isupper(c) ? tolower(c) : c)

View file

@ -21,7 +21,8 @@
#
# The following +Math+ module methods are redefined to handle Complex arguments.
# They will work as normal with non-Complex arguments.
# sqrt exp cos sin tan log log10 atan2
# sqrt exp cos sin tan log log10
# cosh sinh tanh acos asin atan atan2 acosh asinh atanh
#
@ -66,7 +67,6 @@ class Complex < Numeric
Complex(r*Math.cos(theta), r*Math.sin(theta))
end
private_class_method :new
#
# Creates a +Complex+ number <tt>a</tt>+<tt>b</tt><i>i</i>.
#
@ -76,7 +76,9 @@ class Complex < Numeric
def initialize(a, b)
raise "non numeric 1st arg `#{a.inspect}'" if !a.kind_of? Numeric
raise "`#{a.inspect}' for 1st arg" if a.kind_of? Complex
raise "non numeric 2nd arg `#{b.inspect}'" if !b.kind_of? Numeric
raise "`#{b.inspect}' for 2nd arg" if b.kind_of? Complex
@real = a
@image = b
end
@ -181,7 +183,7 @@ class Complex < Numeric
end
elsif Complex.generic?(other)
r, theta = polar
Complex.polar(r.power!(other), theta * other)
Complex.polar(r**other, theta*other)
else
x, y = other.coerce(self)
x**y
@ -236,8 +238,9 @@ class Complex < Numeric
# Argument (angle from (1,0) on the complex plane).
#
def arg
Math.atan2(@image.to_f, @real.to_f)
Math.atan2!(@image, @real)
end
alias angle arg
#
# Returns the absolute value _and_ the argument.
@ -252,6 +255,7 @@ class Complex < Numeric
def conjugate
Complex(@real, -@image)
end
alias conj conjugate
#
# Compares the absolute values of the two numbers.
@ -395,6 +399,7 @@ class Numeric
return Math::PI
end
end
alias angle arg
#
# See Complex#polar.
@ -409,46 +414,28 @@ class Numeric
def conjugate
self
end
alias conj conjugate
end
class Fixnum
unless defined? 1.power!
alias power! **
end
# Redefined to handle a Complex argument.
def ** (other)
if self < 0
Complex.new!(self, 0) ** other
else
if defined? self.rpower
self.rpower(other)
else
self.power!(other)
end
end
end
end
class Bignum
alias power! **
end
class Float
alias power! **
end
module Math
alias sqrt! sqrt
alias exp! exp
alias log! log
alias log10! log10
alias cos! cos
alias sin! sin
alias tan! tan
alias log! log
alias cosh! cosh
alias sinh! sinh
alias tanh! tanh
alias acos! acos
alias asin! asin
alias atan! atan
alias log10! log10
alias atan2! atan2
alias acosh! acosh
alias asinh! asinh
alias atanh! atanh
# Redefined to handle a Complex argument.
def sqrt(z)
@ -478,20 +465,6 @@ module Math
end
end
#
# Hyperbolic cosine.
#
def cosh!(x)
(exp!(x) + exp!(-x))/2.0
end
#
# Hyperbolic sine.
#
def sinh!(x)
(exp!(x) - exp!(-x))/2.0
end
# Redefined to handle a Complex argument.
def cos(z)
if Complex.generic?(z)
@ -521,6 +494,30 @@ module Math
end
end
def sinh(z)
if Complex.generic?(z)
sinh!(z)
else
Complex( sinh!(z.real)*cos!(z.image), cosh!(z.real)*sin!(z.image) )
end
end
def cosh(z)
if Complex.generic?(z)
cosh!(z)
else
Complex( cosh!(z.real)*cos!(z.image), sinh!(z.real)*sin!(z.image) )
end
end
def tanh(z)
if Complex.generic?(z)
tanh!(z)
else
sinh(z)/cosh(z)
end
end
# Redefined to handle a Complex argument.
def log(z)
if Complex.generic?(z) and z >= 0
@ -540,68 +537,101 @@ module Math
end
end
# FIXME: I don't know what the point of this is. If you give it Complex
# arguments, it will fail.
def atan2(x, y)
if Complex.generic?(x) and Complex.generic?(y)
atan2!(x, y)
def acos(z)
if Complex.generic?(z)
acos!(z)
else
fail "Not yet implemented."
-1.0.im * log( z + 1.0.im * sqrt(1.0-z*z) )
end
end
#
# Hyperbolic arctangent.
#
def atanh!(x)
log((1.0 + x.to_f) / ( 1.0 - x.to_f)) / 2.0
def asin(z)
if Complex.generic?(z)
asin!(z)
else
-1.0.im * log( 1.0.im * z + sqrt(1.0-z*z) )
end
end
# Redefined to handle a Complex argument.
def atan(z)
if Complex.generic?(z)
atan2!(z, 1)
elsif z.image == 0
atan2(z.real,1)
atan!(z)
else
a = z.real
b = z.image
c = (a*a + b*b - 1.0)
d = (a*a + b*b + 1.0)
Complex(atan2!((c + sqrt(c*c + 4.0*a*a)), 2.0*a),
atanh!((-d + sqrt(d*d - 4.0*b*b))/(2.0*b)))
1.0.im * log( (1.0.im+z) / (1.0.im-z) ) / 2.0
end
end
def atan2(y,x)
if Complex.generic?(y) and Complex.generic?(x)
atan2!(y,x)
else
-1.0.im * log( (x+1.0.im*y) / sqrt(x*x+y*y) )
end
end
def acosh(z)
if Complex.generic?(z)
acosh!(z)
else
log( z + sqrt(z*z-1.0) )
end
end
def asinh(z)
if Complex.generic?(z)
asinh!(z)
else
log( z + sqrt(1.0+z*z) )
end
end
def atanh(z)
if Complex.generic?(z)
atanh!(z)
else
log( (1.0+z) / (1.0-z) ) / 2.0
end
end
module_function :sqrt
module_function :sqrt!
module_function :sqrt
module_function :exp!
module_function :exp
module_function :log!
module_function :log
module_function :log10!
module_function :log10
module_function :cosh!
module_function :cosh
module_function :cos!
module_function :cos
module_function :sinh!
module_function :sinh
module_function :sin!
module_function :sin
module_function :tan!
module_function :tan
module_function :log!
module_function :log
module_function :log10!
module_function :log
module_function :tanh!
module_function :tanh
module_function :acos!
module_function :acos
module_function :asin!
module_function :asin
module_function :atan!
module_function :atan
module_function :atan2!
module_function :atan2
# module_function :atan!
module_function :atan
module_function :acosh!
module_function :acosh
module_function :asinh!
module_function :asinh
module_function :atanh!
module_function :atanh
end
# Documentation comments:
# - source: original (researched from pickaxe)
# - a couple of fixme's
# - Math module methods sinh! etc. a bit fuzzy. What exactly is the intention?
# - RDoc output for Bignum etc. is a bit short, with nothing but an
# (undocumented) alias. No big deal.