[sage-devel] Question to Martin Albrecht

2008-11-11 Thread Michel

Hi,

I have a system of 64 inhomogeneous linear equations with 781 unknowns
over the field of two elements.
I am looking for a solution with at most 38 non-zero unknowns.

Is there an efficient way to do this? Any references?

As you can guess the question is about reversing a hash, more
specifically a so-called Zobrist hash
function which is widely used in chess engines.

Regards,
Michel

--~--~-~--~~~---~--~~
To post to this group, send email to sage-devel@googlegroups.com
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at http://groups.google.com/group/sage-devel
URLs: http://www.sagemath.org
-~--~~~~--~~--~--~---



[sage-devel] Bug Day 16

2008-11-11 Thread William Stein

Hi,

Sage Bug Day 16 will be Thursday, November 13. Sign up now.

http://wiki.sagemath.org/bug16

For local Seattle people, some Sage devs are also meeting for lunch at 12pm
at Araya's.

 -- William



-- 
William Stein
Associate Professor of Mathematics
University of Washington
http://wstein.org

--~--~-~--~~~---~--~~
To post to this group, send email to sage-devel@googlegroups.com
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at http://groups.google.com/group/sage-devel
URLs: http://www.sagemath.org
-~--~~~~--~~--~--~---



[sage-devel] Re: Sage 3.2.rc0 released

2008-11-11 Thread mhampton

I got the same matrix_double_dense failure as J. Palmieri on intel
macs running 10.4 and 10.5, plus this one which only occured on the
10.5 machine:

sage -t  devel/sage/sage/calculus/wester.py
**
File "/Users/mh/sagestuff/sage-3.2.rc0/devel/sage/sage/calculus/
wester.py", line 261:
: [float(f(i/10)) for i in range(1,5)]
Expected:

[-0.00033670040754082975,
 -0.0027778004096620235,
 -0.00989099409140...,
 -0.025411145508414...]
Got:
[-0.00033670040754081587, -0.0027778004096621622,
-0.0098909940914039818, -0.025411145508414779]
**
1 items had failures:
   1 of 193 in __main__.example_0
***Test Failed*** 1 failures.


-M. Hampton

On Nov 11, 5:08 pm, Jaap Spies <[EMAIL PROTECTED]> wrote:
> mabshoff wrote:
>
> > Sources and a sage.math only binary can be found at
>
> >http://sage.math.washington.edu/home/mabshoff/release-cycles-3.2/
>
> On Fedora 9, 32 bits the one and only failure:
>
> sage -t  devel/sage/sage/combinat/root_system/weyl_characters.py*** *** 
> Error: TIMED OUT! *** ***
> *** *** Error: TIMED OUT! *** ***
>  [435.4 s]
>
> Surprising?
>
> Jaap
--~--~-~--~~~---~--~~
To post to this group, send email to sage-devel@googlegroups.com
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at http://groups.google.com/group/sage-devel
URLs: http://www.sagemath.org
-~--~~~~--~~--~--~---



[sage-devel] Re: Sage 3.2.rc0 released

2008-11-11 Thread Jaap Spies

mabshoff wrote:

> 
> Sources and a sage.math only binary can be found at
> 
> http://sage.math.washington.edu/home/mabshoff/release-cycles-3.2/
> 

On Fedora 9, 32 bits the one and only failure:

sage -t  devel/sage/sage/combinat/root_system/weyl_characters.py*** *** Error: 
TIMED OUT! *** ***
*** *** Error: TIMED OUT! *** ***
 [435.4 s]

Surprising?

Jaap


--~--~-~--~~~---~--~~
To post to this group, send email to sage-devel@googlegroups.com
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at http://groups.google.com/group/sage-devel
URLs: http://www.sagemath.org
-~--~~~~--~~--~--~---



[sage-devel] Re: Sage 3.2.rc0 released

2008-11-11 Thread John H Palmieri

> Expect some numerical noise doctest failures and some other related
> known issues. Please report issues here and check trac for existing
> tickets.

On an intel mac running 10.5 (after changing my stone-age shell :),
sage -testall has two or three problems:

the known numerical noise problem in wester.py (http://
trac.sagemath.org/sage_trac/ticket/4472)

an error in matrix_double_dense, which I couldn't find on trac (should
I create a ticket?):

sage -t  devel/sage/sage/matrix/matrix_double_dense.pyx
**
File "/Applications/sage/devel/sage/sage/matrix/
matrix_double_dense.pyx", line 444:
sage: ~A
Expected:
Traceback (most recent call last):
...
LinAlgError: singular matrix
Got:
[-4.50359962737e+15  9.00719925474e+15 -4.50359962737e+15]
[ 9.00719925474e+15 -1.80143985095e+16  9.00719925474e+15]
[-4.50359962737e+15  9.00719925474e+15 -4.50359962737e+15]
**
File "/Applications/sage/devel/sage/sage/matrix/
matrix_double_dense.pyx", line 909:
sage: max((U*S*V.transpose()-m).list())<1e-15 # check
Expected:
True
Got:
False
**
2 items had failures:
   1 of  11 in __main__.example_15
   1 of  27 in __main__.example_26
***Test Failed*** 2 failures.

I also got this:

[ERROR]:
sage.dsage.twisted.tests.test_remote.WorkerRemoteCallsTest.testremote_get_job

Traceback (most recent call last):
Failure: twisted.trial.util.DirtyReactorAggregateError: Reactor was
unclean.
Selectables:

---
Ran 52 tests in 14.794s

FAILED (errors=1, successes=52)
However, an ERROR occurred in the Distributed Sage unit tests.

  John


--~--~-~--~~~---~--~~
To post to this group, send email to sage-devel@googlegroups.com
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at http://groups.google.com/group/sage-devel
URLs: http://www.sagemath.org
-~--~~~~--~~--~--~---



[sage-devel] Re: Bug Day this Thursday?

2008-11-11 Thread William Stein

On Tue, Nov 11, 2008 at 1:00 PM, mabshoff <[EMAIL PROTECTED]> wrote:
>
> I know it is late, but will we do a Bug Day this Thursday as planned?
> Either way we should announce one for next Thursday now.
>

Yes, definitely, we'll have Bug Day Thursday as planned!
Mark your calendar.

William

> Cheers,
>
> Michael
> >
>



-- 
William Stein
Associate Professor of Mathematics
University of Washington
http://wstein.org

--~--~-~--~~~---~--~~
To post to this group, send email to sage-devel@googlegroups.com
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at http://groups.google.com/group/sage-devel
URLs: http://www.sagemath.org
-~--~~~~--~~--~--~---



[sage-devel] Bug Day this Thursday?

2008-11-11 Thread mabshoff

I know it is late, but will we do a Bug Day this Thursday as planned?
Either way we should announce one for next Thursday now.

Cheers,

Michael
--~--~-~--~~~---~--~~
To post to this group, send email to sage-devel@googlegroups.com
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at http://groups.google.com/group/sage-devel
URLs: http://www.sagemath.org
-~--~~~~--~~--~--~---



