Safe Haskell | None |
---|---|
Language | Haskell2010 |
Shared code
- data AnyRing = CoeffRing r => AnyRing (Proxy r)
- solveAny :: Problem problem => AnyRing -> Batch -> problem -> FreeMod Schur Integer
- ringZZ :: AnyRing
- ringQQ :: AnyRing
- ringZp :: AnyRing
- class (Eq a, Num a, Show a, Determinant a, Eq (FieldOfFractions a), Show (FieldOfFractions a), Fractional (FieldOfFractions a), Pretty (Term a)) => CoeffRing a where
- type FieldOfFractions a :: *
- ratToInt :: Rational -> Maybe Integer
- unsafeProject :: CoeffRing c => Proxy c -> FieldOfFractions c -> Integer
- class Problem problem where
- fullFName :: Problem problem => Batch -> problem -> FilePath
- solveAndProject :: forall problem coeff. (Problem problem, CoeffRing coeff) => Proxy coeff -> Batch -> problem -> FreeMod Schur Integer
- data Stats = Stats {}
- data Batch = Batch {
- _whichBatch :: !Int
- _nBatches :: !Int
- defaultBatch :: Batch
- selectBatch :: Batch -> [a] -> [a]
- batchSuffix :: Batch -> String
- type Term coeff = FreeMod Symbol coeff
- alpha :: CoeffRing coeff => Int -> Term coeff
- newtype Schur = Schur Partition
- evaluate :: (Num a, FreeModule x) => (Base x -> Coeff x -> a) -> x -> a
- partitionPairs :: Int -> Int -> Int -> Int -> [(Partition, Partition)]
- posnegPairToPartition :: (Int, Int) -> (Partition, Partition) -> Partition
Rings and fields
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 #
type FieldOfFractions a :: * Source #
unsafeProject :: CoeffRing c => Proxy c -> FieldOfFractions c -> Integer Source #
Thom polynomial problems
solveAndProject :: forall problem coeff. (Problem problem, CoeffRing coeff) => Proxy coeff -> Batch -> problem -> FreeMod Schur Integer Source #
"Statistics" of a problem
Batches
defaultBatch :: Batch Source #
selectBatch :: Batch -> [a] -> [a] Source #
batchSuffix :: Batch -> String Source #
Misc
Evaluate
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 !