[sage-support] Re: Converting a Singular list to a Sage list

2011-06-04 Thread Simon King
Hi Francisco,

On 4 Jun., 19:00, Francisco Botana  wrote:
> How can I convert a Singular list to a Sage list?

It *should* be working (if L is a list in the Singular pexpect
interface) with L.sage().

However, it doesn't at all. I am really surprised that it doesn't,
because such a feature should have been implemented a long time ago.
Perhaps other people can point us to a solution? For now I can only
offer part of a solution, as sketched below, hoping that you consider
a special case for which the partial solution is enough.

First, L.sage() does not work, e.g., in the following example:

sage: singular.eval('ring R')
sage: L = singular('ringlist(R)')
sage: L
[1]:
   32003
[2]:
   [1]:
  x
   [2]:
  y
   [3]:
  z
[3]:
   [1]:
  [1]:
 dp
  [2]:
 1,1,1
   [2]:
  [1]:
 C
  [2]:
 0
[4]:
   _[1]=0
sage: L.sage()

sage: L[1].sage() # that's just an integer!

sage: L[2][1].sage() # that's just a string!!



> I can get a Sage string (using singular.eval(T)) but it would be more
> convenient getting a (structured) Sage list. Is there a command for
> doing so?

I think string parsing is not a good idea. It seems better to ask for
the type of each item on the list, and then uses a specialised method.
Note that there are specialised methods such as sage_poly() for
polynomials. However, this requires that you have already a ring in
Sage that matches the basering in Singular.

Anyway, back to the example:

sage: L[1].typeof()
int
sage: Integer(L[1])
32003
sage: L[2][1].typeof()
string
sage: repr(L[2][1])
'x'
sage: L[3].typeof()
list
sage: L[3][1].typeof()
list
sage: L[3][1][1].typeof()
string
sage: repr(L[3][1][1])
'dp'

Etc.

For  ideals, one may try to do

sage: singular.eval('ring r = (9,a),(x,y,z),dp')
sage: I = singular.ideal(['x^2','y*z','z+x'])
# First, convert the base ring into Sage
# One needs to do special cases for different types of base rings:
# - integers
# - rational field
# - field extension
# Here, we have a finite field, and may do
sage: RS = singular('basering')
sage: br = GF(*repr(RS.charstr()).split(','))
sage: br
Finite Field in a of size 3^2
sage: vars = [repr(singular.var(i)) for i in range(1,RS.nvars()+1)]
sage: vars
['x', 'y', 'z']
sage: P = br[tuple(vars)]
sage: P
Multivariate Polynomial Ring in x, y, z over Finite Field in a of size
3^2

And then, there is again a case of a feature that should work since a
long time. As I have mentioned above, there is a method sage_poly,
taking a ring as a additional argument. So, why does it not work?

sage: I[1]
x2
sage: I[1].sage_poly(P)
...
TypeError:

There's even no error message.

I suppose what happens here is that I[1].sage_poly(P) tries to use the
string representation, which is a bad thing to do with "x2".

Anyway, IMHO it *should* work to do
sage: P*[p.sage_poly(P) for p in I]  # not implemented
Ideal (x^2, x*z, x + z) of Multivariate Polynomial Ring in x, y, z
over Finite Field in a of size 3^2

In the example that you gave, the string representation of polynomials
seems fine (i.e., x^2, not x2). So, there is some hope that it works
for you.

Best regards,
Simon

-- 
To post to this group, send email to sage-support@googlegroups.com
To unsubscribe from this group, send email to 
sage-support+unsubscr...@googlegroups.com
For more options, visit this group at 
http://groups.google.com/group/sage-support
URL: http://www.sagemath.org


[sage-support] Confusion and question about "secure" switch to Sage notebook.

2011-06-04 Thread Chris Seberino
Notebook documentation mentions a boolean switch called "secure" for
SSL.

When I try to turn it on my notebook server, I get an error about a
domain Sage needs.

How exactly does this switch work and how does Sage want to do SSL?

In my limited experience, when I want SSL protection, I set up an
Apache proxy (mod_proxy) in front of my app running on localhost.
Obviously, if Sage's SSL worked that way then Sage would need more
info that just toggling a boolean called "secure" so it must be doing
things differently.

Please advise.

Sincerely,

cs

-- 
To post to this group, send email to sage-support@googlegroups.com
To unsubscribe from this group, send email to 
sage-support+unsubscr...@googlegroups.com
For more options, visit this group at 
http://groups.google.com/group/sage-support
URL: http://www.sagemath.org


[sage-support] Apache proxy in front of Sage notebook server works perfect until I turn on SSL.

2011-06-04 Thread Chris Seberino
Apache proxy in front of Sage notebook server works perfect until I
turn on SSL.

Different Apache configs give different Sage errors.

Is there something special required to do Sage with Apache SSL proxy?

cs

-- 
To post to this group, send email to sage-support@googlegroups.com
To unsubscribe from this group, send email to 
sage-support+unsubscr...@googlegroups.com
For more options, visit this group at 
http://groups.google.com/group/sage-support
URL: http://www.sagemath.org


[sage-support] Converting a Singular list to a Sage list

2011-06-04 Thread Francisco Botana

Hi,

How can I convert a Singular list to a Sage list?
For instance:
T is a Singular list with value

[1]:
   _[1]=1
[2]:
   _[1]=1
[3]:
   [1]:
  [1]:
 _[1]=0
  [2]:
 [1]:
_[1]=(x^2+y^2-4*y+3)
 [2]:
_[1]=(x^4+2*x^2*y^2-9*x^2+y^4-9*y^2+4*y+12)

I can get a Sage string (using singular.eval(T)) but it would be more 
convenient getting a (structured) Sage list. Is there a command for 
doing so?


Thanks.

--
To post to this group, send email to sage-support@googlegroups.com
To unsubscribe from this group, send email to 
sage-support+unsubscr...@googlegroups.com
For more options, visit this group at 
http://groups.google.com/group/sage-support
URL: http://www.sagemath.org