HaskellForMaths-0.4.8: Combinatorics, group theory, commutative algebra, non-commutative algebra

Safe Haskell | None
Language | Haskell98

Math.Combinatorics.FiniteGeometry

Description

Constructions of the finite geometries AG(n,Fq) and PG(n,Fq), their points, lines and flats, together with the incidence graphs between points and lines.

Synopsis

- ptsAG :: Int -> [a] -> [[a]]
- ptsPG :: Num a => Int -> [a] -> [[a]]
- pnf :: (Fractional a, Eq a) => [a] -> [a]
- ispnf :: (Num a, Eq a) => [a] -> Bool
- closureAG :: (Num a, Ord a, FinSet a) => [[a]] -> [[a]]
- lineAG :: (FinSet a, Num a, Ord a) => [[a]] -> [[a]]
- closurePG :: (Num a, Ord a, FinSet a) => [[a]] -> [[a]]
- linePG :: (FinSet a, Num a, Ord a) => [[a]] -> [[a]]
- qtorial :: (Integral b, Integral a) => b -> a -> a
- qnomial :: (Integral b, Integral a) => b -> b -> a -> a
- numFlatsPG :: (Integral a, Integral b) => b -> a -> b -> a
- numFlatsAG :: (Integral a, Integral b) => b -> a -> b -> a
- qtorials :: Integral b => b -> [b]
- qnomials :: Num t => t -> [[t]]
- data ZeroOneStar
  - = Zero
  - | One
  - | Star
- rrefs :: Int -> Int -> [[[ZeroOneStar]]]
- flatsPG :: (Eq a, Num a) => Int -> [a] -> Int -> [[[a]]]
- flatsAG :: (Eq a, Num a) => Int -> [a] -> Int -> [[[a]]]
- linesPG :: (Eq a, Num a) => Int -> [a] -> [[[a]]]
- linesAG :: (Eq a, Num a) => Int -> [a] -> [[[a]]]
- linesAG1 :: (Ord a, Num a, FinSet a) => Int -> [a] -> [[[a]]]
- linesAG2 :: (FinSet a, Ord a, Num a) => Int -> [a] -> [[[a]]]
- incidenceGraphPG :: (Num a, Ord a, FinSet a) => Int -> [a] -> Graph (Either [a] [[a]])
- incidenceGraphAG :: (Num a, Ord a, FinSet a) => Int -> [a] -> Graph (Either [a] [[a]])
- orderGL :: (Integral b, Num a) => b -> a -> a
- orderAff :: (Num a, Integral b) => b -> a -> a
- orderPGL :: (Integral b, Integral a) => b -> a -> a
- heawood :: Graph Integer

# Documentation

ptsAG :: Int -> [a] -> [[a]] Source #

ptsAG n fq returns the points of the affine geometry AG(n,Fq), where fq are the elements of Fq

ptsPG :: Num a => Int -> [a] -> [[a]] Source #

ptsPG n fq returns the points of the projective geometry PG(n,Fq), where fq are the elements of Fq

pnf :: (Fractional a, Eq a) => [a] -> [a] Source #

ispnf :: (Num a, Eq a) => [a] -> Bool Source #

closureAG :: (Num a, Ord a, FinSet a) => [[a]] -> [[a]] Source #

Given a list of points in AG(n,Fq), return their closure, the smallest flat containing them

lineAG :: (FinSet a, Num a, Ord a) => [[a]] -> [[a]] Source #

closurePG :: (Num a, Ord a, FinSet a) => [[a]] -> [[a]] Source #

Given a set of points in PG(n,Fq), return their closure, the smallest flat containing them

linePG :: (FinSet a, Num a, Ord a) => [[a]] -> [[a]] Source #

qtorial :: (Integral b, Integral a) => b -> a -> a Source #

qnomial :: (Integral b, Integral a) => b -> b -> a -> a Source #

numFlatsPG :: (Integral a, Integral b) => b -> a -> b -> a Source #

numFlatsAG :: (Integral a, Integral b) => b -> a -> b -> a Source #

qtorials :: Integral b => b -> [b] Source #

qnomials :: Num t => t -> [[t]] Source #

data ZeroOneStar Source #

Constructors

Zero |
One |
Star |

Instances

Eq ZeroOneStar Source # |
Methods (==) :: ZeroOneStar -> ZeroOneStar -> Bool # (/=) :: ZeroOneStar -> ZeroOneStar -> Bool #
Show ZeroOneStar Source # |
Methods showsPrec :: Int -> ZeroOneStar -> ShowS # show :: ZeroOneStar -> String # showList :: [ZeroOneStar] -> ShowS #

rrefs :: Int -> Int -> [[[ZeroOneStar]]] Source #

flatsPG :: (Eq a, Num a) => Int -> [a] -> Int -> [[[a]]] Source #

`flatsPG n fq k` returns the k-flats in PG(n,Fq), where fq are the elements of Fq. The returned flats are represented as matrices in reduced row echelon form, the rows of which are the points that generate the flat. The full set of points in the flat can be recovered by calling `closurePG`

flatsAG :: (Eq a, Num a) => Int -> [a] -> Int -> [[[a]]] Source #

flatsAG n fq k returns the k-flats in AG(n,Fq), where fq are the elements of Fq.

linesPG :: (Eq a, Num a) => Int -> [a] -> [[[a]]] Source #

The lines (1-flats) in PG(n,fq)

linesAG :: (Eq a, Num a) => Int -> [a] -> [[[a]]] Source #

The lines (1-flats) in AG(n,fq)

linesAG1 :: (Ord a, Num a, FinSet a) => Int -> [a] -> [[[a]]] Source #

linesAG2 :: (FinSet a, Ord a, Num a) => Int -> [a] -> [[[a]]] Source #

incidenceGraphPG :: (Num a, Ord a, FinSet a) => Int -> [a] -> Graph (Either [a] [[a]]) Source #

Incidence graph of PG(n,fq), considered as an incidence structure between points and lines

incidenceGraphAG :: (Num a, Ord a, FinSet a) => Int -> [a] -> Graph (Either [a] [[a]]) Source #

Incidence graph of AG(n,fq), considered as an incidence structure between points and lines

orderGL :: (Integral b, Num a) => b -> a -> a Source #

orderAff :: (Num a, Integral b) => b -> a -> a Source #

orderPGL :: (Integral b, Integral a) => b -> a -> a Source #

heawood :: Graph Integer Source #