Dieses Modul stellt die zentrale Typklasse Field
fuer Koerper
zur Verfuegung.
- class IntegralDomain a ⇒ Field a where
- recip ∷ a → Maybe a
- (/) ∷ Field a ⇒ a → a → a
- newtype F a = F {
- unF ∷ a
- props_fieldAxioms ∷ (Field a, Eq a, Arbitrary a, Show a) ⇒ Proxy a → [Property]
- check_Field ∷ IO ()
Documentation
class IntegralDomain a ⇒ Field a where
Klasse fuer Typen, die Koerper repraesentieren. Ein Koerper ist fuer uns ein (kommutativer) Ring, der folgendes Zusatzaxiom erfuellt:
Fuer jedes Ringelement x gilt entweder, dass x = 0, oder x ist invertierbar.
Somit sind Koerper dieser Definition nach stets diskret.
recip ∷ a → Maybe a
Entscheidet, ob das gegebene Koerperelement null ist, und falls nein, berechnet sein Inverses.
Field ComplexRational | |
(IntegralDomain a, Integral a) ⇒ Field (Ratio a) | |
Field a ⇒ Field (F a) | |
Field a ⇒ Field (ER a) | |
(RingMorphism m, Field (Domain m), HasAnnihilatingPolynomials (Domain m), NormedRing (Domain m), HasMagnitudeZeroTest (Codomain m), PseudoField (Codomain m), HasDenseSubset (Codomain m), NormedRing (DenseSubset (Codomain m)), Field (DenseSubset (Codomain m))) ⇒ Field (Alg m) | |
(ReifyIrreduciblePoly p, Field (BaseRing p)) ⇒ Field (SE p) |
Syntaktischer Zucker, um bequemer Divisionen formulieren zu koennen. Ist der Divisor null, wird eine Laufzeitausnahme geworfen.
newtype F a
Dummytyp, um ueberlappende Instanzdeklarationen vermeiden zu koennen.
Functor F | |
Eq a ⇒ Eq (F a) | |
(Fractional a, Field a) ⇒ Fractional (F a) | |
(Num a, Field a) ⇒ Num (F a) | |
Ord a ⇒ Ord (F a) | |
(Show a, Field a) ⇒ Show (F a) | |
Arbitrary a ⇒ Arbitrary (F a) | |
HasFloatingApprox a ⇒ HasFloatingApprox (F a) | |
HasConjugation a ⇒ HasConjugation (F a) | |
HasRationalEmbedding a ⇒ HasRationalEmbedding (F a) | |
HasTestableAssociatedness a ⇒ HasTestableAssociatedness (F a) | |
OrderedRing a ⇒ OrderedRing (F a) | |
IntegralDomain a ⇒ IntegralDomain (F a) | |
Ring a ⇒ Ring (F a) | |
NormedRing a ⇒ NormedRing (F a) | |
Field a ⇒ Field (F a) | |
Field a ⇒ EuclideanRing (F a) | |
Field a ⇒ HasAnnihilatingPolynomials (F a) |
props_fieldAxioms ∷ (Field a, Eq a, Arbitrary a, Show a) ⇒ Proxy a → [Property]
check_Field ∷ IO ()