grisette-0.11.0.0: Symbolic evaluation as a library
Copyright(c) Sirui Lu 2024
LicenseBSD-3-Clause (see the LICENSE file)
Maintainersiruilu@cs.washington.edu
StabilityExperimental
PortabilityGHC only
Safe HaskellNone
LanguageHaskell2010

Grisette.Internal.Unified.UnifiedFP

Description

 
Synopsis

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 #

Get a unified floating point type. Resolves to FP in C mode, and SymFP in S mode.

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

Instances details
ValidFP eb sb => UnifiedFPImpl 'C FP eb sb (FP eb sb) FPRoundingMode Source # 
Instance details

Defined in Grisette.Internal.Internal.Impl.Unified.UnifiedFP

Associated Types

type GetFP 'C 
Instance details

Defined in Grisette.Internal.Internal.Impl.Unified.UnifiedFP

type GetFP 'C = FP
type GetFPRoundingMode 'C 
Instance details

Defined in Grisette.Internal.Internal.Impl.Unified.UnifiedFP

ValidFP eb sb => UnifiedFPImpl 'S SymFP eb sb (SymFP eb sb) SymFPRoundingMode Source # 
Instance details

Defined in Grisette.Internal.Internal.Impl.Unified.UnifiedFP

Associated Types

type GetFP 'S 
Instance details

Defined in Grisette.Internal.Internal.Impl.Unified.UnifiedFP

type GetFP 'S = SymFP
type GetFPRoundingMode 'S 
Instance details

Defined in Grisette.Internal.Internal.Impl.Unified.UnifiedFP

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

Instances details
UnifiedFPImpl mode (GetFP mode) eb sb (GetFP mode eb sb) (GetFPRoundingMode mode) => UnifiedFP mode eb sb Source # 
Instance details

Defined in Grisette.Internal.Internal.Impl.Unified.UnifiedFP

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

Instances details
(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 # 
Instance details

Defined in Grisette.Internal.Internal.Impl.Unified.UnifiedFP

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

Instances details
(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 # 
Instance details

Defined in Grisette.Internal.Internal.Impl.Unified.UnifiedFP