Пример #1
0
class ArtinLfunction(Lfunction):
    """Class representing the Artin L-function

    Compulsory parameters: dimension, conductor, tim_index

    """

    def __init__(self, dimension, conductor, tim_index, **args):
        constructor_logger(self, args)

        from lmfdb.math_classes import ArtinRepresentation

        self.artin = ArtinRepresentation(dimension, conductor, tim_index)

        self.title = "L function for an Artin representation of dimension " + str(dimension) + \
            ", conductor " + str(conductor)

        self.motivic_weight = 0
        self.degree = self.artin.dimension()
        self.coefficient_type = 0

        if self.degree == 1:
            self.coefficient_period = Integer(self.artin.conductor())
            self.dirichlet_coefficients = self.artin.coefficients_list(upperbound=self.coefficient_period)
        else:
            self.coefficient_period = 0
            self.dirichlet_coefficients = self.artin.coefficients_list(upperbound=1000)

        # self.Q_fe = Integer(self.artin.conductor())/float(math.pi)**int(self.degree)
        self.Q_fe = sqrt(Integer(self.artin.conductor()) * 1. / float(math.pi) ** int(self.degree))
        self.sign = self.artin.root_number()
        self.kappa_fe = self.artin.kappa_fe()
        self.lambda_fe = self.artin.lambda_fe()
        self.poles_L = self.artin.poles()
        self.residues_L = self.artin.residues()
        self.poles = self.artin.completed_poles()
        self.residues = self.artin.completed_residues()
        self.level = self.artin.conductor()
        self.selfdual = self.artin.selfdual()
        self.primitive = self.artin.primitive()
        self.langlands = self.artin.langlands()
        self.mu_fe = self.artin.mu_fe()
        self.nu_fe = self.artin.nu_fe()

        self.credit = 'Sage, lcalc, and data precomputed in Magma by Tim Dokchitser'
        self.citation = ''
        self.support = "Support by Paul-Olivier Dehaye"

        self.texname = "L(s)"  # default name.  will be set later, for most L-functions
        self.texnamecompleteds = "\\Lambda(s)"  # default name.  will be set later, for most L-functions
        if self.selfdual:
            self.texnamecompleted1ms = "\\Lambda(1-s)"  # default name.  will be set later, for most L-functions
        else:
            self.texnamecompleted1ms = "\\overline{\\Lambda(1-\\overline{s})}"  # default name.  will be set later, for most L-functions
        self.generateSageLfunction()

    def Ltype(self):
        return "artin"