[sage-devel] Re: Sage 3.2.rc0 released

2008-11-11 Thread John H Palmieri

On Nov 11, 12:07 pm, mabshoff <[EMAIL PROTECTED]> wrote:
> On Nov 11, 12:02 pm, John H Palmieri <[EMAIL PROTECTED]> wrote:
>
>
>
> > On Nov 11, 11:57 am, Jaap Spies <[EMAIL PROTECTED]> wrote:
>
> > > John H Palmieri wrote:
> > > > On Nov 11, 4:24 am, mabshoff <[EMAIL PROTECTED]> wrote:
> > > >> Hello folks,
>
> > > >> here is 3.2.rc0 and I have to confess that I cheated: I did build this
> > > >> on numerous platforms before announcing here (if you hung out in IRC
> > > >> you knew about this release for about 6 hours now) and as it turns out
> > > >> my caution was justified. Doctesting is broken with this release
> > > >> unless you do the following:
>
> > > >>  ./sage -sh
> > > >>  cd local/bin
> > > >>  hg update -C
>
> > > > When I try to do the last line (on an intel mac running 10.5), I get
> > > > this:
>
> > > > abort: could not import module lookup!
>
> > > > Did I do something wrong?
>
> > > do:
>
> > > ./sage -sh
> > > cd local/bin
> > > ./hg update -C
>
> > Here's what happens:
>
> > (/Applications/sage) [11:26am]>> ./sage -sh
>
> > Starting subshell with Sage environment variables set.
> > Be sure to exit when you are done and do not do anything
> > with other copies of Sage!
>
> So far so good.
>
> > (/Applications/sage) [11:58am]>> cd local/bin
> > (...local/bin) [11:58am]>> ./hg update -C
> > abort: could not import module lookup!
>
> mmh - can you try without the "./" since hg is in $PATH.

I did that first, same problem.

> What shell
> are you using - even though this should not matter, but one never
> knows.

Oh, this is the problem.  I'm running tcsh (I got used to it years
ago, and keep deciding it's too much work to switch).  When I switch
to bash, everything works.


--~--~-~--~~~---~--~~
To post to this group, send email to sage-devel@googlegroups.com
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at http://groups.google.com/group/sage-devel
URLs: http://www.sagemath.org
-~--~~~~--~~--~--~---



[sage-devel] Re: Categories for the working programmer

2008-11-11 Thread Clement Pernet


>>  - Did anyone keep a list or graph of the desired categories from  
>> sage days 7?
>>For reference, the hierarchy for MuPAD-Combinat is available there:
>>http://mupad-combinat.sourceforge.net/Papers/Categories.pdf
> 
> I thought someone took a photo of it, but I don't know who.
> 
I think I have it:
http://picasaweb.google.com/lh/photo/Ol00Dod4hLflsFYJvATGDg
http://picasaweb.google.com/lh/photo/cs8RBuly--2sczGILu-I5w

Using the full resolution (zoom lens button) one can barely read every
node of the tree!

Clément

--~--~-~--~~~---~--~~
To post to this group, send email to sage-devel@googlegroups.com
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at http://groups.google.com/group/sage-devel
URLs: http://www.sagemath.org
-~--~~~~--~~--~--~---



[sage-devel] Re: Sage 3.2.rc0 released

2008-11-11 Thread mabshoff



On Nov 11, 12:02 pm, John H Palmieri <[EMAIL PROTECTED]> wrote:
> On Nov 11, 11:57 am, Jaap Spies <[EMAIL PROTECTED]> wrote:
>
>
>
> > John H Palmieri wrote:
> > > On Nov 11, 4:24 am, mabshoff <[EMAIL PROTECTED]> wrote:
> > >> Hello folks,
>
> > >> here is 3.2.rc0 and I have to confess that I cheated: I did build this
> > >> on numerous platforms before announcing here (if you hung out in IRC
> > >> you knew about this release for about 6 hours now) and as it turns out
> > >> my caution was justified. Doctesting is broken with this release
> > >> unless you do the following:
>
> > >>  ./sage -sh
> > >>  cd local/bin
> > >>  hg update -C
>
> > > When I try to do the last line (on an intel mac running 10.5), I get
> > > this:
>
> > > abort: could not import module lookup!
>
> > > Did I do something wrong?
>
> > do:
>
> > ./sage -sh
> > cd local/bin
> > ./hg update -C
>
> Here's what happens:
>
> (/Applications/sage) [11:26am]>> ./sage -sh
>
> Starting subshell with Sage environment variables set.
> Be sure to exit when you are done and do not do anything
> with other copies of Sage!

So far so good.

> (/Applications/sage) [11:58am]>> cd local/bin
> (...local/bin) [11:58am]>> ./hg update -C
> abort: could not import module lookup!

mmh - can you try without the "./" since hg is in $PATH. What shell
are you using - even though this should not matter, but one never
knows.

> > then
>
> > exit
> > make check
>
> As you might guess, doctesting fails at this point:
>
> ImportError: No module named sagedoctest
>
> Maybe I'll start over again from the tar file.

That will not work since the issue is in the tarball itself. I am on
my way home, so I cannot post an updated rc1 until about 18 hours from
now. But I will make sure the issue is gone in rc1.

>   John

Cheers,

Michael
--~--~-~--~~~---~--~~
To post to this group, send email to sage-devel@googlegroups.com
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at http://groups.google.com/group/sage-devel
URLs: http://www.sagemath.org
-~--~~~~--~~--~--~---



[sage-devel] Re: Sage 3.2.rc0 released

2008-11-11 Thread Jaap Spies

Jaap Spies wrote:
> John H Palmieri wrote:
>> On Nov 11, 4:24 am, mabshoff <[EMAIL PROTECTED]> wrote:
>>> Hello folks,
>>>
>>> here is 3.2.rc0 and I have to confess that I cheated: I did build this
>>> on numerous platforms before announcing here (if you hung out in IRC
>>> you knew about this release for about 6 hours now) and as it turns out
>>> my caution was justified. Doctesting is broken with this release
>>> unless you do the following:
>>>
>>>  ./sage -sh
>>>  cd local/bin
>>>  hg update -C
>> When I try to do the last line (on an intel mac running 10.5), I get
>> this:
>>
>> abort: could not import module lookup!
>>
>> Did I do something wrong?
>>
> 
> do:
> 
> ../sage -sh
> cd local/bin
> ../hg update -C
>

sorry typo

./hg update -C

Jaap



> then
> 
> exit
> make check
> 
> Jaap
> 
> 
> > 
> 


--~--~-~--~~~---~--~~
To post to this group, send email to sage-devel@googlegroups.com
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at http://groups.google.com/group/sage-devel
URLs: http://www.sagemath.org
-~--~~~~--~~--~--~---



[sage-devel] Re: Sage 3.2.rc0 released

2008-11-11 Thread John H Palmieri

