Safe Haskell | None |
---|---|
Language | Haskell2010 |
Algebra.Bridge.Singular.Syntax
Synopsis
- class IsMonomialOrder n ord => SingularOrder n ord where
- singularOrder :: q n -> p ord -> Text
- class (PrettyCoeff r, CoeffRing r) => SingularCoeff r where
- parseSingularCoeff :: Parser r
- prettySingularCoeff :: Int -> r -> ShowSCoeff
- coeffType :: proxy r -> RingCoeffSpec
- type IsSingularPolynomial poly = (IsOrderedPolynomial poly, SingularCoeff (Coefficient poly), SingularOrder (Arity poly) (MOrder poly))
- data SingularExpr poly where
- SingVar :: Text -> SingularExpr poly
- SingFunction :: Text -> [SingularExpr poly] -> SingularExpr poly
- SingInfix :: SingularExpr poly -> Text -> SingularExpr poly -> SingularExpr poly
- SingList :: [SingularExpr poly] -> SingularExpr poly
- SingIdeal :: [SingularExpr poly] -> SingularExpr poly
- SingPolynomial :: poly -> SingularExpr poly
- SingCoeff :: Coefficient poly -> SingularExpr poly
- SingVerbatim :: Text -> SingularExpr poly
- SingRing :: RingSpec -> SingularExpr poly
- data RingSpec where
- RingSpec :: SingularOrder n ord => RingCoeffSpec -> SNat n -> proxy ord -> RingSpec
- type SingularLibrary = Text
- type SingularOption = Text
- data RingCoeffSpec
- toRingSpec :: IsSingularPolynomial poly => proxy poly -> RingSpec
- class PrettySingular a where
- prettySingular :: a -> Text
- prettySingularPolynomial :: IsSingularPolynomial poly => poly -> Text
- funE :: Text -> [SingularExpr poly] -> SingularExpr poly
- coeffE :: Coefficient poly -> SingularExpr poly
- polyE :: poly -> SingularExpr poly
- binE :: Text -> SingularExpr poly -> SingularExpr poly -> SingularExpr poly
- listE :: [SingularExpr poly] -> SingularExpr poly
- idealE :: [SingularExpr poly] -> SingularExpr poly
- idealE' :: Ideal poly -> SingularExpr poly
- verbE :: Text -> SingularExpr poly
- varE :: Text -> SingularExpr poly
- data SingularCommand where
- SingExpr :: IsSingularPolynomial poly => SingularExpr poly -> SingularCommand
- SingDeclOnly :: SingularType -> Text -> SingularCommand
- SingDeclAssign :: IsSingularPolynomial poly => SingularType -> Text -> SingularExpr poly -> SingularCommand
- SingAssign :: IsSingularPolynomial poly => Text -> SingularExpr poly -> SingularCommand
- SingLibrary :: Text -> SingularCommand
- SingVerbD :: Text -> SingularCommand
- Directive :: Text -> SingularCommand
- data SingularType
- newtype SingularProgramM a = SingularProgramM (Writer [SingularCommand] a)
- type SingularProgram = SingularProgramM ()
- exprC :: IsSingularPolynomial poly => SingularExpr poly -> SingularProgram
- declOnlyC :: SingularType -> Text -> SingularProgram
- declC :: IsSingularPolynomial poly => SingularType -> Text -> SingularExpr poly -> SingularProgramM (SingularExpr poly)
- letC :: IsSingularPolynomial poly => Text -> SingularExpr poly -> SingularProgram
- idealC' :: IsSingularPolynomial poly => Text -> Ideal poly -> SingularProgramM (SingularExpr poly)
- idealC :: IsSingularPolynomial poly => Text -> [SingularExpr poly] -> SingularProgramM (SingularExpr poly)
- ringC :: IsSingularPolynomial poly => Text -> proxy poly -> SingularProgramM (SingularExpr poly)
- polyC :: IsSingularPolynomial poly => Text -> poly -> SingularProgramM (SingularExpr poly)
- libC :: Text -> SingularProgram
- optionC :: SingularOption -> SingularProgram
- printC :: IsSingularPolynomial poly => SingularExpr poly -> SingularProgram
- directC :: Text -> SingularProgram
Documentation
class IsMonomialOrder n ord => SingularOrder n ord where Source #
Methods
singularOrder :: q n -> p ord -> Text Source #
Instances
KnownNat n => SingularOrder n Grevlex Source # | |
Defined in Algebra.Bridge.Singular.Syntax Methods singularOrder :: q n -> p Grevlex -> Text Source # | |
KnownNat n => SingularOrder n Lex Source # | |
Defined in Algebra.Bridge.Singular.Syntax Methods singularOrder :: q n -> p Lex -> Text Source # | |
(SingularOrder n o1, SingularOrder m o2, KnownNat m, KnownNat n, (n + m) ~ k) => SingularOrder k (ProductOrder n m o1 o2) Source # | |
Defined in Algebra.Bridge.Singular.Syntax Methods singularOrder :: q k -> p (ProductOrder n m o1 o2) -> Text Source # |
class (PrettyCoeff r, CoeffRing r) => SingularCoeff r where Source #
Minimal complete definition
Methods
parseSingularCoeff :: Parser r Source #
prettySingularCoeff :: Int -> r -> ShowSCoeff Source #
coeffType :: proxy r -> RingCoeffSpec Source #
Instances
SingularCoeff Integer Source # | |
Defined in Algebra.Bridge.Singular.Syntax Methods parseSingularCoeff :: Parser Integer Source # prettySingularCoeff :: Int -> Integer -> ShowSCoeff Source # coeffType :: proxy Integer -> RingCoeffSpec Source # | |
SingularCoeff Rational Source # | |
Defined in Algebra.Bridge.Singular.Syntax Methods parseSingularCoeff :: Parser Rational Source # prettySingularCoeff :: Int -> Rational -> ShowSCoeff Source # coeffType :: proxy Rational -> RingCoeffSpec Source # | |
KnownNat p => SingularCoeff (F p) Source # | |
Defined in Algebra.Bridge.Singular.Syntax Methods parseSingularCoeff :: Parser (F p) Source # prettySingularCoeff :: Int -> F p -> ShowSCoeff Source # coeffType :: proxy (F p) -> RingCoeffSpec Source # |
type IsSingularPolynomial poly = (IsOrderedPolynomial poly, SingularCoeff (Coefficient poly), SingularOrder (Arity poly) (MOrder poly)) Source #
Polynomial type which can be encoded to/decoded from singular polynomials.
data SingularExpr poly where Source #
Constructors
SingVar :: Text -> SingularExpr poly | |
SingFunction :: Text -> [SingularExpr poly] -> SingularExpr poly | |
SingInfix :: SingularExpr poly -> Text -> SingularExpr poly -> SingularExpr poly | |
SingList :: [SingularExpr poly] -> SingularExpr poly | |
SingIdeal :: [SingularExpr poly] -> SingularExpr poly | |
SingPolynomial :: poly -> SingularExpr poly | |
SingCoeff :: Coefficient poly -> SingularExpr poly | |
SingVerbatim :: Text -> SingularExpr poly | |
SingRing :: RingSpec -> SingularExpr poly |
Instances
Constructors
RingSpec :: SingularOrder n ord => RingCoeffSpec -> SNat n -> proxy ord -> RingSpec |
Instances
PrettySingular RingSpec Source # | |
Defined in Algebra.Bridge.Singular.Syntax Methods prettySingular :: RingSpec -> Text Source # |
type SingularLibrary = Text Source #
type SingularOption = Text Source #
data RingCoeffSpec Source #
Constructors
RealCoeff | |
ComplexCoeff | |
IntegerCoeff | |
Char Natural |
Instances
toRingSpec :: IsSingularPolynomial poly => proxy poly -> RingSpec Source #
class PrettySingular a where Source #
Methods
prettySingular :: a -> Text Source #
Instances
PrettySingular SingularCommand Source # | |
Defined in Algebra.Bridge.Singular.Syntax Methods prettySingular :: SingularCommand -> Text Source # | |
PrettySingular SingularType Source # | |
Defined in Algebra.Bridge.Singular.Syntax Methods prettySingular :: SingularType -> Text Source # | |
PrettySingular RingSpec Source # | |
Defined in Algebra.Bridge.Singular.Syntax Methods prettySingular :: RingSpec -> Text Source # | |
PrettySingular RingCoeffSpec Source # | |
Defined in Algebra.Bridge.Singular.Syntax Methods prettySingular :: RingCoeffSpec -> Text Source # | |
a ~ () => PrettySingular (SingularProgramM a) Source # | |
Defined in Algebra.Bridge.Singular.Syntax Methods prettySingular :: SingularProgramM a -> Text Source # | |
IsSingularPolynomial poly => PrettySingular (SingularExpr poly) Source # | |
Defined in Algebra.Bridge.Singular.Syntax Methods prettySingular :: SingularExpr poly -> Text Source # |
prettySingularPolynomial :: IsSingularPolynomial poly => poly -> Text Source #
funE :: Text -> [SingularExpr poly] -> SingularExpr poly Source #
coeffE :: Coefficient poly -> SingularExpr poly Source #
polyE :: poly -> SingularExpr poly Source #
binE :: Text -> SingularExpr poly -> SingularExpr poly -> SingularExpr poly Source #
listE :: [SingularExpr poly] -> SingularExpr poly Source #
idealE :: [SingularExpr poly] -> SingularExpr poly Source #
idealE' :: Ideal poly -> SingularExpr poly Source #
verbE :: Text -> SingularExpr poly Source #
varE :: Text -> SingularExpr poly Source #
data SingularCommand where Source #
Constructors
SingExpr :: IsSingularPolynomial poly => SingularExpr poly -> SingularCommand | |
SingDeclOnly :: SingularType -> Text -> SingularCommand | |
SingDeclAssign :: IsSingularPolynomial poly => SingularType -> Text -> SingularExpr poly -> SingularCommand | |
SingAssign :: IsSingularPolynomial poly => Text -> SingularExpr poly -> SingularCommand | |
SingLibrary :: Text -> SingularCommand | |
SingVerbD :: Text -> SingularCommand | |
Directive :: Text -> SingularCommand |
Instances
PrettySingular SingularCommand Source # | |
Defined in Algebra.Bridge.Singular.Syntax Methods prettySingular :: SingularCommand -> Text Source # |
data SingularType Source #
Instances
Eq SingularType Source # | |
Defined in Algebra.Bridge.Singular.Syntax | |
Ord SingularType Source # | |
Defined in Algebra.Bridge.Singular.Syntax Methods compare :: SingularType -> SingularType -> Ordering # (<) :: SingularType -> SingularType -> Bool # (<=) :: SingularType -> SingularType -> Bool # (>) :: SingularType -> SingularType -> Bool # (>=) :: SingularType -> SingularType -> Bool # max :: SingularType -> SingularType -> SingularType # min :: SingularType -> SingularType -> SingularType # | |
Read SingularType Source # | |
Defined in Algebra.Bridge.Singular.Syntax Methods readsPrec :: Int -> ReadS SingularType # readList :: ReadS [SingularType] # | |
Show SingularType Source # | |
Defined in Algebra.Bridge.Singular.Syntax Methods showsPrec :: Int -> SingularType -> ShowS # show :: SingularType -> String # showList :: [SingularType] -> ShowS # | |
PrettySingular SingularType Source # | |
Defined in Algebra.Bridge.Singular.Syntax Methods prettySingular :: SingularType -> Text Source # |
newtype SingularProgramM a Source #
Constructors
SingularProgramM (Writer [SingularCommand] a) |
Instances
type SingularProgram = SingularProgramM () Source #
exprC :: IsSingularPolynomial poly => SingularExpr poly -> SingularProgram Source #
declOnlyC :: SingularType -> Text -> SingularProgram Source #
declC :: IsSingularPolynomial poly => SingularType -> Text -> SingularExpr poly -> SingularProgramM (SingularExpr poly) Source #
letC :: IsSingularPolynomial poly => Text -> SingularExpr poly -> SingularProgram Source #
idealC' :: IsSingularPolynomial poly => Text -> Ideal poly -> SingularProgramM (SingularExpr poly) Source #
idealC :: IsSingularPolynomial poly => Text -> [SingularExpr poly] -> SingularProgramM (SingularExpr poly) Source #
ringC :: IsSingularPolynomial poly => Text -> proxy poly -> SingularProgramM (SingularExpr poly) Source #
polyC :: IsSingularPolynomial poly => Text -> poly -> SingularProgramM (SingularExpr poly) Source #
libC :: Text -> SingularProgram Source #
printC :: IsSingularPolynomial poly => SingularExpr poly -> SingularProgram Source #
directC :: Text -> SingularProgram Source #