# complex.rb

Path: | complex.rb
Last Update: | Fri Aug 01 19:32:58 GMT+10:00 2003

      complex.rb -
          $Release Version: 0.5 $
          $Revision: 1.3 $
          $Date: 1998/07/08 10:05:28 $
          by Keiju ISHITSUKA(SHL Japan Inc.)

complex.rb implements the Complex class for complex numbers. Additionally, some methods in other Numeric classes are redefined or added to allow greater interoperability with Complex numbers.

Complex numbers can be created in the following manner:

- `Complex(a, b)`
- `Complex.polar(radius, theta)`

Additionally, note the following:

- `Complex::I` (the mathematical constant i)
- `Numeric#im` (e.g. `5.im -> 0+5i`)

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
       cosh sinh tanh acos asin atan atan2 acosh asinh atanh

## Methods

Complex

## Classes and Modules

Module Math
Class Complex
Class Numeric

## Public Instance methods

Complex(a, b = 0)

Creates a Complex number. `a` and `b` should be Numeric. The result will be `a+bi`.

[Source]

    # File complex.rb, line 90
    def Complex(a, b = 0)
      if b == 0 and (a.kind_of?(Complex) or defined? Complex::Unify)
        a
      else
        Complex.new( a.real-b.imag, a.imag+b.real )
      end
    end

[Validate]