On Nov 11, 11:57 am, Jaap Spies <[EMAIL PROTECTED]> wrote:
> John H Palmieri wrote:
> > On Nov 11, 4:24 am, mabshoff <[EMAIL PROTECTED]> wrote:
> >> Hello folks,
>
> >> here is 3.2.rc0 and I have to confess that I cheated: I did build this
> >> on numerous platforms before announcing here (if you hung out in IRC
> >> you knew about this release for about 6 hours now) and as it turns out
> >> my caution was justified. Doctesting is broken with this release
> >> unless you do the following:
>
> >>  ./sage -sh
> >>  cd local/bin
> >>  hg update -C
>
> > When I try to do the last line (on an intel mac running 10.5), I get
> > this:
>
> > abort: could not import module lookup!
>
> > Did I do something wrong?
>
> do:
>
> ./sage -sh
> cd local/bin
> ./hg update -C

Here's what happens:

(/Applications/sage) [11:26am]>> ./sage -sh

Starting subshell with Sage environment variables set.
Be sure to exit when you are done and do not do anything
with other copies of Sage!

(/Applications/sage) [11:58am]>> cd local/bin
(...local/bin) [11:58am]>> ./hg update -C
abort: could not import module lookup!

> then
>
> exit
> make check

As you might guess, doctesting fails at this point:

ImportError: No module named sagedoctest

Maybe I'll start over again from the tar file.

  John


--~--~-~--~~~---~--~~
To post to this group, send email to sage-devel@googlegroups.com
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at http://groups.google.com/group/sage-devel
URLs: http://www.sagemath.org
-~--~~~~--~~--~--~---



[sage-devel] Re: Sage 3.2.rc0 released

2008-11-11 Thread Jaap Spies

John H Palmieri wrote:
> On Nov 11, 4:24 am, mabshoff <[EMAIL PROTECTED]> wrote:
>> Hello folks,
>>
>> here is 3.2.rc0 and I have to confess that I cheated: I did build this
>> on numerous platforms before announcing here (if you hung out in IRC
>> you knew about this release for about 6 hours now) and as it turns out
>> my caution was justified. Doctesting is broken with this release
>> unless you do the following:
>>
>>  ./sage -sh
>>  cd local/bin
>>  hg update -C
> 
> When I try to do the last line (on an intel mac running 10.5), I get
> this:
> 
> abort: could not import module lookup!
> 
> Did I do something wrong?
> 

do:

./sage -sh
cd local/bin
./hg update -C

then

exit
make check

Jaap


--~--~-~--~~~---~--~~
To post to this group, send email to sage-devel@googlegroups.com
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at http://groups.google.com/group/sage-devel
URLs: http://www.sagemath.org
-~--~~~~--~~--~--~---



[sage-devel] Re: Sage 3.2.rc0 released

2008-11-11 Thread mabshoff



On Nov 11, 11:27 am, John H Palmieri <[EMAIL PROTECTED]> wrote:
> On Nov 11, 4:24 am, mabshoff <[EMAIL PROTECTED]> wrote:
>
> > Hello folks,
>
> > here is 3.2.rc0 and I have to confess that I cheated: I did build this
> > on numerous platforms before announcing here (if you hung out in IRC
> > you knew about this release for about 6 hours now) and as it turns out
> > my caution was justified. Doctesting is broken with this release
> > unless you do the following:
>
> >  ./sage -sh
> >  cd local/bin
> >  hg update -C
>
> When I try to do the last line (on an intel mac running 10.5), I get
> this:
>
> abort: could not import module lookup!


Hmm, this is strange to say the least. Could you post more of a
backtrace if there is one? In case you have a system wide hg (or one
from another Sage install) you could try to use that.

> Did I do something wrong?
>
>   John

Cheers,

Michael
--~--~-~--~~~---~--~~
To post to this group, send email to sage-devel@googlegroups.com
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at http://groups.google.com/group/sage-devel
URLs: http://www.sagemath.org
-~--~~~~--~~--~--~---



[sage-devel] Re: Sage 3.2.rc0 released

2008-11-11 Thread John H Palmieri

On Nov 11, 4:24 am, mabshoff <[EMAIL PROTECTED]> wrote:
> Hello folks,
>
> here is 3.2.rc0 and I have to confess that I cheated: I did build this
> on numerous platforms before announcing here (if you hung out in IRC
> you knew about this release for about 6 hours now) and as it turns out
> my caution was justified. Doctesting is broken with this release
> unless you do the following:
>
>  ./sage -sh
>  cd local/bin
>  hg update -C

When I try to do the last line (on an intel mac running 10.5), I get
this:

abort: could not import module lookup!

Did I do something wrong?

  John


--~--~-~--~~~---~--~~
To post to this group, send email to sage-devel@googlegroups.com
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at http://groups.google.com/group/sage-devel
URLs: http://www.sagemath.org
-~--~~~~--~~--~--~---



[sage-devel] Re: Binomial Ideals

2008-11-11 Thread Bjarke Hammersholt Roune

Hi Thomas,

I am interested in monomial ideal computations in Sage, and I'm very
open to discuss it, but I won't have time to really work on it until
after Christmas. When I did some work on this earlier, I did not find
any special monomial ideal classes. So in the interface to Frobby I
had to use the general polynomial ideal classes. This was just barely
acceptable because the only thing I did with them was to convert them
to internal data structures inside of Frobby (an external C++
library). It is clear that doing serious monomial ideal computations
directly inside of Sage will required specialized classes to be at all
efficient.

The features of Frobby are "large-chunk" computations on monomial
ideals, such as irreducible and primary decomposition of monomial
ideals. Frobby does not really offer suitable data structures for
general computations, other than those implemented in Frobby itself.
Of course Frobby has such data structures internally, but they are not
exposed in the library interface because as things stand this has not
been requested by anyone, and it would require some redesigning of the
internal data structures to make them suitable for general use.

Some work remains on the Frobby interface, as it does not expose
everything Frobby can do, which is something I'll be looking at after
Christmas.

It would be useful if you could identify the specific computations you
need to do on monomial ideals, and what specific computations you need
to do on binomial ideals. Then it will be more clear how well Sage
already supports what you need.

Also, Thomas, could you send me the error message you get when
building Frobby, along with information such as which OS you are
using?

Cheers
Bjarke Hammersholt Roune

--~--~-~--~~~---~--~~
To post to this group, send email to sage-devel@googlegroups.com
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at http://groups.google.com/group/sage-devel
URLs: http://www.sagemath.org
-~--~~~~--~~--~--~---



[sage-devel] Re: Merging Jon Hanke's quadratic forms code into Sage 3.x

2008-11-11 Thread mabshoff

Hi,

I have linked a diff for a first version from the ticket at

http://trac.sagemath.org/sage_trac/ticket/4470

It should not be considered anything final yet, i.e. the rename has
not been done yet. I am about to fly back, so hopefully in the next
day I will have a patch ready for the review process. The diff
requires 3.2.rc0 or higher due to potentially conflicting changes in
setup.py, but those can be easily resolved.

Cheers,

