sigma-ij-0.2.0.2: Thom polynomials of second order Thom-Boardman singularities

Math.ThomPoly.Shared

Description

Shared code

Synopsis

# Rings and fields

data AnyRing Source #

Constructors

 CoeffRing r => AnyRing (Proxy r)

solveAny :: Problem problem => AnyRing -> Batch -> problem -> FreeMod Schur Integer Source #

class (Eq a, Num a, Show a, Determinant a, Eq (FieldOfFractions a), Show (FieldOfFractions a), Fractional (FieldOfFractions a), Pretty (Term a)) => CoeffRing a where Source #

Minimal complete definition

Associated Types

type FieldOfFractions a :: * Source #

Instances

 Source # Associated Types Methods Source # Associated Types Methods Source # Associated Types Methods

# Thom polynomial problems

class Problem problem where Source #

Minimal complete definition

Methods

baseFName :: problem -> String Source #

calcStats :: problem -> Stats Source #

solve :: CoeffRing coeff => Proxy coeff -> Batch -> problem -> FreeMod Schur (FieldOfFractions coeff) Source #

Instances

 Source # Methodssolve :: CoeffRing coeff => Proxy * coeff -> Batch -> SigmaIJ -> FreeMod Schur (FieldOfFractions coeff) Source # Source # Methodssolve :: CoeffRing coeff => Proxy * coeff -> Batch -> SigmaI -> FreeMod Schur (FieldOfFractions coeff) Source #

fullFName :: Problem problem => Batch -> problem -> FilePath Source #

solveAndProject :: forall problem coeff. (Problem problem, CoeffRing coeff) => Proxy coeff -> Batch -> problem -> FreeMod Schur Integer Source #

data Stats Source #

"Statistics" of a problem

Constructors

 Stats Fields_codim0 :: !Intcodimension (for m=n)_mu :: !Intalgebraic multiplicity (minus 1)_maxPairs :: !Intmaximum number of possible non-zero coefficients

Instances

 Source # MethodsshowsPrec :: Int -> Stats -> ShowS #show :: Stats -> String #showList :: [Stats] -> ShowS #

# Batches

data Batch Source #

Constructors

 Batch Fields_whichBatch :: !Int _nBatches :: !Int

Instances

 Source # MethodsshowsPrec :: Int -> Batch -> ShowS #show :: Batch -> String #showList :: [Batch] -> ShowS #

selectBatch :: Batch -> [a] -> [a] Source #

# Misc

type Term coeff = FreeMod Symbol coeff Source #

alpha :: CoeffRing coeff => Int -> Term coeff Source #

newtype Schur Source #

Constructors

 Schur Partition

Instances

 Source # Methods(==) :: Schur -> Schur -> Bool #(/=) :: Schur -> Schur -> Bool # Source # Methods(<) :: Schur -> Schur -> Bool #(<=) :: Schur -> Schur -> Bool #(>) :: Schur -> Schur -> Bool #(>=) :: Schur -> Schur -> Bool #max :: Schur -> Schur -> Schur #min :: Schur -> Schur -> Schur # Source # MethodsshowsPrec :: Int -> Schur -> ShowS #show :: Schur -> String #showList :: [Schur] -> ShowS # Source # Methods

# Evaluate

evaluate :: (Num a, FreeModule x) => (Base x -> Coeff x -> a) -> x -> a Source #

# Signed partitions

partitionPairs :: Int -> Int -> Int -> Int -> [(Partition, Partition)] Source #

Pairs of partition with weights of fix difference, given by the third parameter, ofs=|pos|-|neg|, and complementary length; the first giving the positive deviation compared to the box of (m-n+i)*i, and the second giving the negative one. Picture:

        m-n+i                    n-i
+------------------+----------------+---------+
|                  |          _____/          |
i |      lambda      |  pos____/                |
|                  |    /                     |
|                  |   /                      |
mu +................._|__/                       | mu
|              __/ |       C lambda ~         |
|          ___/    |                          |
|         /  neg   |                          |
+--------+---------+--------------------------+
m

The length ("width" in combinat-speak, unfortunately) of the partitions are less than mu; the "height" (first element) of pos is at most (n-i), the height of neg is unlimited (well, it is limited by (mu-1)*(n-i) of course).

Actually, in the case of sigmaij, length(pos)<=i and length(neg)<=mu-i !

posnegPairToPartition :: (Int, Int) -> (Partition, Partition) -> Partition Source #

Given the parameters (m-n+i,mu) (pos,neg), this computes lambda in the picture above.