ComplexNumber (complex_number v0.1.0) View Source
Functions for complex number operations.
Link to this section Summary
Functions
Returns the absolute value of the given complex number.
Adds two complex numbers.
Divides a complex number by another one.
Returns the imaginary part of the given complex number.
Checks if the argument is a complex (including real) number or not.
Makes a product of two complex numbers.
Negates a complex number.
Creates a new complex number from a real part and an imaginary part.
Returns a multivalued function representing the given base taken to the power of the given exponent.
Returns the real part of the given complex number.
Subtracts a complex number from another one.
Link to this section Types
Specs
Link to this section Functions
Specs
Returns the absolute value of the given complex number.
iex> ComplexNumber.abs(ComplexNumber.new(4, -3))
5.0
iex> ComplexNumber.abs(4.2)
4.2
Specs
Adds two complex numbers.
iex> ComplexNumber.add(ComplexNumber.new(0.5, 2.5), ComplexNumber.new(2.5, 1.5))
%ComplexNumber{radius: 5.0, theta: 0.9272952180016122}
iex> ComplexNumber.add(ComplexNumber.new(0.5, 4), 2.5)
%ComplexNumber{radius: 5.0, theta: 0.9272952180016121}
iex> ComplexNumber.add(2.5, ComplexNumber.new(0.5, 4))
%ComplexNumber{radius: 5.0, theta: 0.9272952180016121}
iex> ComplexNumber.add(3.5, 2.5)
6.0
Specs
Divides a complex number by another one.
iex> ComplexNumber.divide(ComplexNumber.new(3, -0.5), ComplexNumber.new(2, 1.5))
%ComplexNumber{radius: 1.2165525060596438, theta: -0.8086497862079112}
iex> ComplexNumber.divide(ComplexNumber.new(3, -0.75), ComplexNumber.new(2, -0.5))
1.5
iex> ComplexNumber.divide(ComplexNumber.new(-3, -0.75), ComplexNumber.new(2, 0.5))
-1.5
iex> ComplexNumber.divide(3, ComplexNumber.new(2, 1.5))
%ComplexNumber{radius: 1.2, theta: -0.6435011087932844}
iex> ComplexNumber.divide(ComplexNumber.new(3, -0.5), 2)
%ComplexNumber{radius: 1.5206906325745548, theta: -0.16514867741462683}
iex> ComplexNumber.divide(3, 2)
1.5
Specs
Returns the imaginary part of the given complex number.
iex> ComplexNumber.imaginary(ComplexNumber.new(6.2, 3))
3.0
iex> ComplexNumber.imaginary(4)
0
Checks if the argument is a complex (including real) number or not.
iex> ComplexNumber.is_complex_number(6.85)
true
iex> ComplexNumber.is_complex_number(-3)
true
iex> ComplexNumber.is_complex_number(ComplexNumber.new(3.5, -1))
true
iex> ComplexNumber.is_complex_number(:atom)
false
iex> ComplexNumber.is_complex_number("binary")
false
Specs
Makes a product of two complex numbers.
iex> ComplexNumber.multiply(ComplexNumber.new(2, -3), ComplexNumber.new(-3, 0.5))
%ComplexNumber{radius: 10.965856099730653, theta: 1.993650252927837}
iex> ComplexNumber.multiply(ComplexNumber.new(2, -3), ComplexNumber.new(3, 4.5))
19.5
iex> ComplexNumber.multiply(ComplexNumber.new(2, 3), ComplexNumber.new(-3, 4.5))
-19.5
iex> ComplexNumber.multiply(2.5, ComplexNumber.new(3, -0.5))
%ComplexNumber{radius: 7.603453162872774, theta: -0.16514867741462683}
iex> ComplexNumber.multiply(ComplexNumber.new(3, -0.5), 2.5)
%ComplexNumber{radius: 7.603453162872774, theta: -0.16514867741462683}
iex> ComplexNumber.multiply(4, 2.5)
10.0
Specs
Negates a complex number.
iex> ComplexNumber.negate(ComplexNumber.new(4, -3))
%ComplexNumber{radius: -5.0, theta: -0.6435011087932844}
iex> ComplexNumber.negate(4.2)
-4.2
Specs
Creates a new complex number from a real part and an imaginary part.
If the imaginary part is zero, it just returns a real number.
iex> ComplexNumber.new(3, 4)
%ComplexNumber{radius: 5.0, theta: 0.9272952180016122}
iex> ComplexNumber.new(-3, 4)
%ComplexNumber{radius: 5.0, theta: 2.214297435588181}
iex> ComplexNumber.new(3, 0)
3
Specs
Returns a multivalued function representing the given base taken to the power of the given exponent.
iex> ComplexNumber.pow(ComplexNumber.new(6, 1.5), ComplexNumber.new(-4, -0.4)).(0)
%ComplexNumber{radius: 0.0007538662030076445, theta: -1.708743364561965}
iex> ComplexNumber.pow(6.5, ComplexNumber.new(-4, -0.4)).(0)
%ComplexNumber{radius: 0.0005602044746332418, theta: -0.7487208707606361}
iex> ComplexNumber.pow(ComplexNumber.new(6, 1.5), -4.4).(0)
%ComplexNumber{radius: 0.0003297697637520032, theta: -1.0779061177582023}
iex> ComplexNumber.pow(6.5, -4.4).(0)
0.0002649605586423526
iex> ComplexNumber.pow(6.5, -4.4).(1)
%ComplexNumber{radius: 0.00026496055864235266, theta: -2.5132741228718367}
iex> ComplexNumber.pow(6.5, 0.5).(1)
-2.5495097567963922
Specs
Returns the real part of the given complex number.
iex> ComplexNumber.real(ComplexNumber.new(6.2, 3))
6.2
iex> ComplexNumber.real(4)
4
Specs
Subtracts a complex number from another one.
iex> ComplexNumber.subtract(ComplexNumber.new(0.5, 2.5), ComplexNumber.new(2.5, 1.5))
%ComplexNumber{radius: 2.2360679774997894, theta: 2.6779450445889874}
iex> ComplexNumber.subtract(ComplexNumber.new(0.5, 4), 2.5)
%ComplexNumber{radius: 4.472135954999579, theta: 2.0344439357957027}
iex> ComplexNumber.subtract(2.5, ComplexNumber.new(0.5, 4))
%ComplexNumber{radius: 4.472135954999579, theta: 1.1071487177940906}
iex> ComplexNumber.subtract(3.5, 2.5)
1.0