summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog5
-rw-r--r--lib/complex.rb12
2 files changed, 12 insertions, 5 deletions
diff --git a/ChangeLog b/ChangeLog
index 6a2101fd76..28c955a1c0 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,4 +1,7 @@
-2003-04-24 Dave Thomas <dave@wireless_1.local.thomases.com>
+2003-04-24 Dave Thomas <dave@thomases.com>
+
+ * lib/complex.rb (new!): Complex.new had been made private, but
+ Kernel#Complex called it. Re-exposed as new!.
* lib/matrix.rb (Matrix.row_vector): Fix method name typo
diff --git a/lib/complex.rb b/lib/complex.rb
index 90916d125e..6b3e42f4e2 100644
--- a/lib/complex.rb
+++ b/lib/complex.rb
@@ -41,7 +41,7 @@ def Complex(a, b = 0)
elsif b == 0 and defined? Complex::Unify
a
else
- Complex.new(a, b)
+ Complex.new!(a, b)
end
end
@@ -70,7 +70,11 @@ class Complex < Numeric
#
# Creates a +Complex+ number <tt>a</tt>+<tt>b</tt><i>i</i>.
#
- def initialize(a, b = 0)
+ def Complex.new!(a, b=0)
+ new(a,b)
+ end
+
+ def initialize(a, b)
raise "non numeric 1st arg `#{a.inspect}'" if !a.kind_of? Numeric
raise "non numeric 2nd arg `#{b.inspect}'" if !b.kind_of? Numeric
@real = a
@@ -274,7 +278,7 @@ class Complex < Numeric
#
def coerce(other)
if Complex.generic?(other)
- return Complex.new(other), self
+ return Complex.new!(other), self
else
super
end
@@ -412,7 +416,7 @@ class Fixnum
# Redefined to handle a Complex argument.
def ** (other)
if self < 0
- Complex.new(self) ** other
+ Complex.new!(self, 0) ** other
else
if defined? Rational
if other >= 0