Ask Your Question

Lolina's profile - activity

2019-03-02 06:59:23 -0500 received badge  Notable Question (source)
2016-11-21 04:47:39 -0500 received badge  Notable Question (source)
2016-03-21 08:38:48 -0500 received badge  Popular Question (source)
2015-10-02 23:50:10 -0500 received badge  Popular Question (source)
2013-11-16 09:07:58 -0500 asked a question Why do messages "// ** redefining ..." show up when computing the dimension of an ideal?

I was receiving these weird messages when running the following Sage code - but not every time: When I executed it again, it just went through without any messages.

S.<x1,x2,x3,x4,x5,x6,x7,x8,x9,x10,x11> =PolynomialRing(GF(2),11)
dims=Set([])
s=0
for j in newdivs:
   s=s+1
   if mod(s,10)==0:
       print(s)
   aux=j
   sdivs=[]
   for k in aux:
      if k((0,0,0,0,0,0,0,0))==0:
          sdivs.append(k)
   sdivs.append(f1)
   sdivs.append(f2)
   sdivs.append(1+x9*(1+x3))
   sdivs.append(1+x10*(1+x6))
   sdivs.append(1+x11*(1+x4*x5))
   IS=S.ideal(sdivs)
   di=IS.dimension()
   if di>4:
       print di
   dims=dims.union(Set([di]))

(To understand the code: f1 and f2 are two very long polynomials in S, and newdivs contains 500 of the factors of the 2x2-minors of the Jacobian matrix of f1 and f2...) The first time I run it, I got this output:

// ** redefining # **
// ** redefining P **
// ** redefining i **
// ** redefining method **
// ** redefining Method **
// ** redefining k **
// ** redefining Minpoly **
// ** redefining was_minpoly **
// ** redefining Qideal **
// ** redefining was_qring **
// ** redefining BRlist **
// ** redefining ord_P **
// ** redefining ordstr_P **
// ** redefining nvars_P **
// ** redefining npars_P **
// ** redefining w **
// ** redefining neg **
// ** redefining opt **
// ** redefining s_opt **
// ** redefining p_opt **
// ** redefining algorithm **
// ** redefining conversion **
// ** redefining partovar **
// ** redefining order **
// ** redefining direct **
10
20
...

The second time, the messages with "// ** redefining" didn't show up anymore. But maybe it is important to not ignore those messages, so what do they mean?

Thanks in advance!

2013-09-02 05:30:40 -0500 answered a question Why does jordan_form not work over inexact rings?

Yes, it's the "right" result, so

[   d0     1     0    0]
[    0    d0     1    0]
[    0     0    d0    1]
[    0     0     0   d0]

@nbruin: So you are saying that in general there shouldn't be a problem in my case?

2013-08-29 06:37:31 -0500 answered a question Why does jordan_form not work over inexact rings?

Thanks for the answer. I want to compute [the transformation matrix to] the Jordan normal forms of block matrices whose blocks are of the form

[   d0    d1    d2   d3]
[    0    d0    d1   d2]
[    0     0    d0   d1]
[    0     0     0   d0]

(i.e. an upper triangular Toeplitz matrix whose entries are variables or 0).

2013-08-28 23:44:04 -0500 received badge  Editor (source)
2013-08-28 23:43:36 -0500 asked a question Why does jordan_form not work over inexact rings?

Hi,

Given a matrix M with entries (variables) in SR, I needed to compute the transformation matrix to a jordan form of M.

I ended up copying the code in "jordan_form" and "_jordan_form_vector_in_difference" from "matrix2.pyx", deleting the "if (base_ring is None and not self.base_ring().is_exact()) ..." and replacing "evals = A.charpoly().roots()" by

    eigenvects=A.eigenvectors_right()
    evals=[(eigenvect[0],eigenvect[2]) for eigenvect in eigenvects]

So far it seems to work. Can this go wrong? Or could one just change the original code in matrix2.pyx, and allow inexact rings?

Thanks for your help!