Portability | DeriveDataTypeable, GeneralizedNewtypeDeriving, StandaloneDeriving, FlexibleInstances, FlexibleContexts, MultiParamTypeClasses, Rank2Types, UndecidableInstances |
---|---|
Stability | unstable |
Maintainer | claude@mathr.co.uk |
Safe Haskell | None |
Complex numbers with variable precision.
- module Data.Complex.Generic
- data VComplex t p
- toComplex :: VComplex t p -> Complex (t p)
- fromComplex :: Complex (t p) -> VComplex t p
- withComplex :: (Complex (t p) -> Complex (t q)) -> VComplex t p -> VComplex t q
- recodeComplex :: (RealFloat a, RealFloat b) => Complex a -> Complex b
- scaleComplex :: RealFloat r => Int -> Complex r -> Complex r
- scaleVComplex :: NaturalNumber p => Int -> VComplex VFloat p -> VComplex VFloat p
- toComplexDFloat :: NaturalNumber p => VComplex VFloat p -> Complex DFloat
- toComplexDFixed :: NaturalNumber p => VComplex VFixed p -> Complex DFixed
- fromComplexDFloat :: NaturalNumber p => Complex DFloat -> Maybe (VComplex VFloat p)
- fromComplexDFixed :: NaturalNumber p => Complex DFixed -> Maybe (VComplex VFixed p)
- withComplexDFloat :: Complex DFloat -> (forall p. NaturalNumber p => Maybe (VComplex VFloat p) -> r) -> r
- withComplexDFixed :: Complex DFixed -> (forall p. NaturalNumber p => Maybe (VComplex VFixed p) -> r) -> r
Documentation
module Data.Complex.Generic
Newtype wrapper around Complex
so that instances can be written
for HasPrecision
and VariablePrecision
.
VariablePrecision (VComplex VFixed) | |
VariablePrecision (VComplex VFloat) | |
HasPrecision (VComplex VFixed) | |
HasPrecision (VComplex VFloat) | |
Normed (VComplex VFloat) | |
Eq (t p) => Eq (VComplex t p) | |
Floating (Complex (t p)) => Floating (VComplex t p) | |
Fractional (Complex (t p)) => Fractional (VComplex t p) | |
Num (Complex (t p)) => Num (VComplex t p) | |
NaturalNumber p => Read (VComplex VFixed p) | |
NaturalNumber p => Read (VComplex VFloat p) | |
NaturalNumber p => Show (VComplex VFixed p) | |
NaturalNumber p => Show (VComplex VFloat p) | |
NaturalNumber p => ComplexRect (VComplex VFixed p) (VFixed p) | |
NaturalNumber p => ComplexRect (VComplex VFloat p) (VFloat p) | |
NaturalNumber p => ComplexPolar (VComplex VFloat p) (VFloat p) |
recodeComplex :: (RealFloat a, RealFloat b) => Complex a -> Complex bSource
Much like mapComplex
recodeFloat
.
scaleComplex :: RealFloat r => Int -> Complex r -> Complex rSource
Much like mapComplex
scaleFloat
.
scaleVComplex :: NaturalNumber p => Int -> VComplex VFloat p -> VComplex VFloat pSource
Much like withComplex
scaleComplex'
.
toComplexDFloat :: NaturalNumber p => VComplex VFloat p -> Complex DFloatSource
Freeze a 'VComplex VFloat'.
toComplexDFixed :: NaturalNumber p => VComplex VFixed p -> Complex DFixedSource
Freeze a 'VComplex VFixed'.
fromComplexDFloat :: NaturalNumber p => Complex DFloat -> Maybe (VComplex VFloat p)Source
Thaw a 'Complex DFloat'. Results in Nothing
on precision mismatch.
fromComplexDFixed :: NaturalNumber p => Complex DFixed -> Maybe (VComplex VFixed p)Source
Thaw a 'Complex DFixed'. Results in Nothing
on precision mismatch.
withComplexDFloat :: Complex DFloat -> (forall p. NaturalNumber p => Maybe (VComplex VFloat p) -> r) -> rSource
Thaw a 'Complex DFloat' to its natural precision. Nothing
is passed on
precision mismatch between real and imaginary parts.
withComplexDFixed :: Complex DFixed -> (forall p. NaturalNumber p => Maybe (VComplex VFixed p) -> r) -> rSource
Thaw a 'Complex DFixed' to its natural precision. Nothing
is passed on
precision mismatch between real and imaginary parts.