ComplexNumber (complex_number v0.2.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.
Returns the cosine of a complex number.
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.
Returns the sine of a complex number.
Subtracts a complex number from another one.
Returns the tangent of a complex number.
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
Returns the cosine of a complex number.
iex> ComplexNumber.cos(2.1)
-0.5048461045998576
iex> ComplexNumber.cos(ComplexNumber.new(3, -0.5))
%ComplexNumber{radius: 1.1187606807234534, theta: 3.075814483757404}
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
Returns the sine of a complex number.
iex> ComplexNumber.sin(2.1)
0.8632093666488737
iex> ComplexNumber.sin(ComplexNumber.new(3, -0.5))
%ComplexNumber{radius: 0.5398658852737769, theta: 1.2715925251688622}
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
Specs
Returns the tangent of a complex number.
iex> ComplexNumber.tan(2.1)
-1.7098465429045073
iex> ComplexNumber.tan(ComplexNumber.new(3, -0.5))
%ComplexNumber{radius: 0.482557078181072, theta: -1.804221958588542}