Complex

@SerialVersionUID(0L)
final case class Complex[@specialized(Float, Double) T](real: T, imag: T) extends ScalaNumber with ScalaNumericConversions with Serializable

Complex numbers. Depending on the underlying scalar T, can represent the Gaussian integers (T = BigInt/SafeLong), the Gaussian rationals (T = Rational) or the complex number field (T: Field).

Note that we require T to be at least CRing, a commutative ring, so the implementation below is slightly less general than the Cayley-Dickson construction.

Companion:
object
trait Product
trait Equals
class Number
class Object
trait Matchable
class Any

Value members

Concrete methods

def *(rhs: T)(implicit r: CommutativeRing[T]): Complex[T]
def *(b: Complex[T])(implicit r: CommutativeRing[T]): Complex[T]
def **(e: T)(implicit f: Field[T], n: NRoot[T], o: Order[T], s: Signed[T], t: Trig[T]): Complex[T]
def **(b: Int)(implicit f: Field[T], n: NRoot[T], o: Order[T], s: Signed[T], t: Trig[T]): Complex[T]
def **(b: Complex[T])(implicit f: Field[T], n: NRoot[T], o: Order[T], s: Signed[T], t: Trig[T]): Complex[T]
def +(rhs: T)(implicit r: CommutativeRing[T]): Complex[T]
def +(b: Complex[T])(implicit r: CommutativeRing[T]): Complex[T]
def -(rhs: T)(implicit r: CommutativeRing[T]): Complex[T]
def -(b: Complex[T])(implicit r: CommutativeRing[T]): Complex[T]
def /(rhs: T)(implicit r: Field[T]): Complex[T]
def /(b: Complex[T])(implicit f: Field[T], o: Order[T], s: Signed[T]): Complex[T]
def =!=(that: Complex[_]): Boolean
def ===(that: Complex[_]): Boolean
def abs(implicit f: Field[T], n: NRoot[T], o: Order[T], s: Signed[T]): T
def absSquare(implicit r: CommutativeRing[T]): T
def acos(implicit f: Field[T], n: NRoot[T], o: Order[T], t: Trig[T], s0: Signed[T]): Complex[T]
def arg(implicit f: Field[T], s: Signed[T], t: Trig[T]): T
def asPolarTuple(implicit f: Field[T], n: NRoot[T], o: Order[T], s: Signed[T], t: Trig[T]): (T, T)
def asTuple: (T, T)
def asin(implicit f: Field[T], n: NRoot[T], o: Order[T], t: Trig[T], s0: Signed[T]): Complex[T]
def atan(implicit f: Field[T], o: Order[T], r: NRoot[T], s: Signed[T], t: Trig[T]): Complex[T]
override def byteValue: Byte
Definition Classes
def ceil(implicit o: IsReal[T]): Complex[T]
def complexSignum(implicit f: Field[T], n: NRoot[T], o: Order[T], s: Signed[T]): Complex[T]

This implements sgn(z), which (except for z=0) observes:

This implements sgn(z), which (except for z=0) observes:

sgn(z) = z / abs(z) = abs(z) / z

def conjugate(implicit f: CommutativeRing[T]): Complex[T]
def cos(implicit f: Field[T], t: Trig[T]): Complex[T]
def cosh(implicit f: Field[T], t: Trig[T]): Complex[T]
override def equals(that: Any): Boolean
Definition Classes
Equals -> Any
def eqv(b: Complex[T])(implicit o: Eq[T]): Boolean
def exp(implicit f: Field[T], t: Trig[T]): Complex[T]
def floor(implicit o: IsReal[T]): Complex[T]
override def hashCode: Int
Definition Classes
Any
def isImaginary(implicit s: Signed[T]): Boolean
def isReal(implicit s: Signed[T]): Boolean
final override def isValidInt: Boolean
Definition Classes
def isZero(implicit s: Signed[T]): Boolean
def log(implicit f: Field[T], n: NRoot[T], o: Order[T], t: Trig[T], s: Signed[T]): Complex[T]
override def longValue: Long
Definition Classes
def neqv(b: Complex[T])(implicit o: Eq[T]): Boolean
def norm(implicit f: Field[T], n: NRoot[T], o: Order[T], s: Signed[T]): T
def nroot(k: Int)(implicit f: Field[T], n: NRoot[T], o: Order[T], s: Signed[T], t: Trig[T]): Complex[T]
def pow(e: T)(implicit f: Field[T], n: NRoot[T], o: Order[T], s: Signed[T], t: Trig[T]): Complex[T]
def pow(b: Int)(implicit f: Field[T], n: NRoot[T], o: Order[T], s: Signed[T], t: Trig[T]): Complex[T]
def pow(b: Complex[T])(implicit f: Field[T], n: NRoot[T], o: Order[T], s: Signed[T], t: Trig[T]): Complex[T]
def round(implicit o: IsReal[T]): Complex[T]
override def shortValue: Short
Definition Classes
def sin(implicit f: Field[T], t: Trig[T]): Complex[T]
def sinh(implicit f: Field[T], t: Trig[T]): Complex[T]
def sqrt(implicit f: Field[T], n0: NRoot[T], o: Order[T], s: Signed[T]): Complex[T]
def tan(implicit f: Field[T], t: Trig[T]): Complex[T]
def tanh(implicit f: Field[T], t: Trig[T]): Complex[T]
def toQuaternion(implicit ev: AdditiveMonoid[T]): Quaternion[T]
override def toString: String
Definition Classes
Any
def unary_-(implicit r: CommutativeRing[T]): Complex[T]