def __getattr__(self, name):
        """
        EXAMPLE::

            sage: groebner = sage.libs.singular.ff.groebner
            sage: groebner
            groebner (singular function)

            sage: primdecSY = sage.libs.singular.ff.primdec__lib.primdecSY
            sage: primdecSY
            primdecSY (singular function)
        """
        if name.startswith("_"):
            raise AttributeError(
                "Singular Function Factory has no attribute '%s'" % name)

        try:
            return singular_function(name)
        except NameError:
            if name.endswith("__lib"):
                name = name[:-5]
                lib(name + ".lib")
                return SingularFunctionFactory()
            else:
                raise NameError("function or package '%s' unknown." % (name))
Beispiel #2
0
    def __getattr__(self, name):
        """
        EXAMPLE::

            sage: import sage.libs.singular.function_factory
            sage: groebner = sage.libs.singular.function_factory.ff.groebner
            sage: groebner
            groebner (singular function)

            sage: import sage.libs.singular.function_factory
            sage: primdecSY = sage.libs.singular.function_factory.ff.primdec__lib.primdecSY
            sage: primdecSY
            primdecSY (singular function)
        """
        if name.startswith("_"):
            raise AttributeError("Singular Function Factory has no attribute '%s'" % name)

        try:
            return singular_function(name)
        except NameError:
            if name.endswith("__lib"):
                name = name[:-5]
                lib(name + ".lib")
                return SingularFunctionFactory()
            else:
                raise NameError("function or package '%s' unknown." % (name))
def radical_singular(I):
    r""" Return the radical of this ideal.

    INPUT:

    - ``I`` -- an ideal of a polynomial ring over `\mathbb{Z}`

    OUTPUT: the radical of `I`

    """
    singular_lib('primdecint.lib')
    return singular_function('radicalZ')(I)
def minimal_ass_primes_singular(I):
    r""" Return the list of minimal associated primes of an ideal.

    INPUT:

    - ``I`` -- an ideal of a polynomial ring over `\mathbb{Z}`

    OUTPUT: the list of all minimal associated prime ideals of `I`

    """
    singular_lib('primdecint.lib')
    R = I.ring()
    return [R.ideal(G) for G in singular_function('minAssZ')(I)]
def horizontal_minimal_ass_primes(I):
    r""" Return the list of horizontal minimal associated primes of I.

    INPUT:

    - ``I`` -- an ideal of a polynomial ring over `\mathbb{Z}`

    OUTPUT: the list of all horizontal minimal associated prime ideals of `I`.
    Here a prime ideal `P` of a polynomial ring `R = \mathbb{Z}[x_1,\ldots,x_n]`
    is called *horizontal* if `P\cap\mathbb{Z}=(0)`.

    """
    singular_lib('primdecint.lib')
    R = I.ring()
    P_list = [R.ideal(G) for G in singular_function('minAssZ')(I)]
    return [P for P in P_list if P.elimination_ideal(R.gens()).is_zero()]
Beispiel #6
0
                 gcd(
                     self.brackets_dict[(f, g)],
                     self.brackets_dict[(f, h)],
                 )).degree() == 0)
        for a in l:
            return a
        return None

    def weight_of_basis(self):
        f, g, _ = self.relatively_prime_3forms_maybe()
        c = self.brackets_dict[(f, g)]
        c_deg = degree(c)
        return (f[1] - c_deg, g[1] - c_deg)


smodule = singular_function("module")
sideal = singular_function("ideal")
squotient = singular_function("quotient")
smres = singular_function("mres")
slist = singular_function("list")
sintersect = singular_function("intersect")
ssyz = singular_function("syz")


@cached_function
def load_min_resol_prim(i, parity):
    fname = join(DATA_DIR, "str%s_%s_cand.sobj" % (i, parity))
    return load(fname)


@cached_function
                M.add_multiple_of_row(u, i, -b)

    #print "\nafter: \n", M

    Mt = M[:, -MI.nrows():]
    Mres = M[:, :M0.ncols()]

    assert (Mt * (apply_swap(M0, swapped)) == Mres)

    return Mres, Mt, tuple(swapped)


from sage.libs.singular.function import singular_function
from sage.libs.singular.function import lib as singular_lib
singular_lib('primdecint.lib')
primdecZ = singular_function('primdecZ')
radicalZ = singular_function('radicalZ')


def primdec_ZZ(I):
    R = I.ring()
    P = primdecZ(I)
    V = [R.ideal(X[0]) for X in P]
    return V


def radical_ZZ(I):
    R = I.ring()
    r = radicalZ(I)
    return R.ideal(r)
        M.set_row_to_multiple_of_row(u, u, a)
        M.add_multiple_of_row(u,i,-b)

  #print "\nafter: \n", M

  Mt = M[:,- MI.nrows():]
  Mres = M[:,:M0.ncols()]

  assert(Mt*(apply_swap(M0,swapped)) == Mres)

  return Mres,Mt,tuple(swapped)

from sage.libs.singular.function import singular_function
from sage.libs.singular.function import lib as singular_lib
singular_lib('primdecint.lib')
primdecZ = singular_function('primdecZ')
radicalZ = singular_function('radicalZ')

def primdec_ZZ(I):
  R = I.ring()
  P = primdecZ(I)
  V = [ R.ideal(X[0]) for X in P]
  return V

def radical_ZZ(I):
  R = I.ring()
  r = radicalZ(I)
  return R.ideal(r)

class FoundAttack(Exception):
  def __init__(self, value):