MyNixOS website logo
Description

Equivariant CSM classes of coincident root loci.

This library contians a set of function to compute, among others, the GL(2)-equivariant Chern-Schwartz-MacPherson classes of coincident root loci, which are subvarieties of the space of unordered n-tuples of points in the complex projective line. To such an n-tuples we can associate a partition of n given by the multiplicities of the distinct points; this stratifies the set of all n-tuples, and we call these strata "coincident root loci". This package is supplementary software for a forthcoming paper.

Characteristic classes of coincident root loci

Coincident root loci (or discriminant strata) are subsets of the space of homogeneous polynomials in two variables defined by root multiplicities: A nonzero degree n polynomial has n roots in the complex projective line P^1, but some of these can coincide, which gives us a partition of n. Hence for each partition lambda we get a set of polynomials (those with root multiplicities given by lambda), which together stratify the space of these polynomials, which (modulo multiplying by scalars) is P^n. These are quasi-projective varieties, invariant under the action of GL(2); their closures are highly singular projective varieties, making them a good example for studying invariants of singular varieties.

This package contains a number of different algorithms to compute invariants and characteristic classes of these varieties:

  • degree
  • Euler characteristic
  • the fundamental class in equivariant cohomology
  • Chern-Schwartz-MacPherson (CSM) class, Segre-SM class
  • equivariant CSM class
  • Hirzebruch Chi-y genus
  • Todd class, motivic Hirzebruch class
  • motivic Chern class
  • equivariant motivic Chern class

Some of the algorithms are implemented in Mathematica instead of (or in addition to) Haskell.

Another (better organized) Mathematica implementation is available at https://github.com/bkomuves/mathematica-packages.

Example usage

For example if you want to know what is the equivariant CSM class of the (open) loci corresponding to the partition [2,2,1,1], you can use the following piece of code:

{-# LANGUAGE TypeApplications #-}

import Math.Combinat.Partitions
import Math.RootLoci.Algebra.SymmPoly ( AB )
import Math.Algebra.Polynomial.Pretty ( pretty )
import Math.RootLoci.CSM.Equivariant.Umbral

csm ps = umbralOpenCSM @AB (mkPartition ps)

main = do
  putStrLn $ pretty $ csm [2,2,1,1]
Metadata

Version

0.3

Platforms (75)

    Darwin
    FreeBSD
    Genode
    GHCJS
    Linux
    MMIXware
    NetBSD
    none
    OpenBSD
    Redox
    Solaris
    WASI
    Windows
Show all
  • aarch64-darwin
  • aarch64-genode
  • aarch64-linux
  • aarch64-netbsd
  • aarch64-none
  • aarch64_be-none
  • arm-none
  • armv5tel-linux
  • armv6l-linux
  • armv6l-netbsd
  • armv6l-none
  • armv7a-darwin
  • armv7a-linux
  • armv7a-netbsd
  • armv7l-linux
  • armv7l-netbsd
  • avr-none
  • i686-cygwin
  • i686-darwin
  • i686-freebsd
  • i686-genode
  • i686-linux
  • i686-netbsd
  • i686-none
  • i686-openbsd
  • i686-windows
  • javascript-ghcjs
  • loongarch64-linux
  • m68k-linux
  • m68k-netbsd
  • m68k-none
  • microblaze-linux
  • microblaze-none
  • microblazeel-linux
  • microblazeel-none
  • mips-linux
  • mips-none
  • mips64-linux
  • mips64-none
  • mips64el-linux
  • mipsel-linux
  • mipsel-netbsd
  • mmix-mmixware
  • msp430-none
  • or1k-none
  • powerpc-netbsd
  • powerpc-none
  • powerpc64-linux
  • powerpc64le-linux
  • powerpcle-none
  • riscv32-linux
  • riscv32-netbsd
  • riscv32-none
  • riscv64-linux
  • riscv64-netbsd
  • riscv64-none
  • rx-none
  • s390-linux
  • s390-none
  • s390x-linux
  • s390x-none
  • vc4-none
  • wasm32-wasi
  • wasm64-wasi
  • x86_64-cygwin
  • x86_64-darwin
  • x86_64-freebsd
  • x86_64-genode
  • x86_64-linux
  • x86_64-netbsd
  • x86_64-none
  • x86_64-openbsd
  • x86_64-redox
  • x86_64-solaris
  • x86_64-windows