variable-precision-0.2.1: variable-precision floating point

PortabilityDeriveDataTypeable, GeneralizedNewtypeDeriving, Rank2Types
Stabilityunstable
Maintainerclaudiusmaximus@goto10.org
Safe HaskellNone

Numeric.VariablePrecision.Complex

Description

Newtype wrapper around Complex. When both of Complex and this module need to be imported, use qualified imports.

Synopsis

Documentation

(.+) :: NaturalNumber p => VFloat p -> VFloat p -> VComplex pSource

Alike to :+, constructs a complex number from a real part and an imaginary part.

(.*) :: NaturalNumber p => VFloat p -> VComplex p -> VComplex pSource

Real-complex multiplication.

(*.) :: NaturalNumber p => VComplex p -> VFloat p -> VComplex pSource

Complex-real multiplication.

withComplex :: (Complex (VFloat p) -> Complex (VFloat q)) -> VComplex p -> VComplex qSource

Lift an operation on Complex to one on VComplex.

mapComplex :: (RealFloat a, RealFloat b) => (a -> b) -> Complex a -> Complex bSource

Apply a function to both components of a complex number.

realPart :: NaturalNumber p => VComplex p -> VFloat pSource

Real part.

imagPart :: NaturalNumber p => VComplex p -> VFloat pSource

Imaginary part.

magnitude :: NaturalNumber p => VComplex p -> VFloat pSource

Magnitude.

magnitude2 :: NaturalNumber p => VComplex p -> VFloat pSource

Magnitude squared.

sqr :: NaturalNumber p => VComplex p -> VComplex pSource

Complex square.

polar :: NaturalNumber p => VComplex p -> (VFloat p, VFloat p)Source

Polar form.

cis :: NaturalNumber p => VFloat p -> VComplex pSource

Unit at phase.

mkPolar :: NaturalNumber p => VFloat p -> VFloat p -> VComplex pSource

From polar form.

magnitude2' :: RealFloat r => Complex r -> rSource

Magnitude squared.

sqr' :: RealFloat r => Complex r -> Complex rSource

Complex square.

data DComplex Source

A concrete format suitable for storage or wire transmission.

Constructors

DComplex 

Fields

dRealPart :: !DFloat
 
dImagPart :: !DFloat
 

fromDComplex :: NaturalNumber p => DComplex -> Maybe (VComplex p)Source

Thaw a DComplex. Results in Nothing on precision mismatch.

withDComplex :: DComplex -> (forall p. NaturalNumber p => Maybe (VComplex p) -> r) -> rSource

Thaw a DComplex to its natural precision. Nothing is passed on precision mismatch between real and imaginary parts.