Michael
--~--~-~--~~~---~--~~
To post to this group, send email to sage-devel@googlegroups.com
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at http://groups.google.com/group/sage-devel
URLs: http://www.sagemath.org
-~--~~~~--~~--~--~---



[sage-devel] Re: Categories for the working programmer

2008-11-11 Thread David Kohel

Hi,

I should point out that the class hierarchy should not be confused
with the categories.
The latter are intended to model the mathematics.  In particular a
homomorphism in
the category of rings should satisfy f(x*y) = f(x)*f(y).  Each class
is assigned a default
category, but the idea is that one should be able to create a morphism
of sets between
objects which happen to be rings.  The domain and codomain would
presumably remain
objects in the category of rings and inherit from set objects,
although one could imagine
modifying the category field to reflect that these rings are intended
uniquely to be used
as set objects.  How to manage the metastructure of categories on top
of the class
hierarchy was never completely fleshed out.   In particular, it should
be possibly to
create new categories from old, such as pointed objects (X,x) whose
maps send X_1
to X_2 and x_1 to x_2.  The separation of categories from the class
hierarchy was just
the first step.

--David






--~--~-~--~~~---~--~~
To post to this group, send email to sage-devel@googlegroups.com
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at http://groups.google.com/group/sage-devel
URLs: http://www.sagemath.org
-~--~~~~--~~--~--~---



[sage-devel] Re: Binomial Ideals

2008-11-11 Thread Martin Albrecht

> Polynomials over Fields of Characteristic zero in the beginning. But the
> algorithms are formulated in the general setting. But all the
> applications that come to my mind are for characteristic 0.

okay, you'll get support for QQ and absolute number fields using libSingular. 
Relative number fields should also be do-able. 

> Probably this is different in Coding/Kryptotheory ?

We like characteristic two a lot here.

> >> Integer Lattices are all over the place with binomial ideals. Are there
> >> classes for integer lattices, or is someone working on such things?
> >
> > We have some lattice algorithms (LLL and BKZ) which act on integer
> > matrices:
> >
> > sage: A = random_matrix(ZZ, 10, 10)
> > sage: A.LLL()
> > sage: A.BKZ()
>
> Nice ...

It actually also is quite fast thanks to fpLLL and afaik the only publically 
available (open-source) implementation of BKZ in NTL.

Cheers,
Martin

-- 
name: Martin Albrecht
_pgp: http://pgp.mit.edu:11371/pks/lookup?op=get&search=0x8EF0DC99
_www: http://www.informatik.uni-bremen.de/~malb
_jab: [EMAIL PROTECTED]


--~--~-~--~~~---~--~~
To post to this group, send email to sage-devel@googlegroups.com
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at http://groups.google.com/group/sage-devel
URLs: http://www.sagemath.org
-~--~~~~--~~--~--~---



[sage-devel] Re: Binomial Ideals

2008-11-11 Thread Thomas Kahle

-BEGIN PGP SIGNED MESSAGE-
Hash: SHA1

Martin Albrecht wrote:
> On Tuesday 11 November 2008, Thomas Kahle wrote:
>> Dear all,
> 
> Hi [sage-devel] and CC Carlo Traverso who might find this discussion 
> relevant/.
> 
>> I would like to develop a program that does primary decomposition of
>> binomial ideals really fast.
>> Some hopefully useful algorithms are given in a '96 Paper by David
>> Eisenbud and Bernd Sturmfels. At least the second author is very
>> interested in this project and has many possible applications.
>> To make it fast one probably has to bring together existing software,
>> such as 4ti2 (www.4ti2.de), singular and new things. I think sage might
>> be a good platform, so here are some questions:
>>
>> Assume I wanted to derive a class binomialIdeal from e.g.
>> Mpolynomial_Ideal which uses specialized algorithms whenever possible
>> and falls back to singular if nothing special is available.
>> What are the things I should consider to make it fast and work well with
>> sage? 
> 
> Just to document this: We had a discussion about this off list and I raised 
> the concern that the exponent limit of Singular (2^16-1) might become an 
> issue. Thomas, doesn't think this will be relevant. If this is not an issue, 
> then inheriting from the _libsingular classes might be the way to go. What 
> base fields (rings?) are you interested in?

I have to rethink that statement, but in my applications typically the
number of variables is large (>=64) while the equations of the ideal
have small degree. On the other hand I actually have no idea what
happens to them during a "primdecGTZ computation" ...

Polynomials over Fields of Characteristic zero in the beginning. But the
algorithms are formulated in the general setting. But all the
applications that come to my mind are for characteristic 0.

Probably this is different in Coding/Kryptotheory ?

>> Who else might be interested, or has already done something in 
>> this direction ?
>>
>> 4ti2 Integration: I know from the authors, that 4ti2 will become a C++
>> Library soon. It is really fast for specific computations (e.g.
>> saturation of lattice ideals aka "markov basis computation"). So
>> probably it would be useful to have this library included in sage too.
>>
>> Integer Lattices are all over the place with binomial ideals. Are there
>> classes for integer lattices, or is someone working on such things?
> 
> We have some lattice algorithms (LLL and BKZ) which act on integer matrices:
> 
> sage: A = random_matrix(ZZ, 10, 10)
> sage: A.LLL()
> sage: A.BKZ()

Nice ...

>> Is there a class for monomial ideals already ? There are some
>> specialized algorithms for that which definitely should be used.
> 
> There was some discussion on Frobby by Bjarke Roune. It is an optional 
> package 
> for now. I am not sure how mature the interface is.

Hmm, I just found out about "optional packages" :)
But frobby does not build with my brand new gcc 4.3. ...
-BEGIN PGP SIGNATURE-
Version: GnuPG v2.0.9 (GNU/Linux)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org

iEYEARECAAYFAkkZj7IACgkQrpEWPKIUt7Px2QCcDdV14hmugcMApmjI2s5woRt0
kKgAoJIufMXjsyRDUTmWmTCEd/JV/nEM
=L9Ao
-END PGP SIGNATURE-

--~--~-~--~~~---~--~~
To post to this group, send email to sage-devel@googlegroups.com
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at http://groups.google.com/group/sage-devel
URLs: http://www.sagemath.org
-~--~~~~--~~--~--~---



[sage-devel] Re: Categories for the working programmer

2008-11-11 Thread Martin Rubey

Ralf Hemmecke <[EMAIL PROTECTED]> writes:

> The only difference between Sage and Aldor/panAxiom is that Sage checks 
> whether the Object can be coerced to SomeType at runtime whereas Aldor 
> and SPAD allow to check at compile time.

I don't think this is the full story.  As far as I can see, it is the
responsibility of the programmer to do the dispatch, i.e., 

if arg is string then do this
if arg is number then do that

