Copyright | (c) Sirui Lu 2024 |
---|---|
License | BSD-3-Clause (see the LICENSE file) |
Maintainer | siruilu@cs.washington.edu |
Stability | Experimental |
Portability | GHC only |
Safe Haskell | None |
Language | Haskell2010 |
Grisette.Internal.Unified.UnifiedFP
Description
Synopsis
- class (UnifiedConRep fp, UnifiedSymRep fp, ConType fp ~ FP eb sb, SymType fp ~ SymFP eb sb, UnifiedBasicPrim mode fp, Floating fp, SymIEEEFPTraits fp, IEEEFPConstants fp, IEEEFPOp fp, IEEEFPRoundingOp fp rd, UnifiedFromIntegral mode (GetInteger mode) fp, IEEEFPToAlgReal (GetAlgReal mode) fp rd, IEEEFPConvertible (GetInteger mode) fp rd, ConSymConversion (FP eb sb) (SymFP eb sb) fp, fpn ~ GetFP mode, fp ~ fpn eb sb, rd ~ GetFPRoundingMode mode) => UnifiedFPImpl (mode :: EvalModeTag) (fpn :: Nat -> Nat -> Type) (eb :: Nat) (sb :: Nat) fp rd | fpn eb sb -> fp rd, fp -> fpn eb sb rd, rd -> fpn, rd eb sb -> fp where
- type GetFP (mode :: EvalModeTag) = (f :: Nat -> Nat -> Type) | f -> mode
- type GetFPRoundingMode (mode :: EvalModeTag) = (r :: Type) | r -> mode
- class UnifiedFPImpl mode (GetFP mode) eb sb (GetFP mode eb sb) (GetFPRoundingMode mode) => UnifiedFP (mode :: EvalModeTag) (eb :: Nat) (sb :: Nat)
- class (SafeUnifiedFPImpl mode (GetFP mode) eb sb (GetFP mode eb sb) (GetFPRoundingMode mode) m, UnifiedSafeFromFP mode NotRepresentableFPError (GetInteger mode) (GetFP mode eb sb) (GetFPRoundingMode mode) m) => SafeUnifiedFP (mode :: EvalModeTag) (eb :: Nat) (sb :: Nat) (m :: Type -> Type)
- class (forall (eb :: Nat) (sb :: Nat). ValidFP eb sb => UnifiedFP mode eb sb, forall (eb :: Nat) (sb :: Nat) (m :: Type -> Type). (ValidFP eb sb, UnifiedBranching mode m, MonadError NotRepresentableFPError m) => SafeUnifiedFP mode eb sb m) => AllUnifiedFP (mode :: EvalModeTag)
Documentation
class (UnifiedConRep fp, UnifiedSymRep fp, ConType fp ~ FP eb sb, SymType fp ~ SymFP eb sb, UnifiedBasicPrim mode fp, Floating fp, SymIEEEFPTraits fp, IEEEFPConstants fp, IEEEFPOp fp, IEEEFPRoundingOp fp rd, UnifiedFromIntegral mode (GetInteger mode) fp, IEEEFPToAlgReal (GetAlgReal mode) fp rd, IEEEFPConvertible (GetInteger mode) fp rd, ConSymConversion (FP eb sb) (SymFP eb sb) fp, fpn ~ GetFP mode, fp ~ fpn eb sb, rd ~ GetFPRoundingMode mode) => UnifiedFPImpl (mode :: EvalModeTag) (fpn :: Nat -> Nat -> Type) (eb :: Nat) (sb :: Nat) fp rd | fpn eb sb -> fp rd, fp -> fpn eb sb rd, rd -> fpn, rd eb sb -> fp Source #
Implementation for UnifiedFP
.
Associated Types
type GetFP (mode :: EvalModeTag) = (f :: Nat -> Nat -> Type) | f -> mode Source #
type GetFPRoundingMode (mode :: EvalModeTag) = (r :: Type) | r -> mode Source #
Get a unified floating point rounding mode type. Resolves to
FPRoundingMode
in C
mode, and
SymFPRoundingMode
in S
mode.
Instances
ValidFP eb sb => UnifiedFPImpl 'C FP eb sb (FP eb sb) FPRoundingMode Source # | |||||||||
Defined in Grisette.Internal.Internal.Impl.Unified.UnifiedFP Associated Types
| |||||||||
ValidFP eb sb => UnifiedFPImpl 'S SymFP eb sb (SymFP eb sb) SymFPRoundingMode Source # | |||||||||
Defined in Grisette.Internal.Internal.Impl.Unified.UnifiedFP Associated Types
|
class UnifiedFPImpl mode (GetFP mode) eb sb (GetFP mode eb sb) (GetFPRoundingMode mode) => UnifiedFP (mode :: EvalModeTag) (eb :: Nat) (sb :: Nat) Source #
Evaluation mode with unified FP
type.
Instances
UnifiedFPImpl mode (GetFP mode) eb sb (GetFP mode eb sb) (GetFPRoundingMode mode) => UnifiedFP mode eb sb Source # | |
class (SafeUnifiedFPImpl mode (GetFP mode) eb sb (GetFP mode eb sb) (GetFPRoundingMode mode) m, UnifiedSafeFromFP mode NotRepresentableFPError (GetInteger mode) (GetFP mode eb sb) (GetFPRoundingMode mode) m) => SafeUnifiedFP (mode :: EvalModeTag) (eb :: Nat) (sb :: Nat) (m :: Type -> Type) Source #
This class is needed as constraint in user code prior to GHC 9.2.1.
See the notes in EvalMode
.
Instances
(SafeUnifiedFPImpl mode (GetFP mode) eb sb (GetFP mode eb sb) (GetFPRoundingMode mode) m, UnifiedSafeFromFP mode NotRepresentableFPError (GetInteger mode) (GetFP mode eb sb) (GetFPRoundingMode mode) m) => SafeUnifiedFP mode eb sb m Source # | |
class (forall (eb :: Nat) (sb :: Nat). ValidFP eb sb => UnifiedFP mode eb sb, forall (eb :: Nat) (sb :: Nat) (m :: Type -> Type). (ValidFP eb sb, UnifiedBranching mode m, MonadError NotRepresentableFPError m) => SafeUnifiedFP mode eb sb m) => AllUnifiedFP (mode :: EvalModeTag) Source #
Evaluation mode with unified floating point type.
Instances
(forall (eb :: Nat) (sb :: Nat). ValidFP eb sb => UnifiedFP mode eb sb, forall (eb :: Nat) (sb :: Nat) (m :: Type -> Type). (ValidFP eb sb, UnifiedBranching mode m, MonadError NotRepresentableFPError m) => SafeUnifiedFP mode eb sb m) => AllUnifiedFP mode Source # | |