etc. (please correct me if I'm wrong!!!)

If this is not properly done, the user will get *some* error message, not
necessarily informative.

In FriCAS, the message is standardized:

(5) -> 1.5::INT
 
   Cannot convert from type Float to Integer for value
   1.5

(5) -> "1213" :: Float
 
   Cannot convert from type String to Float for value
   "1213"

simply because there is no suitable function coerce: String -> Float.

(I'm cheating I tiny bit here, but I believe I got the philosophy right)

If one get's the arguments of a function wrong, the message is also
standardized - possibly it could be better, but anyway:

(7) -> D(x^2, x, x)
   There are 3 exposed and 0 unexposed library operations named D 
  having 3 argument(s) but none was determined to be applicable. 
  Use HyperDoc Browse, or issue
)display op D
  to learn more about the available operations. Perhaps 
  package-calling the operation or using coercions on the arguments
  will allow you to apply the operation.
 
   Cannot find a definition or applicable library operation named D 
  with argument type(s) 
 Polynomial(Integer)
 Variable(x)
 Variable(x)
  
  Perhaps you should use "@" to indicate the required return type, 
  or "$" to specify which version of the function you need.

(Because in FriCAS, the syntax for differentiation is D(fun, var, how-often),
but obviously, one might believe that it is D(fun, var1, var2,...))

I think that Sage / Python could be improved here (not that I want to do it - I
hope you accept this "criticism" as constructive).  For example:

sage: parametric_plot(1, x, (0,4))
---
TypeError Traceback (most recent call last)

/home/rubey/ in ()

/opt/local/sage-3.1.2/local/lib/python2.5/site-packages/sage/plot/plot.py in
parametric_plot(funcs, tmin, tmax, **kwargs)
   3786
   3787 """
-> 3788 if len(funcs) == 3:
   3789 raise ValueError, "use parametric_plot3d for parametric plots
in 3d dimensions."
   3790 elif len(funcs) != 2:

TypeError: object of type 'sage.rings.integer.Integer' has no len()

But what I'd like to see: "x" is not a range.

Similarly:

sage: contour_plot(x^2==0, (0,4), (0,4))
---
ValueErrorTraceback (most recent call last)

/home/rubey/ in ()

/opt/local/sage-3.1.2/local/lib/python2.5/site-packages/sage/plot/plot.py in
contour_plot(f, xrange, yrange, **kwds)
   2917 xy_data_array = [[g(x, y) for x in \
   2918   sage.misc.misc.xsrange(xrange[0], xrange[1],
xstep)]
-> 2919   for y in sage.misc.misc.xsrange(yrange[0],
yrange[1], ystep)]
   2920
   2921 g = Graphics(xmin=float(xrange[0]), xmax=float(xrange[1]),
ymin=float(yrange[0]), ymax=float(yrange[1]))

/opt/local/sage-3.1.2/local/lib/python2.5/site-packages/sage/calculus/equations.py
in __call__(self, *args, **argv)
211 from sage.calculus.all import SR
212 m = matrix(SR, 1, 2, [self._left, self._right])
--> 213 left,right = m(*args, **argv)[0]
214 return self._op(left, right)
215

/home/rubey/matrix_symbolic_dense.pyx in
sage.matrix.matrix_symbolic_dense.Matrix_symbolic_dense.__call__
(sage/matrix/matrix_symbolic_dense.c:5608)()

ValueError: the number of arguments must be less than or equal to 1

But what I'd like to see: first argument has to be a function.

The dynamic typing philosophy gives more flexibility, but also more
responsibility, it seems.

Martin


--~--~-~--~~~---~--~~
To post to this group, send email to sage-devel@googlegroups.com
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at http://groups.google.com/group/sage-devel
URLs: http://www.sagemath.org
-~--~~~~--~~--~--~---



[sage-devel] Sage 3.2.rc0 released

2008-11-11 Thread mabshoff

Hello folks,

here is 3.2.rc0 and I have to confess that I cheated: I did build this
on numerous platforms before announcing here (if you hung out in IRC
you knew about this release for about 6 hours now) and as it turns out
my caution was justified. Doctesting is broken with this release
unless you do the following:

 ./sage -sh
 cd local/bin
 hg update -C

After doing that doctesting works again. The issue is (again) releated
to -sdist and I should have a fix in rc1 shortly. The initial plan has
been shifted by about 5 days, so expect a releae by Thursday. We
merged some major features in rc0, specifically the new timeit doctest
code as well as Cython 0.10 and the RDF/CDF backend switch to numpy.
Expect some numerical noise doctest failures and some other related
known issues. Please report issues here and check trac for existing
tickerts. There was also some major setup.py surgery, so please report
any Sage library build issue. "sage -b" should be much faster and less
buggy than before, but  ;) One issue you will see  here is that we
no longer suppress warnings, so expect "sage -b" to be more noise.
While most of those are caused by Cython's code generator due to
unused variables there is definitely some stuff in there worth fixing.
If the noise level is too annoying we can turn on warning suppression
by default again.

Sources and a sage.math only binary can be found at

http://sage.math.washington.edu/home/mabshoff/release-cycles-3.2/

Cheers,

Michael

Merged in Sage 3.2.rc0:

#3310: Craig Citro,  Gonzalo Tonaria: sage -b fails after touching
sage/libs/mwrank/{mwrank.pyx,wrap.cc} [Reviewed by Michael Abshoff]
#3476: Nick Alexander, Mike Hansen: save timeit information with sage -
t -timeit [Reviewed by Mike Hansen, Michael Abshoff]
#3498: Jason Grout: make numpy the backend for matrices over CDF and
RDF [Reviewed by Mike Hansen, Robert Bradshaw, Michael Abshoff]
#3580: Craig Citro, John Voight: ensure that totallyreal does not
import numpy on startup [Reviewed by John Voight, Craig Citro]
#3750: Karl-Dieter Crisman: Request for a "log" function for Sage
integers [Reviewed by Mike Hansen]
#4362: Dan Bump: Bug fixes in tableaux latex output [Reviewed by Mike
Hansen, Nicolas Thiery]
#4395: William Stein: Sage 3.1.4: magma related optional doctest
failure in sage/rings/quotient_ring.py [Reviewed by Michael Abshoff]
#4425: Karl-Dieter Crisman: sqrt(4) returns a SymbolicComposition
instead of the number 2! [Reviewed by William Stein]
#4443: Craig Citro: Massive prime_range speedup, arith* files cleanup
[Reviewed by John Cremona]
#: Craig Citro: Remove duplicate source names in setup.py
[Reviewed by Michael Abshoff]
#4448: Jason Grout: bug in interact with matrices [Reviewed by Mike
Hansen]
#4452: William Stein: optimize next_prime [Reviewed by Robert
Bradshaw]
#4455: Nicolas Thiery: bug in Coxeter matrix for type G2 [Reviewed by
Mike Hansen]
#4462: John Perry, Jason Grout: contour_plot defaults changed to fill,
affects implicit_plot [Reviewed by Mike Hansen]
#4467: Michael Abshoff: removed unused hanke library code [Reviwed by
Jon Hanke]
#4473: William Stein: loading file.sage that has a line "load foo.py"
is broken due to a missing import [Reviewed by Michael Abshoff]
#4476: Robert Bradshaw: Update to Cython 0.10 [Reviewed by Michael
Abshoff]
#4479: Timothy Clemans: sage/logic/logic.py contains a trivial typo: "
varaiable" [Reviewed by Minh Nguyen]
--~--~-~--~~~---~--~~
To post to this group, send email to sage-devel@googlegroups.com
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at http://groups.google.com/group/sage-devel
URLs: http://www.sagemath.org
-~--~~~~--~~--~--~---



[sage-devel] Sage 3.2.rc0 -t -long -optional failures

2008-11-11 Thread mabshoff

Hello folks,

I raised the issue with optional doctest failures in Sage 3.2.a0 a
while back and I am glad to report that we have made some progress
here:

sage -t -long -optional devel/sage/sage/tests/benchmark.py # 4
doctests failed
sage -t -long -optional devel/sage/sage/rings/polynomial/
term_order.py # 1 doctests failed
sage -t -long -optional devel/sage/sage/rings/polynomial/
polynomial_element_generic.py # 1 doctests failed
sage -t -long -optional devel/sage/sage/rings/polynomial/
pbori.pyx # 2 doctests failed
sage -t -long -optional devel/sage/sage/rings/polynomial/
multi_polynomial_ring.py # 2 doctests failed
sage -t -long -optional devel/sage/sage/rings/polynomial/
multi_polynomial_ideal.py # 5 doctests failed
sage -t -long -optional devel/sage/sage/rings/
fraction_field_element.py # 2 doctests failed
sage -t -long -optional devel/sage/sage/modules/free_module.py
# 1 doctests failed
sage -t -long -optional devel/sage/sage/modular/ssmod/ssmod.py
# 1 doctests failed
sage -t -long -optional devel/sage/sage/schemes/
elliptic_curves/sha_tate.py # 1 doctests failed
sage -t -long -optional devel/sage/sage/schemes/
elliptic_curves/ell_rational_field.py # 1 doctests failed
sage -t -long -optional devel/sage/sage/matrix/matrix1.pyx # 2
doctests failed
sage -t -long -optional devel/sage/sage/libs/pari/gen.pxi # 1
doctests failed
sage -t -long -optional devel/sage/sage/libs/pari/gen.pyx # 1
doctests failed
sage -t -long -optional devel/sage/sage/interfaces/r.py # 10
doctests failed
sage -t -long -optional devel/sage/sage/interfaces/mupad.py #
67 doctests failed
sage -t -long -optional devel/sage/sage/interfaces/magma.py #
2 doctests failed
sage -t -long -optional devel/sage/sage/interfaces/maple.py #
1 doctests failed
sage -t -long -optional devel/sage/sage/interfaces/lie.py # 1
doctests failed
sage -t -long -optional devel/sage/sage/interfaces/
mathematica.py # 17 doctests failed
sage -t -long -optional devel/sage/sage/graphs/
graph_database.py # 1 doctests failed
sage -t -long -optional devel/sage/sage/geometry/polytope.py #
7 doctests failed
sage -t -long -optional devel/sage/sage/functions/constants.py
# 1 doctests failed
sage -t -long -optional devel/sage/sage/databases/jones.py # 2
doctests failed
sage -t -long -optional devel/sage/sage/databases/sloane.py #
1 doctests failed
sage -t -long -optional devel/sage/sage/crypto/mq/
mpolynomialsystem.py # 1 doctests failed
sage -t -long -optional devel/sage/sage/combinat/species/
library.py # 4 doctests failed
sage -t -long -optional devel/sage/sage/combinat/crystals/
crystals.py # 2 doctests failed
sage -t -long -optional devel/sage/sage/combinat/
sloane_functions.py # 1 doctests failed
sage -t -long -optional devel/sage/sage/calculus/calculus.py #
1 doctests failed

Note that at least two of those above tests will likely pass when I
have MuPAD and polymake installed. The sage/interfaces/magma.p failure
is due to bugs in Magma 2.13 installed on the system while 2.14 does
pass doctests. There are also some failures due to missing dot2tex and
also some missing db packages it seems. Once I am back in Germany I
will post a script that installs all the components automatically to
make it easier on sage.math to install all this goodness.

In case you care about one of the above doctests check out the log at

  
http://sage.math.washington.edu/home/mabshoff/release-cycles-3.2/3.2.rc0-testall-long-optional.txt

It is about 300kb. Quite a number of the above issues already do have
tickets.

Cheers,

Michael
--~--~-~--~~~---~--~~
To post to this group, send email to sage-devel@googlegroups.com
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at http://groups.google.com/group/sage-devel
URLs: http://www.sagemath.org
-~--~~~~--~~--~--~---



[sage-devel] Re: Categories for the working programmer

2008-11-11 Thread Ralf Hemmecke

On 11/11/2008 11:38 AM, Martin Rubey wrote:
> Robert Bradshaw <[EMAIL PROTECTED]> writes:
> 
>> In Sage, we use the term "coercion" to denote a canonical (using the  
>> term a bit loosely), implicit map between Parents (or objects of a  
>> concrete category). E.g. from ZZ to F5 would be a "coercion," but  
>> there is a "conversion" and not a "coercion" the other direction.  
>> Coercions are invoked to do arithmetic, but conversions are not. 

> Just for the record, this is *exactly* the same definition as in FriCAS.

Exactly.

> (in case you wonder, the notation "Object::SomeType" is syntactic sugar for
> "coerce(Object)@SomeType", where @ is a language builtin, that selects the
> function according to return type.

And, as Robert kindly explained (thank you), it is written 
"SomeType(Object)" in Sage.

The only difference between Sage and Aldor/panAxiom is that Sage checks 
whether the Object can be coerced to SomeType at runtime whereas Aldor 
and SPAD allow to check at compile time.

And I don't say that "some string"::Integer is impossible to succeed, it 
is only a question whether the compiler sees (has in scope) a function 
coerce: String->Integer that would do the job... of course at compile 
time. (By the way, if one defines this coerce to be the length of the 
string and takes + as the concatenation of strings then this coerce is 
even a homomorphism from the String monoid into the integers considered 
as an additive monoid.)

Ralf

--~--~-~--~~~---~--~~
To post to this group, send email to sage-devel@googlegroups.com
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at http://groups.google.com/group/sage-devel
URLs: http://www.sagemath.org
-~--~~~~--~~--~--~---



[sage-devel] Re: Binomial Ideals

2008-11-11 Thread mabshoff



On Nov 11, 3:38 am, Martin Albrecht <[EMAIL PROTECTED]>
wrote:
> On Tuesday 11 November 2008, Thomas Kahle wrote:

Hi Thomas, Martin,

> > Dear all,
>
> Hi [sage-devel] and CC Carlo Traverso who might find this discussion
> relevant/.



> > 4ti2 Integration: I know from the authors, that 4ti2 will become a C++
> > Library soon. It is really fast for specific computations (e.g.
> > saturation of lattice ideals aka "markov basis computation"). So
> > probably it would be useful to have this library included in sage too.

There are other parties, i.e. the combinat people, interested in an
interface to 4ti2. Not much integration has actually happened on the
surface, but at least for a pexpect version there is little that would
need to be done besides writing a wrapper.



> There was some discussion on Frobby by Bjarke Roune. It is an optional package
> for now. I am not sure how mature the interface is.

The existing interface does pass doctests at the moment, so at least
it isn't broken :)

> Cheers,
> Martin

Cheers,

Michael

> --
> name: Martin Albrecht
> _pgp:http://pgp.mit.edu:11371/pks/lookup?op=get&search=0x8EF0DC99
> _www:http://www.informatik.uni-bremen.de/~malb
> _jab: [EMAIL PROTECTED]
--~--~-~--~~~---~--~~
To post to this group, send email to sage-devel@googlegroups.com
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at http://groups.google.com/group/sage-devel
URLs: http://www.sagemath.org
-~--~~~~--~~--~--~---



[sage-devel] Re: Binomial Ideals

2008-11-11 Thread Martin Albrecht

On Tuesday 11 November 2008, Thomas Kahle wrote:
> Dear all,

Hi [sage-devel] and CC Carlo Traverso who might find this discussion 
relevant/.

> I would like to develop a program that does primary decomposition of
> binomial ideals really fast.
> Some hopefully useful algorithms are given in a '96 Paper by David
> Eisenbud and Bernd Sturmfels. At least the second author is very
> interested in this project and has many possible applications.
> To make it fast one probably has to bring together existing software,
> such as 4ti2 (www.4ti2.de), singular and new things. I think sage might
> be a good platform, so here are some questions:
>
> Assume I wanted to derive a class binomialIdeal from e.g.
> Mpolynomial_Ideal which uses specialized algorithms whenever possible
> and falls back to singular if nothing special is available.
> What are the things I should consider to make it fast and work well with
> sage? 

Just to document this: We had a discussion about this off list and I raised 
the concern that the exponent limit of Singular (2^16-1) might become an 
issue. Thomas, doesn't think this will be relevant. If this is not an issue, 
then inheriting from the _libsingular classes might be the way to go. What 
base fields (rings?) are you interested in?

> Who else might be interested, or has already done something in 
> this direction ?
>
> 4ti2 Integration: I know from the authors, that 4ti2 will become a C++
> Library soon. It is really fast for specific computations (e.g.
> saturation of lattice ideals aka "markov basis computation"). So
> probably it would be useful to have this library included in sage too.
>
> Integer Lattices are all over the place with binomial ideals. Are there
> classes for integer lattices, or is someone working on such things?

We have some lattice algorithms (LLL and BKZ) which act on integer matrices:

sage: A = random_matrix(ZZ, 10, 10)
sage: A.LLL()
sage: A.BKZ()

> Is there a class for monomial ideals already ? There are some
> specialized algorithms for that which definitely should be used.

There was some discussion on Frobby by Bjarke Roune. It is an optional package 
for now. I am not sure how mature the interface is.

Cheers,
Martin

-- 
name: Martin Albrecht
_pgp: http://pgp.mit.edu:11371/pks/lookup?op=get&search=0x8EF0DC99
_www: http://www.informatik.uni-bremen.de/~malb
_jab: [EMAIL PROTECTED]


--~--~-~--~~~---~--~~
To post to this group, send email to sage-devel@googlegroups.com
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at http://groups.google.com/group/sage-devel
URLs: http://www.sagemath.org
-~--~~~~--~~--~--~---



[sage-devel] Re: Categories for the working programmer

2008-11-11 Thread Martin Rubey

Robert Bradshaw <[EMAIL PROTECTED]> writes:

> In Sage, we use the term "coercion" to denote a canonical (using the  
> term a bit loosely), implicit map between Parents (or objects of a  
> concrete category). E.g. from ZZ to F5 would be a "coercion," but  
> there is a "conversion" and not a "coercion" the other direction.  
> Coercions are invoked to do arithmetic, but conversions are not. 

Just for the record, this is *exactly* the same definition as in FriCAS.

(in case you wonder, the notation "Object::SomeType" is syntactic sugar for
"coerce(Object)@SomeType", where @ is a language builtin, that selects the
function according to return type.

Unfortunately, the contributors to NAG Axiom were sometimes a bit sloppy about
which coercions to implement.

There was one idea, which I personally like a lot, to provide to "Categories"
(in the FriCAS/Axiom sense)

CoercibleTo S, RetractableTo S and ConvertibleTo S that provide

coerce: % -> S, coerce: S -> % and retract: % -> S

respectively.  One can then ask

(4) -> SquareMatrix(2, INT) has CoercibleTo Matrix INT

   (4)  true

Type: Boolean

Very unfortunately, currently in almost all cases the query "has CoercibleTo
Something" will return false, because the coerce function is not inherited by
the category.  (I have a suspicion for the reason, but that's not important
here.)

However, I think in principle the design is *very* good.  I think the design in
Sage is not so different (I did not check thoroughly, though), which comes as
confirmation.


Martin


--~--~-~--~~~---~--~~
To post to this group, send email to sage-devel@googlegroups.com
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at http://groups.google.com/group/sage-devel
URLs: http://www.sagemath.org
-~--~~~~--~~--~--~---



[sage-devel] Re: Categories for the working programmer

2008-11-11 Thread Robert Bradshaw

On Nov 11, 2008, at 1:53 AM, Ralf Hemmecke wrote:

> On 11/10/2008 10:31 PM, koffie wrote:
>>> sage: C = VectorSpaces(GF(5))
>>> sage: C
>>> Category of vector spaces over Finite Field of size 5
>>> sage: W = (ZZ^3).span([[1,2,3],[4,5,3]])
>>> sage: W
>>>
>>> Free module of degree 3 and rank 2 over Integer Ring
>>> Echelon basis matrix:
>>> [1 2 3]
>>> [0 3 9]
>>> sage: C(W)
>>>
>>> Vector space of degree 3 and dimension 2 over Finite Field of size 5
>>> Basis matrix:
>>> [1 0 2]
>>> [0 1 3]
>>>
>>> That looks to me as if C is like a coercion function.
>>
>>> Ralf
>>
>> Wel looking at it mathematically, you would like C to be some functor
>> from free modules over Z to vectorspases over Finite Fields of  
>> size 5.
>
> I have nothing against functors. However, as I understand, C is a
>
>>> Category of vector spaces over Finite Field of size 5
>
> and that does not sound like a "functor".
>
>> And taking this in mind I think this is a good behaviour of C(W),
>> since this behaviour is for example similar to that of F5(x) in the
>> example below:
>> sage: F5=GF(5)
>> sage: F5
>> Finite Field of size 5
>> sage: x=ZZ(102)
>> sage: F5(x)
>> 2
>
>> That is F5() tries to make an element in F5() of 102 as C tries to
>> make a vectorfield over GF(5) out of W. So maybe it is also not  
>> bad to
>> have coercion functions defined for categories.
>
> In in the above form "ZZ(102)" and "F5(x)" you basically use ZZ and F5
> to denote a type cast. That is what I called "coercion" (which is
> basically a function ZZ -> F5).

In Sage, we use the term "coercion" to denote a canonical (using the  
term a bit loosely), implicit map between Parents (or objects of a  
concrete category). E.g. from ZZ to F5 would be a "coercion," but  
there is a "conversion" and not a "coercion" the other direction.  
Coercions are invoked to do arithmetic, but conversions are not. For  
example

sage: F5.coerce_map_from(ZZ)
Natural morphism:
   From: Integer Ring
   To:   Finite Field of size 5
sage: f = F5.coerce_map_from(ZZ)
sage: f(3)
3
sage: f(943)
3
sage: ZZ.coerce_map_from(F5) # there isn't one
sage: ZZ.convert_map_from(F5)
Conversion via _integer_ method map:
   From: Finite Field of size 5
   To:   Integer Ring

Eventually, that last one will be a lift map (that's essentially what  
it is, but I haven't gotten around to moving the finite fields to the  
new model yet... currently it's exposing the implementation details).

> My question now (still being a bit unfamiliar with python) would be,
> where can I find the documentation of what is allowed for x in  
> something
> like F5(x). I guess F5("some string") does not work. I'd like to be  
> sure
> that code I write does not break at runtime. A pointer to the
> documentation is highly appreciated.

F5(...) calls the F5.__call__ method. If F5 were a type, this  
(eventually, in the basic case) calls the __init__ method on an  
instance of that type. Depending on what was implemented, anything  
could be valid. They are used as constructors, and the general  
philosophy is "make an element of the right type if at all possible."  
Thus,

sage: F5("some string")
Traceback (most recent call last):
...
TypeError: unable to convert x (=some string) to an integer
sage: F5('2')
2

Just as this casting notation works to force elements in one object  
into another by invoking the appropriate morphism, it can be used to  
force objects in one category into another by invoking the  
appropriate functor.

- Robert


--~--~-~--~~~---~--~~
To post to this group, send email to sage-devel@googlegroups.com
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at http://groups.google.com/group/sage-devel
URLs: http://www.sagemath.org
-~--~~~~--~~--~--~---



[sage-devel] Re: Categories for the working programmer

2008-11-11 Thread Ralf Hemmecke

On 11/10/2008 10:31 PM, koffie wrote:
>> sage: C = VectorSpaces(GF(5))
>> sage: C
>> Category of vector spaces over Finite Field of size 5
>> sage: W = (ZZ^3).span([[1,2,3],[4,5,3]])
>> sage: W
>>
>> Free module of degree 3 and rank 2 over Integer Ring
>> Echelon basis matrix:
>> [1 2 3]
>> [0 3 9]
>> sage: C(W)
>>
>> Vector space of degree 3 and dimension 2 over Finite Field of size 5
>> Basis matrix:
>> [1 0 2]
>> [0 1 3]
>>
>> That looks to me as if C is like a coercion function.
> 
>> Ralf
> 
> Wel looking at it mathematically, you would like C to be some functor
> from free modules over Z to vectorspases over Finite Fields of size 5.

I have nothing against functors. However, as I understand, C is a

 >> Category of vector spaces over Finite Field of size 5

and that does not sound like a "functor".

> And taking this in mind I think this is a good behaviour of C(W),
> since this behaviour is for example similar to that of F5(x) in the
> example below:
> sage: F5=GF(5)
> sage: F5
> Finite Field of size 5
> sage: x=ZZ(102)
> sage: F5(x)
> 2

> That is F5() tries to make an element in F5() of 102 as C tries to
> make a vectorfield over GF(5) out of W. So maybe it is also not bad to
> have coercion functions defined for categories.

In in the above form "ZZ(102)" and "F5(x)" you basically use ZZ and F5 
to denote a type cast. That is what I called "coercion" (which is 
basically a function ZZ -> F5).

My question now (still being a bit unfamiliar with python) would be, 
where can I find the documentation of what is allowed for x in something 
like F5(x). I guess F5("some string") does not work. I'd like to be sure 
that code I write does not break at runtime. A pointer to the 
documentation is highly appreciated.

Thank you
Ralf

--~--~-~--~~~---~--~~
To post to this group, send email to sage-devel@googlegroups.com
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at http://groups.google.com/group/sage-devel
URLs: http://www.sagemath.org
-~--~~~~--~~--~--~---



[sage-devel] Re: [sage-combinat-devel] Categories for the working programmer

2008-11-11 Thread Ralf Hemmecke

> Finally, I should note that I do not agree with Ralf's views (quoting
>  Doye's article on Aldor) on the importance of universal algebra 
> notions to categories in Axiom.

Maybe it belongs somewhere else, but how would you explain to someone
who is new to Aldor/panAxiom, what the concept of "category" in the
Aldor/panAxiom language is? That is a language concept.

Then comes the question whether an Axiom category is in some way related 
to some known mathematical concept. For me order-sorted algebras match 
quite well while (mathematical) category doesn't (even if that might 
have been the original motivation for the name in Axiom).

> But I do think that this article is very relevant to the subject of
> coercions in computer algebra and so also important in Sage.

Oh, yes, good that you mention that. After I read that thesis I thought 
that the language actually should somehow support that it should not 
matter, which coercion path one follows to arrive at a certain type. The 
result should be the same. But I guess, such a check is undecidable.

Ralf

--~--~-~--~~~---~--~~
To post to this group, send email to sage-devel@googlegroups.com
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at http://groups.google.com/group/sage-devel
URLs: http://www.sagemath.org
-~--~~~~--~~--~--~---



[sage-devel] Binomial Ideals

2008-11-11 Thread Thomas Kahle
Dear all,

I would like to develop a program that does primary decomposition of
binomial ideals really fast. 
Some hopefully useful algorithms are given in a '96 Paper by David
Eisenbud and Bernd Sturmfels. At least the second author is very
interested in this project and has many possible applications. 
To make it fast one probably has to bring together existing software,
such as 4ti2 (www.4ti2.de), singular and new things. I think sage might
be a good platform, so here are some questions:

Assume I wanted to derive a class binomialIdeal from e.g.
Mpolynomial_Ideal which uses specialized algorithms whenever possible
and falls back to singular if nothing special is available.
What are the things I should consider to make it fast and work well with
sage? Who else might be interested, or has already done something in
this direction ?

4ti2 Integration: I know from the authors, that 4ti2 will become a C++
Library soon. It is really fast for specific computations (e.g.
saturation of lattice ideals aka "markov basis computation"). So
probably it would be useful to have this library included in sage too. 

Integer Lattices are all over the place with binomial ideals. Are there
classes for integer lattices, or is someone working on such things?

Is there a class for monomial ideals already ? There are some
specialized algorithms for that which definitely should be used. 

Any comment is appreciated.
Thank you already.
Thomas Kahle

-
Thomas Kahle
Max Planck Institute for Mathematics in the Sciences
Inselstr. 22-26, 04103 Leipzig
Tel: +49(0) 341-9959-545
[EMAIL PROTECTED], http://personal-homepages.mis.mpg.de/kahle/
-





signature.asc
Description: This is a digitally signed message part