Re: [sage-devel] What in Sage uses Boost ? And who maintains it ?

2015-11-11 Thread 'Martin Albrecht' via sage-devel
On Wednesday 11 Nov 2015 04:06:21 Emmanuel Charpentier wrote:
> Dear list,
> 
> I just discovered that Sage installs a Boost library (it's, curiously,
> called boost-cropped, but according to its SPKG.txt, currently contains all
> of Boost, without patches).
> 
> The current version is 1.52. I discovered that this version is too old at
> least for the rstan package of R (a diabolically efficient MCMC sampler),
> which needs Boost>=1.58. See this thread on stan-users
>  for
> details.
> 
> Hence two questions :
> 
> 1) What in Sage uses Boost ?

I know this one: PolyBoRi.
 
> 2) Is someone maintaining it ?
> 
> Sincerely yours,
> 
> --
> Emmanuel Charpentier
-- 
.www: https://martinralbrecht.wordpress.com
.pgp: 40BC 7F0D 724B 4AB1 CC98 4014 A040 043C 6532 AFB4
.xmpp: martinralbre...@jabber.ccc.de
.twitter: https://twitter.com/martinralbrecht
.keybase: https://keybase.io/martinralbrecht

-- 
You received this message because you are subscribed to the Google Groups 
"sage-devel" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to sage-devel+unsubscr...@googlegroups.com.
To post to this group, send email to sage-devel@googlegroups.com.
Visit this group at http://groups.google.com/group/sage-devel.
For more options, visit https://groups.google.com/d/optout.


Re: [sage-devel] Re: giac/giacpy packages

2015-06-30 Thread 'Martin Albrecht' via sage-devel
Hi,

I'd just add a function groebner_basis(F) to sage.libs.giac (or wherever the 
Giac Cython interface lives) which takes a Sage sequence, computes a Gröbner 
basis and returns a Sage sequence. 

Integrating that into multi_polynomial_ideal.py is then very easy.

I've created 

  http://trac.sagemath.org/ticket/18824

Let's move this there.

Cheers,
Martin


On Monday 29 Jun 2015 14:06:19 Han Frederic wrote:
 I think I can start something it looks to be in
 src/sage/rings/polynomial/multi_polynomial_ideal.py
 http://git.sagemath.org/sage.git/tree/src/sage/rings/polynomial/multi_polyn
 omial_ideal.py?id=c0e721783317f205106c9c3c552e366ce4e6c50e It may not be
 necessary to modify the cython interface for this.
 
 best
 Frederic
-- 
.www: https://martinralbrecht.wordpress.com
.pgp: 40BC 7F0D 724B 4AB1 CC98 4014 A040 043C 6532 AFB4
.xmpp: martinralbre...@jabber.ccc.de
.twitter: https://twitter.com/martinralbrecht
.keybase: https://keybase.io/martinralbrecht

-- 
You received this message because you are subscribed to the Google Groups 
sage-devel group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to sage-devel+unsubscr...@googlegroups.com.
To post to this group, send email to sage-devel@googlegroups.com.
Visit this group at http://groups.google.com/group/sage-devel.
For more options, visit https://groups.google.com/d/optout.


Re: [sage-devel] giac/giacpy packages

2015-06-29 Thread 'Martin Albrecht' via sage-devel


On Sunday 21 Jun 2015 02:35:19 Han Frederic wrote:
 I'd like to point out that recently  http://trac.sagemath.org/ticket/12375
  was closed. I'd like also to thank here all the participants.
 
 Since sage 6.8.beta5, giac and its cython interface giacpy are avaible as
 optional packages.
 
 It provides interesting features in symbolic computations (gcd, factor,
 solving more inequalites)
 and also in groebner basis computation:
 
 Ex: I was able to compute a groebner basis over QQ of cyclic9 in 7h of wall
 time (but 49h of cpu time). (7h30 wall and cpu time with magma)
 http://webusers.imj-prg.fr/~frederic.han/xcas/giacpy/index.html#cyclic9
 
 
 * the giacpy result was saved to a 1.1G file in 28s, loaded in 68s,
 converted to a list of sage polynomials in 170s.*computation of groebner
 basis over prime fields p2**31 are also avaible:
 Ex:
 
 *Katsura12 mod 65521 took 90s with giacpy and 810s with
 libsingular.http://webusers.imj-prg.fr/~frederic.han/xcas/giacpy/grobner-lib
 giac.pdf*

Very nice indeed.

Can we add a more convenient interface for computing Gröbner bases with Sage. 
That is, I'd like to be able to say 

I.groebner_basis('giac')

and be done with it :) I'm happy to help.

Cheers,
Martin

-- 
.www: https://martinralbrecht.wordpress.com
.pgp: 40BC 7F0D 724B 4AB1 CC98 4014 A040 043C 6532 AFB4
.xmpp: martinralbre...@jabber.ccc.de
.twitter: https://twitter.com/martinralbrecht
.keybase: https://keybase.io/martinralbrecht

-- 
You received this message because you are subscribed to the Google Groups 
sage-devel group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to sage-devel+unsubscr...@googlegroups.com.
To post to this group, send email to sage-devel@googlegroups.com.
Visit this group at http://groups.google.com/group/sage-devel.
For more options, visit https://groups.google.com/d/optout.


Re: [sage-devel] Re: giac/giacpy packages

2015-06-29 Thread 'Martin Albrecht' via sage-devel
Agreed, I was just hoping someone else would do the work for me :)

On Monday 29 Jun 2015 14:59:15 Simon King wrote:
 Hi Martin,
 
 On 2015-06-29, 'Martin Albrecht' via sage-devel sage-
de...@googlegroups.com wrote:
  Can we add a more convenient interface for computing Gröbner bases with
  Sage. That is, I'd like to be able to say
  
  I.groebner_basis('giac')
  
  and be done with it :) I'm happy to help.
 
 If I understand correctly, we have two idioms for similar purposes:
 - Obj.method(algorithm='bla') chooses the algorithm to be used for
  comutation
 
 - Obj = Foo(implementation='bar') chooses the implementation for the
   object.
 
 IIRC, we use the first idiom in the .groebner_basis() method already.
 So, all what is left to do is add a new item to the case distinction
 in that method.
 
 Best regards,
 Simon
-- 
.www: https://martinralbrecht.wordpress.com
.pgp: 40BC 7F0D 724B 4AB1 CC98 4014 A040 043C 6532 AFB4
.xmpp: martinralbre...@jabber.ccc.de
.twitter: https://twitter.com/martinralbrecht
.keybase: https://keybase.io/martinralbrecht

-- 
You received this message because you are subscribed to the Google Groups 
sage-devel group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to sage-devel+unsubscr...@googlegroups.com.
To post to this group, send email to sage-devel@googlegroups.com.
Visit this group at http://groups.google.com/group/sage-devel.
For more options, visit https://groups.google.com/d/optout.


Re: [sage-devel] New package with the F4 algorithm (groebner basis computation over finite fields)

2015-06-20 Thread 'Martin Albrecht' via sage-devel
On Saturday 20 Jun 2015 11:10:21 William Stein wrote:
 On Sat, Jun 20, 2015 at 11:01 AM, Titouan COLADON
 
 titouan.cola...@gmail.com wrote:
  We propose a new C++ package implementing the F4 algorithm.
  
  We open this post in order to make it standard if the community agree.
 
 To clarify, I think these are the options for this vote:
 
 [ ] Yes, make grenoble-f4 a standard Sage package -- this is so
 important we must get it into Sage ASAP.
 
 [ ] No, first make grenoble-f4 an optional Sage package -- we'll
 revisit making it standard later.
 
 
 Question from me: How long does grenoble-f4 take to build from source?
  Some C++ libraries take a long time to build...

I just tried it and it was quick on my machine (i7): about 1 minute.

 Question: what are the dependencies?

None, but Givaro is an optional dependency.
 
  For the moment the package has not been tested on all the supported
  distributions.
  

Cheers,
Martin

-- 
.www: https://martinralbrecht.wordpress.com
.pgp: 40BC 7F0D 724B 4AB1 CC98 4014 A040 043C 6532 AFB4
.xmpp: martinralbre...@jabber.ccc.de
.twitter: https://twitter.com/martinralbrecht
.keybase: https://keybase.io/martinralbrecht

-- 
You received this message because you are subscribed to the Google Groups 
sage-devel group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to sage-devel+unsubscr...@googlegroups.com.
To post to this group, send email to sage-devel@googlegroups.com.
Visit this group at http://groups.google.com/group/sage-devel.
For more options, visit https://groups.google.com/d/optout.


Re: [sage-devel] The future of polybori

2015-06-15 Thread 'Martin Albrecht' via sage-devel
On Sunday 14 Jun 2015 17:21:21 R. Andrew Ohana wrote:
 I think the main reason why Sage has its own Cython bindings is mainly
 historical -- they existed before polybori added their own python bindings.
 It would probably be a better idea to use polybori's own bindings in Sage
 -- it makes no sense trying to maintain two sets of python bindings.

That's not how I remember it (but my memory might not serve me right): As far 
as I know PolyBoRi always had Python bindings, but we wanted something in 
Cython so it integrates nicely with the rest of Sage. Also, we wanted tight 
integration (coercion, inheritance, etc.) some of which should now be easier 
due to changes to the Sage code base (e.g. mathematical hierarchy and 
inheritance were decoupled). 

I agree with the sentiment, though, and the plan: it would entail ripping the 
Cython bindings out and refactoring the Sage specific parts.

Cheers,
Martin

-- 
.www: https://martinralbrecht.wordpress.com
.pgp: 40BC 7F0D 724B 4AB1 CC98 4014 A040 043C 6532 AFB4
.xmpp: martinralbre...@jabber.ccc.de
.twitter: https://twitter.com/martinralbrecht
.keybase: https://keybase.io/martinralbrecht

-- 
You received this message because you are subscribed to the Google Groups 
sage-devel group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to sage-devel+unsubscr...@googlegroups.com.
To post to this group, send email to sage-devel@googlegroups.com.
Visit this group at http://groups.google.com/group/sage-devel.
For more options, visit https://groups.google.com/d/optout.


Re: [sage-devel] The future of polybori

2015-06-13 Thread 'Martin Albrecht' via sage-devel
On Saturday 13 Jun 2015 10:08:32 Francois Bissey wrote:
  On 13/06/2015, at 22:00, 'Martin Albrecht' via sage-devel
  sage-devel@googlegroups.com wrote:
  
  Hi all,
  
  On Friday 12 Jun 2015 13:45:05 R. Andrew Ohana wrote:
  What about this:
  
  Now: We work on making polybori an optional package in sage.
  
   * At least going by this thread, the number of people who use polybori
   in
  
  Sage is small enough for it to make sense to have polybori as an optional
  package.
  
  I know I might be outvoted and I haven't volunteered to just do the work,
  but I very much disagree with this. Dropping PolyBoRi as a default
  package makes Sage *a lot* less useful for me.
  
  Why does this need to happen now?
 
 Because it is a major blocker to getting sage ported to python 3.x.
 That’s currently the only dependency that doesn’t build with python 3.x.
 This is also the only thing using scons another currently python2 only thing
 that we very much want to ditch.

Okay, so the problem is that the Sage library cannot be ported to Python 3 
unless PolyBoRi is? That makes sense.

As a corollary this would also mean that making PolyBoRi an optional package 
would mean to drop it entirely as it wouldn't work as soon as the transition 
to Python 3 is here (?)

Cheers,
Martin

-- 
.www: https://martinralbrecht.wordpress.com
.pgp: 40BC 7F0D 724B 4AB1 CC98 4014 A040 043C 6532 AFB4
.xmpp: martinralbre...@jabber.ccc.de
.twitter: https://twitter.com/martinralbrecht
.keybase: https://keybase.io/martinralbrecht

-- 
You received this message because you are subscribed to the Google Groups 
sage-devel group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to sage-devel+unsubscr...@googlegroups.com.
To post to this group, send email to sage-devel@googlegroups.com.
Visit this group at http://groups.google.com/group/sage-devel.
For more options, visit https://groups.google.com/d/optout.


Re: [sage-devel] The future of polybori

2015-06-13 Thread 'Martin Albrecht' via sage-devel
Hi all,

On Friday 12 Jun 2015 13:45:05 R. Andrew Ohana wrote:
 What about this:
 
 Now: We work on making polybori an optional package in sage.
   * At least going by this thread, the number of people who use polybori in
 Sage is small enough for it to make sense to have polybori as an optional
 package.

I know I might be outvoted and I haven't volunteered to just do the work, but 
I very much disagree with this. Dropping PolyBoRi as a default package makes 
Sage *a lot* less useful for me. 

Why does this need to happen now?

   * (I looked into this before I did the autotoolization) It shouldn't take
 too much work to optionalize polybori -- the main effort will be its uses
 in the crypto code.
   * Polybori is the sole dependency of Sage that doesn't at least build
 against python 3 -- getting past this last major hurdle will make it much
 easier to work on porting the actual sage library to python 3.
 
 Future: The Singular team or whoever dedicates the time to maintain a
 sequel to polybori.
   * This will be required once we stop supporting python 2 in the very
 distant future (at least after 2020, which is the EOL for python 2).

Martin

-- 
.www: https://martinralbrecht.wordpress.com
.pgp: 40BC 7F0D 724B 4AB1 CC98 4014 A040 043C 6532 AFB4
.xmpp: martinralbre...@jabber.ccc.de
.twitter: https://twitter.com/martinralbrecht
.keybase: https://keybase.io/martinralbrecht

-- 
You received this message because you are subscribed to the Google Groups 
sage-devel group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to sage-devel+unsubscr...@googlegroups.com.
To post to this group, send email to sage-devel@googlegroups.com.
Visit this group at http://groups.google.com/group/sage-devel.
For more options, visit https://groups.google.com/d/optout.


Re: [sage-devel] The future of polybori

2015-06-13 Thread 'Martin Albrecht' via sage-devel
Hi all,

FYI, I put this out. Let's see if there *are* other users besides me:

https://martinralbrecht.wordpress.com/2015/06/13/polybori-is-dead-it-needs-your-help/

Cheers,
Martin

On Saturday 13 Jun 2015 11:00:16 Martin Albrecht wrote:
 Hi all,
 
 On Friday 12 Jun 2015 13:45:05 R. Andrew Ohana wrote:
  What about this:
  
  Now: We work on making polybori an optional package in sage.
  
* At least going by this thread, the number of people who use polybori
in
  
  Sage is small enough for it to make sense to have polybori as an optional
  package.
 
 I know I might be outvoted and I haven't volunteered to just do the work,
 but I very much disagree with this. Dropping PolyBoRi as a default package
 makes Sage *a lot* less useful for me.
 
 Why does this need to happen now?
 
* (I looked into this before I did the autotoolization) It shouldn't
take
  
  too much work to optionalize polybori -- the main effort will be its uses
  in the crypto code.
  
* Polybori is the sole dependency of Sage that doesn't at least build
  
  against python 3 -- getting past this last major hurdle will make it much
  easier to work on porting the actual sage library to python 3.
  
  Future: The Singular team or whoever dedicates the time to maintain a
  sequel to polybori.
  
* This will be required once we stop supporting python 2 in the very
  
  distant future (at least after 2020, which is the EOL for python 2).
 
 Martin
-- 
.www: https://martinralbrecht.wordpress.com
.pgp: 40BC 7F0D 724B 4AB1 CC98 4014 A040 043C 6532 AFB4
.xmpp: martinralbre...@jabber.ccc.de
.twitter: https://twitter.com/martinralbrecht
.keybase: https://keybase.io/martinralbrecht

-- 
You received this message because you are subscribed to the Google Groups 
sage-devel group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to sage-devel+unsubscr...@googlegroups.com.
To post to this group, send email to sage-devel@googlegroups.com.
Visit this group at http://groups.google.com/group/sage-devel.
For more options, visit https://groups.google.com/d/optout.


Re: [sage-devel] The future of polybori

2015-06-13 Thread 'Martin Albrecht' via sage-devel
Hi all,

On Saturday 13 Jun 2015 10:41:15 Francois Bissey wrote:
 I think Andrew has already done quite a bit of the porting to autotools and
 some python 3 fixes. But neither he or I want to be a maintainer - at least
 for the long term.

ah, sorry that I missed that. Great! How about this:

1. We create an organisation on GitHub PolyBoRi3 

2. We move Andrew's current version over there

3. I volunteer to be *a* maintainer, help would greatly be appreciated

I envision that it would be good to split PolyBoRi up roughly as follows to 
make maintenance simpler (please do tell me if this is silly). This way we 
keep dependencies of Sage as external dependencies and don't have to suck 
large parts into the Sage library proper:

- polybori-core (libpolybori, Cudd, groebner (?))

the C++ stuff that doesn't involve python at all. This would be a standard 
package in Sage (hopefully) and autotoolised.

- polybori-python-binding-boost (PyPolyBoRi)

the C++ boost stuff which does the Python bindings. This is not used by Sage - 
I believe - so we don't care much. Autotoolised, but not a priority, because 
Sage has its own Cython bindings reimplementing this stuff.

- polybori-python

The Python stuff which can be managed by distutils or whatever the kids are 
using now. This could in principle be an optional package, but I guess it 
might as well be standard given that's pure python and relatively small.

Cheers,
Martin

-- 
.www: https://martinralbrecht.wordpress.com
.pgp: 40BC 7F0D 724B 4AB1 CC98 4014 A040 043C 6532 AFB4
.xmpp: martinralbre...@jabber.ccc.de
.twitter: https://twitter.com/martinralbrecht
.keybase: https://keybase.io/martinralbrecht

-- 
You received this message because you are subscribed to the Google Groups 
sage-devel group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to sage-devel+unsubscr...@googlegroups.com.
To post to this group, send email to sage-devel@googlegroups.com.
Visit this group at http://groups.google.com/group/sage-devel.
For more options, visit https://groups.google.com/d/optout.


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


Re: [sage-devel] The future of polybori

2015-06-12 Thread 'Martin Albrecht' via sage-devel
I started talking to some people from the symbolic computation community to 
discuss options (e.g. if someone wants to take over maintenance). Hence, don't 
rush to a conclusion please, I'd really like to keep PolyBoRi around somehow 
but don't want to be (sole) maintainer.

Cheers,
Martin

On Thursday 11 Jun 2015 20:45:41 William Stein wrote:
 On Thursday, June 11, 2015, Ralf Stephan gtrw...@gmail.com wrote:
  So folks, be careful when you fork---you might end up as maintainer.
 
 Good point.  I think we should either
 
 1. Remove polybori or
 
 2. Have a specific person (or persons) step up to be maintainer.
 
 I'm fine with either option.
 
  --
  You received this message because you are subscribed to the Google Groups
  sage-devel group.
  To unsubscribe from this group and stop receiving emails from it, send an
  email to sage-devel+unsubscr...@googlegroups.com javascript:;.
  To post to this group, send email to sage-devel@googlegroups.com
  javascript:;.
  Visit this group at http://groups.google.com/group/sage-devel.
  For more options, visit https://groups.google.com/d/optout.
-- 
.www: https://martinralbrecht.wordpress.com
.pgp: 40BC 7F0D 724B 4AB1 CC98 4014 A040 043C 6532 AFB4
.xmpp: martinralbre...@jabber.ccc.de
.twitter: https://twitter.com/martinralbrecht
.keybase: https://keybase.io/martinralbrecht

-- 
You received this message because you are subscribed to the Google Groups 
sage-devel group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to sage-devel+unsubscr...@googlegroups.com.
To post to this group, send email to sage-devel@googlegroups.com.
Visit this group at http://groups.google.com/group/sage-devel.
For more options, visit https://groups.google.com/d/optout.


Re: [sage-devel] The future of polybori

2015-06-12 Thread 'Martin Albrecht' via sage-devel
Hi,

so, the Singular team *wants* to keep PolyBoRi alive, but it's currently not 
clear if and when they *can* devote resources to it. This will be clarified 
over the next few months it seems.

Cheers,
Martin

On Friday 12 Jun 2015 10:14:53 Martin Albrecht wrote:
 I started talking to some people from the symbolic computation community to
 discuss options (e.g. if someone wants to take over maintenance). Hence,
 don't rush to a conclusion please, I'd really like to keep PolyBoRi around
 somehow but don't want to be (sole) maintainer.
 
 Cheers,
 Martin
 
 On Thursday 11 Jun 2015 20:45:41 William Stein wrote:
  On Thursday, June 11, 2015, Ralf Stephan gtrw...@gmail.com wrote:
   So folks, be careful when you fork---you might end up as maintainer.
  
  Good point.  I think we should either
  
  1. Remove polybori or
  
  2. Have a specific person (or persons) step up to be maintainer.
  
  I'm fine with either option.
  
   --
   You received this message because you are subscribed to the Google
   Groups
   sage-devel group.
   To unsubscribe from this group and stop receiving emails from it, send
   an
   email to sage-devel+unsubscr...@googlegroups.com javascript:;.
   To post to this group, send email to sage-devel@googlegroups.com
   javascript:;.
   Visit this group at http://groups.google.com/group/sage-devel.
   For more options, visit https://groups.google.com/d/optout.
-- 
.www: https://martinralbrecht.wordpress.com
.pgp: 40BC 7F0D 724B 4AB1 CC98 4014 A040 043C 6532 AFB4
.xmpp: martinralbre...@jabber.ccc.de
.twitter: https://twitter.com/martinralbrecht
.keybase: https://keybase.io/martinralbrecht

-- 
You received this message because you are subscribed to the Google Groups 
sage-devel group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to sage-devel+unsubscr...@googlegroups.com.
To post to this group, send email to sage-devel@googlegroups.com.
Visit this group at http://groups.google.com/group/sage-devel.
For more options, visit https://groups.google.com/d/optout.


Re: [sage-devel] The future of polybori

2015-06-11 Thread 'Martin Albrecht' via sage-devel
Hi all,

I use it. Not as much as I used to (my research moved on) but it would be 
rather if it was gone. I also know that some people in my field use it, i.e. 
the BooleanPolynomialRing. If that was gone, we'd go from okay-ish to hell-ish 
for computing with an object which quite naturally arises in crypto and 
related fields.

I'm also up for helping out with maintenance:

1. We adopt the route that we took with Pynac (as a fork of Ginac). Our
fork might in the future become tightly coupled with Sage, but we
maintain it as a separate package outside of Sage.

2. We make a minimal fork, only include the minimal changes necessary to
build polybori without scons. If more substantive changes are needed, we
include those in the Sage library.

Being ignorant of some of the issues around Pynac, (1) would allow us to 
attract outside contributions more easily. Not sure how realistic that is, 
though. I'll point some of the usual suspects to this thread, let's see what 
happens.

Cheers,
Martin

On Wednesday 10 Jun 2015 19:39:11 William Stein wrote:
 Hi,
 
 Can somebody (say at least 3-5 people) who actually *use* polybori on
 a somewhat regular basis make some supporting remarks?I personally
 have used polybori for anything, nor do I really know of anybody else
 who has.   If there aren't at least a few people who use it regularly,
 then we should consider making it an optional package.


-- 
You received this message because you are subscribed to the Google Groups 
sage-devel group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to sage-devel+unsubscr...@googlegroups.com.
To post to this group, send email to sage-devel@googlegroups.com.
Visit this group at http://groups.google.com/group/sage-devel.
For more options, visit https://groups.google.com/d/optout.


Re: [sage-devel] password reset at http://trac.sagemath.org/

2015-05-19 Thread Martin Albrecht
Hi all,

Philipp Jovanovic  just had the same problem. Does it work for anyone?

Cheers,
Martin

On Friday 08 May 2015 17:41:26 Bill Page wrote:
 Is it working?  I tried to reset my password.  sage-trac sent me an
 email with a new one but it does seem to work. Anybody try this
 lately?
 
 -- Forwarded message --
 From: sage-trac t...@sagemath.org
 Date: 8 May 2015 at 17:30
 Subject: [Sage] Trac password reset for user: bpage
 To: bill.p...@newsynthesis.org
 
 
 Your Trac password has been reset.
 
 Here is your account information:
 
 Login URL: http://trac.sagemath.org/login
 Username: bpage
 Password: ...

-- 
You received this message because you are subscribed to the Google Groups 
sage-devel group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to sage-devel+unsubscr...@googlegroups.com.
To post to this group, send email to sage-devel@googlegroups.com.
Visit this group at http://groups.google.com/group/sage-devel.
For more options, visit https://groups.google.com/d/optout.


Re: [sage-devel] please review #18320

2015-05-18 Thread Martin Albrecht
Hi Vincent,

no hard feelings at all! It's hard to figure out a good balance for these 
kinds of things and one way is to try it out: I sent a request and people who 
object to such requests …object. Then we discuss :)

Back to the topic of discussion: I guess I'm up for more such requests on 
here, if it gets too much we may have to pull the breaks. 

In either case, this isn't a good solution to the long-standing patches-arent-
being-reviewed-in-a-timely-manner problem to which I have no solution except 
yet another attempt at an IRC sage hour a week where we all review/triage 
stuff.

Cheers,
Martin

On Monday 18 May 2015 21:37:50 Vincent Delecroix wrote:
 On 18/05/15 20:43, John Cremona wrote:
  One reason for setting up the other lists such as sage-nt (for number
  theory) and sage-algebra was to provide a place for such requests.
  But of course those lists will never cover everything.
 
 Agreed.
 
  I think that Martin (co-organiser with William and me of Sage Days 6
  in 2007) has enough community-respect points for us to allow him such
  bandwidth.
 
 Some people are allowed for this kind of request and others not? Very
 friendly. What about the following imaginary e-mail:
 
 hey, this is my first ticket. Does anybody want to review it?
 
 
 I feel unconfortable now since Martin might has taken my e-mail for
 himself but it was not. So please, Martin forgive me to use your e-mail
 as a pretext to send mine.
 
  On 18 May 2015 at 19:13, kcrisman kcris...@gmail.com wrote:
  There are a *lot* of tickets which are short, fix bugs, increase speed
  and are waiting for reviews. If all authors are advertising their
  tickets it will become a nightmare on sage-devel.
  
  If you want your ticket reviewed, it would be better:
   - looks for somebody that is likely to do the review and e-mail him
  
  personally
  
   - review another ticket and ask for a review back
  
  That's all true.  That said, Martin is a long-time enough Sage
  contributor
  that perhaps in this case he felt it was warranted, so I wouldn't
  second-guess it, for myself.  Maybe we need more, not fewer, review
  requests on sage-devel?  (And I will finally have time now to do some,
  already writing an email about this right now!)
 
 We already have a place to advertise needs review tickets which is
 called trac. Isn't it enough?
 
 Vincent

-- 
You received this message because you are subscribed to the Google Groups 
sage-devel group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to sage-devel+unsubscr...@googlegroups.com.
To post to this group, send email to sage-devel@googlegroups.com.
Visit this group at http://groups.google.com/group/sage-devel.
For more options, visit https://groups.google.com/d/optout.


[sage-devel] please review #18320

2015-05-17 Thread Martin Albrecht
Hi all,

http://trac.sagemath.org/ticket/18320 fixes a performance issue with 
polynomial sequences which are used for multivariate polynomials to e.g. store 
Gröbner bases and stuff. The patch is very short, it would be nice if someone 
could look at it as it makes a huge difference for large systems:


diff --git a/src/sage/rings/polynomial/multi_polynomial_sequence.py 
b/src/sage/rings/polynomial/multi_polynomial_sequence.py
index 8a3786d..6567629 100644
--- a/src/sage/rings/polynomial/multi_polynomial_sequence.py
+++ b/src/sage/rings/polynomial/multi_polynomial_sequence.py
@@ -311,11 +311,14 @@ def PolynomialSequence(arg1, arg2=None, immutable=False, 
cr=False, cr_str=None):
 
 try:
 e = next(iter(gens))
-
-try:
-parts = tuple(map(ring, gens)),
-except TypeError:
+# fast path for known collection types
+if isinstance(e, (tuple, list, Sequence_generic, 
PolynomialSequence_generic)):
 parts = tuple(tuple(ring(f) for f in part) for part in gens)
+else:
+try:
+parts = tuple(map(ring, gens)),
+except TypeError:
+parts = tuple(tuple(ring(f) for f in part) for part in gens)
 except StopIteration:
 parts = ((),)

Cheers,
Martin

-- 
You received this message because you are subscribed to the Google Groups 
sage-devel group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to sage-devel+unsubscr...@googlegroups.com.
To post to this group, send email to sage-devel@googlegroups.com.
Visit this group at http://groups.google.com/group/sage-devel.
For more options, visit https://groups.google.com/d/optout.


[sage-devel] sat review

2015-04-28 Thread Martin Albrecht
Hi,

if you care about SAT solving or memory leaks, could you review this one line 
patch?

- del self
+del self._solver

  http://trac.sagemath.org/ticket/18318

We never called the C++ destructor of the CryptoMiniSat class which means 
memleaks, big time.

Cheers,
Martin

-- 
You received this message because you are subscribed to the Google Groups 
sage-devel group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to sage-devel+unsubscr...@googlegroups.com.
To post to this group, send email to sage-devel@googlegroups.com.
Visit this group at http://groups.google.com/group/sage-devel.
For more options, visit https://groups.google.com/d/optout.


Re: [sage-devel] Re: Non-Sage C code in the Sage library

2015-04-22 Thread Martin Albrecht
On Wednesday 22 Apr 2015 14:10:51 Jeroen Demeyer wrote:
 And then there are these, which seem to be external packages, but I
 couldn't find a corresponding upstream:
 
 src/sage/stats/distributions/*.c

Upstream (autotool-ised and all) is here:

  https://bitbucket.org/malb/dgs

Cheers,
Martin

-- 
You received this message because you are subscribed to the Google Groups 
sage-devel group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to sage-devel+unsubscr...@googlegroups.com.
To post to this group, send email to sage-devel@googlegroups.com.
Visit this group at http://groups.google.com/group/sage-devel.
For more options, visit https://groups.google.com/d/optout.


Re: [sage-devel] Sage Enhancement Proposal: Edwards Curves Library

2015-02-20 Thread Martin Albrecht
Hi,

can you perhaps give a bit more context? Firstly, I'm not sure everybody here 
knows why Edwards curves are cool. Secondly, what does your library do and how 
does that compare to everything else out there.

Cheers,
Martin

On Friday 20 Feb 2015 01:04:36 Adarsh Saraf wrote:
 Hello everybody,
 
 As part of my Masters thesis, I have developed a module related to the
 Edwards model for Elliptic Curves. I was of the opinion that it would be
 helpful for many if it can be integrated into Sage. Would like to know if
 you also feel the same and if I should open a ticket on the trac server?
 
 Also the functions were written to suit my needs and are therefore not as
 well written as they ought to be for Sage. I would work on it if it seems
 useful to add the module to Sage.
 
 Awaiting your comments,
 Adarsh Saraf

-- 
You received this message because you are subscribed to the Google Groups 
sage-devel group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to sage-devel+unsubscr...@googlegroups.com.
To post to this group, send email to sage-devel@googlegroups.com.
Visit this group at http://groups.google.com/group/sage-devel.
For more options, visit https://groups.google.com/d/optout.


Re: [sage-devel] Sage is grown up; needs a last name

2015-02-18 Thread Martin Albrecht
+1 from me.

On Wednesday 18 Feb 2015 07:13:03 William Stein wrote:
 Hi Sage Developers,
 
 Several people and events have suggested to me that the official name
 of Sage should be filled out to be SageMath, like the website url
 (which is sagemath.org and has been since I bought it in 2006).One
 motivation is that a trademark search [1] for Sage shows over 1100
 results, whereas a search for SageMath gives 0 results.  Another
 motivation is that many other software products are called Sage, which
 causes confusion.
 
 This change could be pretty **minimal**, at least initially.  The
 actual command name and sage: prompt wouldn't change, and we would
 still call it sage in discussions, emails, etc.  It's just that the
 full name of the software is SageMath, so Math is sort of a
 disambiguating last name. However, the website would change from
 beginning with Sage is a free open-source mathematics software system
 licensed ... to SageMath is a free open-source mathematics software
 system licensed ..., and we would encourage using the tag sagemath
 in places like stackoverflow.  And there would be a FAQ entry.
 
 Personally, in the very long run I think this is the right thing to do
 to help our users avoid confusion and to be respectful to the many
 other projects called just Sage.   I don't want this to turn into a
 bikeshedding discussion, with a million suggestions for names.  I also
 don't think any other name change would make sense or be as seamless
 except maybe SageMaths (I'm curious if SageMath sounds really bad to
 non-Americans?)
 
 [1] http://tmsearch.uspto.gov/bin/gate.exe?f=searchssstate=4807:xnwk8p.1.1

-- 
You received this message because you are subscribed to the Google Groups 
sage-devel group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to sage-devel+unsubscr...@googlegroups.com.
To post to this group, send email to sage-devel@googlegroups.com.
Visit this group at http://groups.google.com/group/sage-devel.
For more options, visit https://groups.google.com/d/optout.


Re: [sage-devel] Fastest way to multiply vector with matrix?

2015-02-17 Thread Martin Albrecht
Hi Simon,

over GF(2) it helps to multiply from the left:

sage: A = random_matrix(GF(2), 1024, 1024)
sage: v = random_matrix(GF(2), 1024, 1)
sage: %timeit A*v
1 loops, best of 3: 85 µs per loop
sage: vT = v.transpose()
sage: AT = A.transpose()
sage: %timeit vT*AT
10 loops, best of 3: 15 µs per loop

This doesn't help over GF(2^2), though:

sage: v = random_matrix(GF(2^2,'a'), 1024, 1)
sage: A = random_matrix(GF(2^2,'a'), 1024, 1024)
sage: %timeit A*v
100 loops, best of 3: 4.41 ms per loop
sage: vT = v.transpose()
sage: AT = A.transpose()
sage: %timeit vT*AT
100 loops, best of 3: 8.62 ms per loop

The matrices over GF(2^2) are in the wrong format, I'd say, i.e. they use 
bitpacked instead of bitsliced representation. If we'd represent matrices over 
GF(2^e) directly as GF(2) slices, this should only cost something like 45 µs 
per loop.

Cheers,
Martin

On Tuesday 17 Feb 2015 17:04:54 Simon King wrote:
 Hi!
 
 I have vectors (say, nx1 matrices) over finite fields, and I have nxn
 matrices, by which I want ot multiply the vectors.
 If I am taking the default matrix implementations for fields GF(2),
 GF(4), GF(5) and GF(25), the timings are considerably worse than when
 taking my age-old wrapper for an age-old matrix implementation in
 C-MeatAxe (which is part of my group cohomology spkg).
 
 Asymptotically fast multiplication doesn't seem relevant here. So I
 wonder: Is there perhaps some overhead killing the performance? What
 would you recommend as the fastest way in Sage to multiply a vector
 with a matrix over small finite not necessarily prime fields?
 
 Best regards,
 Simon

-- 
You received this message because you are subscribed to the Google Groups 
sage-devel group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to sage-devel+unsubscr...@googlegroups.com.
To post to this group, send email to sage-devel@googlegroups.com.
Visit this group at http://groups.google.com/group/sage-devel.
For more options, visit https://groups.google.com/d/optout.


Re: [sage-devel] Re: Python 3 focused Sage Days

2015-01-12 Thread Martin Albrecht
Hi, here's a reply from a PolyBoRi developer:

--  Forwarded Message  --

Subject: Re: [Polybori-discuss] Fwd: Re: [sage-devel] Re: Python 3 focused 
SageDays
Date: Saturday 10 Jan 2015, 22:19:16
From: Alexander Dreyer adre...@t-online.de
To: Martin Albrecht martinralbre...@googlemail.com, Polybori Discuss 
polybori-disc...@lists.sourceforge.net

Hi Martin,
Unfortunately, Andrew's right, PolyBoRi died when its developers left the 
scientific community. I'm not sure, what's the best way for SAGE to deal with 
it. Porting PolyBoRi's py files shouldn't be a big deal, and Sage already uses  
it's own Cython-bindings for the data structures. What remains is scons. 
Perhaps, it's easier to set up a setup.py or another build system than 
removing PolyBoRi from all the crypto modules. (You probably know the 
dependencies better than me.) For working around lots of scons issues, most of 
the SConstruct file is plain python anyway.

Best regards,
  Alexander
-

On Thursday 08 Jan 2015 18:06:59 R. Andrew Ohana wrote:
 On Thu, Jan 8, 2015 at 5:38 PM, kcrisman kcris...@gmail.com wrote:
  All our dependencies have proper support for Python 3,
  
  
  What about 17 and 18 at http://trac.sagemath.org/ticket/15530?
 
 Yes, you are right. I had forgotten about those when I posted this. 17
 (scons) only exists because of 18 (polybori) and csage, although there has
 been some work to move off of scons for csage. I'm not really familiar with
 the polybori situation, other than from the outside, the project appears to
 be dead, so we would have to handle that somehow. Certainly, most of sage
 *should* be usable without polybori, so we *should* be able to get
 something up and running without it (considering how messed up the imports
 are in sage though, it wouldn't surprise me if it would take a ton of work
 to make sage usable without polybori).
 
  --
 
  You received this message because you are subscribed to the Google Groups
  sage-devel group.
  To unsubscribe from this group and stop receiving emails from it, send an
  email to sage-devel+unsubscr...@googlegroups.com.
  To post to this group, send email to sage-devel@googlegroups.com.
  Visit this group at http://groups.google.com/group/sage-devel.
  For more options, visit https://groups.google.com/d/optout.

-- 
You received this message because you are subscribed to the Google Groups 
sage-devel group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to sage-devel+unsubscr...@googlegroups.com.
To post to this group, send email to sage-devel@googlegroups.com.
Visit this group at http://groups.google.com/group/sage-devel.
For more options, visit https://groups.google.com/d/optout.


Re: [sage-devel] Sage Learn_sat AttributeError

2014-11-11 Thread Martin Albrecht
On Tuesday 11 Nov 2014 02:43:19 Joe ouni wrote:
  /opt/sage-6.0-x86_64-Linux/local/lib/python2.7/site-packages/sage/structu
  re/sequence.py, 
   line 944, in __getattr__
   
   raise AttributeError('Sequence_generic' object has no attribute
   
   '%s'%name)
   AttributeError: 'Sequence_generic' object has no attribute 'ideal'

Looks like a bug: We shouldn't get a Sequence_generic here but an 
MPolynomialSequence, i.e. some type is wrong. Can you open a ticket with a 
minimal failing example and CC me. I'll look into it.

Cheers,
Martin

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


[sage-devel] 32-bit help

2014-08-18 Thread Martin Albrecht
Hi all,

at http://trac.sagemath.org/ticket/15915 there's a ticket which is ready to go 
except potentially for some non-deterministic 32-bit doctest failure. 

That ticket implements discrete Gaussian samplers and one instantiation is 
non-deterministic (using random() for speed). This particular instantiation 
might fail non-deterministically on 32-bit systems (as reported in the 
comments of the ticket). On my local 32-bit system (Virtualbox Debian 
GNU/Linux) things seem to be fine, so I was wondering if other people on this 
list with access to 32-bit Linux machines could try it?

Just git pull  sage -b and run

   sage -t src/sage/stats/distributions/discrete_gaussian_integer.pyx

a few times and report back if tests pass everytime or not.

Thank you,
Martin

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


Re: [sage-devel] Integer matrices using FLINT

2014-08-13 Thread Martin Albrecht
On Wednesday 13 Aug 2014 04:27:54 Marc Masdeu wrote:
 Alright, so the data available with the new implementation is different,
 since everything is encapsulated into flint types. What would be the right
 approach? Should I keep the old types and provide conversion functions, or
 should the different functions decide on other algorithms depending on some
 heuristics (which should be re-done)?

I would suggest to write conversion functions from fmpz_mat_t to pari, linbox, 
iml, NTL and back. Then use those to to convert to, run the computation, and 
convert back.

As for the heuristics, I would start with FLINT being the default but would 
check if alternative implementations beat it for the values suggested by the 
old heuristics.

 Also, do you think it is worth keeping the native code (the one written by
 William) -- especially for the basic functionality --, or this should be
 considered superseded by the FLINT functionality?

I would consider it superseded once all missing features are ported over. I 
would not keep it around, that's a maintenance nightmare.
 
 For now, and as an intermediate step, I will reincorporate the calls to
 other packages but set the defaults to using flint whenever possible.
 
 Thanks for the feedback!
 
 Marc.
 
 On Tuesday, August 12, 2014 7:00:38 PM UTC+1, wstein wrote:
  On Tue, Aug 12, 2014 at 10:52 AM, Martin Albrecht
  
  martinr...@googlemail.com javascript: wrote:
   Hi, I like the proposal to move some types over to FLINT. However, you
  
  removed
  
   some options, e.g. calling Pari, LinBox or IML for solving certain
  
  problems
  
   (charpoly, kernel, …). I'd prefer these options to be preserved as it is
  
  not
  
   clear to me a priori that FLINT will in all cases be fastest. Also,
  
  having
  
   choices allows to compare results.
  
  +1.   In my experience, having implemented Matrix_integer_dense in the
  first place, most systems that we call are full of bugs.   It's almost
  never the case that any of the claimed functions, e.g., charpoly,
  kernel, etc. aren't buggy.  It's critical (and disturbing) to run test
  code comparing the various systems with various random (and not)
  inputs.
  Also, there are some systems like linbox that have proof=False
  options, which can be faster, but will in fact be very wrong,
  especially in corner cases.
  
  I also noticed your patch removes a bunch of verbose output.  Why?
  Having the potential for logging when running code is very useful:
  
  - t = verbose('hermite mod %s'%D, caller_name='matrix_integer_dense')
  cdef Matrix_integer_dense res =
  self._new_uninitialized_matrix(self._nrows, self._ncols)
  self._hnf_modn(res, D)
  - verbose('finished hnf mod', t, caller_name='matrix_integer_dense')
  
  william
  
   Cheers,
   Martin
   
   On Tuesday 12 Aug 2014 10:12:04 Marc Masdeu wrote:
   Hi,
   
   Recently I noticed that Sage was not using fmpz_mat_t for matrices
   (probably when FLINT was incorporated in Sage it didn't yet have this).
  
  I
  
   have opened a ticket (http://trac.sagemath.org/ticket/16803 --thanks
   pbruin!--) with a patch that reimplements matrix_integer_dense with
  
  FLINT,
  
   and it would probably be a good idea to do a similar thing for
  
  fmpq_mat_t.
  
   In any case, I am new to FLINT so I might not be doing the right
  
  things, if
  
   any expert is willing to review the ticket it would be great!
   
   Best,
   
   Marc.

-- 
You received this message because you are subscribed to the Google Groups 
sage-devel group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to sage-devel+unsubscr...@googlegroups.com.
To post to this group, send email to sage-devel@googlegroups.com.
Visit this group at http://groups.google.com/group/sage-devel.
For more options, visit https://groups.google.com/d/optout.


Re: [sage-devel] Integer matrices using FLINT

2014-08-12 Thread Martin Albrecht
Hi, I like the proposal to move some types over to FLINT. However, you removed 
some options, e.g. calling Pari, LinBox or IML for solving certain problems 
(charpoly, kernel, …). I'd prefer these options to be preserved as it is not 
clear to me a priori that FLINT will in all cases be fastest. Also, having 
choices allows to compare results.

Cheers,
Martin

On Tuesday 12 Aug 2014 10:12:04 Marc Masdeu wrote:
 Hi,
 
 Recently I noticed that Sage was not using fmpz_mat_t for matrices
 (probably when FLINT was incorporated in Sage it didn't yet have this). I
 have opened a ticket (http://trac.sagemath.org/ticket/16803 --thanks
 pbruin!--) with a patch that reimplements matrix_integer_dense with FLINT,
 and it would probably be a good idea to do a similar thing for fmpq_mat_t.
 
 In any case, I am new to FLINT so I might not be doing the right things, if
 any expert is willing to review the ticket it would be great!
 
 Best,
 
 Marc.

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


Re: [sage-devel] Re: review requests

2014-08-06 Thread Martin Albrecht
Hi Jakob,

thanks!

Here is some documentation on how to review a patch in Sage:

   http://sagemath.org/doc/developer/trac.html#section-review-patches

but it essentially boils down to reading the code and checking if it is sound 
+ checking that it indeed solves the problem + was a testcase added?

Note that the green circle in the top right of the ticket at 

   http://trac.sagemath.org/ticket/15672

tells you that normal doctests pass and that the patch applies. This does not 
test optional doctests, though, i.e. those involving Magma. Let me know if you 
need any help.

Cheers,
Martin

On Wednesday 06 Aug 2014 01:12:55 Jakob Kroeker wrote:
 Hi Martin,
 
 
 I would review (the simple) 15672.
 Since it is my first review in Sagemath, I have to find out how to review
 first
 and how to check, that your patch is indeed correct.
 
 
 Jakob
 
 Am Montag, 4. August 2014 19:26:44 UTC+2 schrieb Martin Albrecht:
  Hi all,
  
  anyone up for reviewing:
  
  1)
  
http://trac.sagemath.org/ticket/15672
  
  which fixes a simple bug in the Magma interface when computing Gröbner
  bases.
  
  2)
  
http://trac.sagemath.org/ticket/16585
  
  which improves Polynomial Sequences and fixes many small annoyances there.
  
  Cheers,
  Martin

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


[sage-devel] review requests

2014-08-04 Thread Martin Albrecht
Hi all,

anyone up for reviewing:

1)

  http://trac.sagemath.org/ticket/15672

which fixes a simple bug in the Magma interface when computing Gröbner bases.

2) 

  http://trac.sagemath.org/ticket/16585

which improves Polynomial Sequences and fixes many small annoyances there.

Cheers,
Martin

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


[sage-devel] Re: strange (to me) doctest failure

2014-07-08 Thread Martin Albrecht
Sure, this was about fixing a bug introduced in said ticket (which I now found 
:)

On Tuesday 08 Jul 2014 00:29:18 Eric Gourgoulhon wrote:
 Hi,
 
 Le lundi 7 juillet 2014 22:22:10 UTC+2, Martin Albrecht a écrit :
  Hi,
  
  over at http://trac.sagemath.org/ticket/12718 I am encountering a strange
  doctest failure:
  
  This will fail in a fresh instance of Sage:
  sage: matrix(QQ['x,y'], 2, 2, [1, 1, 1, 1]) / x
  
  with a TypeError (no error message)
 
  It works for me (with Sage 6.2):
 
 
┌┐
 │ Sage Version 6.2, Release Date: 2014-05-06 │
 │ Type notebook() for the browser-based notebook interface.│
 │ Type help() for help.│
 
└┘
 sage: matrix(QQ['x,y'], 2, 2, [1, 1, 1, 1]) / x
 [1/x 1/x]
 [1/x 1/x]
 
 Best wishes,
 
 Eric.

-- 
You received this message because you are subscribed to the Google Groups 
sage-devel group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to sage-devel+unsubscr...@googlegroups.com.
To post to this group, send email to sage-devel@googlegroups.com.
Visit this group at http://groups.google.com/group/sage-devel.
For more options, visit https://groups.google.com/d/optout.


[sage-devel] strange (to me) doctest failure

2014-07-07 Thread Martin Albrecht
Hi,

over at http://trac.sagemath.org/ticket/12718 I am encountering a strange 
doctest failure:

This will fail in a fresh instance of Sage:

sage: matrix(QQ['x,y'], 2, 2, [1, 1, 1, 1]) / x

with a TypeError (no error message)

However, if I do:

  sage: matrix(QQ['x,y'], 2, 2, [1, 1, 1, 1]) * x
  [x x]
  [x x]
  sage: matrix(QQ['x,y'], 2, 2, [1, 1, 1, 1]) / x
  [1/x 1/x]
  [1/x 1/x]

everything works. In those examples, x is a symbolic variable.

Any ideas?

Martin


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


[sage-devel] PSA: Review Moar

2014-06-30 Thread Martin Albrecht
Hi,

Sage Days 59 is about to wrap up. A few bugs were fixed and are awaiting 
review on Trac:

  
http://trac.sagemath.org/query?status=needs_infostatus=needs_reviewkeywords=~sd59

Please take a few moments to check that list and review some patches. It would 
be a shame to let them bitrot.

On a related note please check

   http://trac.sagemath.org/query?status=needs_review

and review it to death or so. You know you want to!

Cheers,
Martin

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


Re: [sage-devel] Error in ideal.variety(QQbar) for a polynomial ideal over the rational

2014-06-27 Thread Martin Albrecht
already fixed it seems:  http://trac.sagemath.org/ticket/16485

On Friday 27 Jun 2014 17:43:13 Nicolas M. Thiery wrote:
   Hi!
 
 I have a zero-dimensional ideal of polynomials over the rational, and
 getting an error when requesting the solutions over QQbar:
 
 sage: R.p00,p01,p02,p10,p11,p12 = QQ[]
 sage: eq = [5/9*p00^2 + 2/3*p00*p01 + 1/3*p01^2 + 2/9*p00*p02 +
 2/3*p01*p02 + 5/9*p02^2 - 5/9, :   5/9*p00*p10 + 1/3*p01*p10 +
 1/9*p02*p10 + 1/3*p00*p11 + 1/3*p01*p11 + 1/3*p02*p11 + 1/9*p00*p12 +
 1/3*p01*p12 + 5/9*p02*p12 - 4/9, :   5/9*p00*p10 + 1/3*p01*p10 +
 1/9*p02*p10 + 1/3*p00*p11 + 1/3*p01*p11 + 1/3*p02*p11 + 1/9*p00*p12 +
 1/3*p01*p12 + 5/9*p02*p12 - 4/9, :   5/9*p10^2 + 2/3*p10*p11 +
 1/3*p11^2 + 2/9*p10*p12 + 2/3*p11*p12 + 5/9*p12^2 - 5/9, :   p00^2
 + p01^2 + p02^2 - 1,
 :   p00*p10 + p01*p11 + p02*p12,
 :   p00*p10 + p01*p11 + p02*p12,
 :   p10^2 + p11^2 + p12^2 - 1]
 sage: I.dimension()
 0
 sage: I.vector_space_dimension()
 16
 sage: I.variety()
 []
 
 So far, so good. However:
 
 sage: I.variety(QQbar)
 ...

 /opt/sage-git/local/lib/python2.7/site-packages/sage/rings/polynomial/multi
 _polynomial_ideal.pyc in _variety(T, V, v) 2619 vbar =
 v.copy()
2620 vbar[variable] = root
 - 2621 Tbar = [ f.subs({variable:root}) for f in T ]
2622 _variety(Tbar,V,vbar)
2623
 

 /opt/sage-git/local/lib/python2.7/site-packages/sage/rings/polynomial/multi
 _polynomial_libsingular.so in
 sage.rings.polynomial.multi_polynomial_libsingular.MPolynomial_libsingular.
 subs
 (build/cythonized/sage/rings/polynomial/multi_polynomial_libsingular.cpp:22
 725)() TypeError: keys do not match self's parent
 
 I manage to get some of the solutions via a triangular decomposition,
 but not all of them::
 
 sage: J1, J2 = I.triangular_decomposition()
 sage: J2.variety(QQbar)
 [{p12: -0.9082482904638630?, p00: -0.4082482904638630?, p11:
 0.09175170953613699?, p01: -0.9082482904638630?, p10: -0.4082482904638630?,
 p02: 0.09175170953613699?}, {p12: -0.09175170953613699?, p00:
 0.4082482904638630?, p11: 0.9082482904638630?, p01: -0.09175170953613699?,
 p10: 0.4082482904638630?, p02: 0.9082482904638630?}, {p12:
 0.09175170953613699?, p00: -0.4082482904638630?, p11: -0.9082482904638630?,
 p01: 0.09175170953613699?, p10: -0.4082482904638630?, p02:
 -0.9082482904638630?}, {p12: 0.9082482904638630?, p00: 0.4082482904638630?,
 p11: -0.09175170953613699?, p01: 0.9082482904638630?, p10:
 0.4082482904638630?, p02: -0.09175170953613699?}] sage: J1.variety(QQbar)
 *BANG AS ABOVE*
 
 Any insight? Should I file a ticket?
 
 Cheers,
   Nicolas
 --
 Nicolas M. Thiéry Isil nthi...@users.sf.net
 http://Nicolas.Thiery.name/

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


Re: [sage-devel] Re: Who won the Spies Prize?

2014-06-17 Thread Martin Albrecht
Indeed, congratulations!

On Monday 16 Jun 2014 12:59:08 kcrisman wrote:
 http://youtu.be/I9Myt5NTeCc
 
 
 Congratulations, Volker!

-- 
You received this message because you are subscribed to the Google Groups 
sage-devel group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to sage-devel+unsubscr...@googlegroups.com.
To post to this group, send email to sage-devel@googlegroups.com.
Visit this group at http://groups.google.com/group/sage-devel.
For more options, visit https://groups.google.com/d/optout.


[sage-devel] Re: Seattle Questions

2014-06-06 Thread Martin Albrecht
On Thursday 05 Jun 2014 20:58:55 you wrote:
 Do I need to book a hotel or can we stay at the house?

You will need to book a hotel room, see: 

  https://groups.google.com/forum/#!topic/bugdays/FhB7gi1JY80

You should also subscribe to that list to stay in the loop.

 Is there anyone who could get me from the airport or do I need to take a
 bus or something?

You will need to arrange your own transportation from/to the airport. I have 
no idea if that's reimbursed or not, though.

Cheers,
Martin

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


[sage-devel] Fwd: [m4ri-devel] Website and automake

2014-06-03 Thread Martin Albrecht
Hi, it seems m4ri.sagemath.org is down (it's hosted by Sage as the URL 
indicates), did anything change recently?

Cheers,
Martin


--  Forwarded Message  --

Subject: [m4ri-devel] Website and automake
Date: Tuesday 03 Jun 2014, 06:12:50
From: william williamandrewalumba...@gmail.com
To: m4ri-de...@googlegroups.com

The main website http://m4ri.sagemath.org/ is down right now.


I notice there had been a issue, as I  have been using automake 1.14, 
and unless and update has been pushed, m4ri is still using 1.13 (which 
causes a lot of warnings.   1.14 is getting ready for automake 2).



-- 
You received this message because you are subscribed to the Google Groups 
M4RI Development group.
To unsubscribe from this group and stop receiving emails from it, send an 
email to m4ri-devel+unsubscr...@googlegroups.com.
To post to this group, send an email to m4ri-de...@googlegroups.com.
Visit this group at http://groups.google.com/group/m4ri-devel.
For more options, visit https://groups.google.com/d/optout.
-

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


[sage-devel] Re: [m4ri-devel] Website and automake

2014-06-03 Thread Martin Albrecht
Thanks Keith.

On Tuesday 03 Jun 2014 10:10:11 you wrote:
 I fixed the DNS record, so the site should be back up now.
 
 -Keith
 
 On Tuesday, June 3, 2014 4:16:35 AM UTC-7, Martin Albrecht wrote:
  Hi, it seems m4ri.sagemath.org is down (it's hosted by Sage as the URL
  indicates), did anything change recently?
  
  Cheers,
  Martin
  
  
  --  Forwarded Message  --
  
  Subject: [m4ri-devel] Website and automake
  Date: Tuesday 03 Jun 2014, 06:12:50
  From: william williamandr...@gmail.com javascript:
  To: m4ri-...@googlegroups.com javascript:
  
  The main website http://m4ri.sagemath.org/ is down right now.
  
  
  I notice there had been a issue, as I  have been using automake 1.14,
  and unless and update has been pushed, m4ri is still using 1.13 (which
  causes a lot of warnings.   1.14 is getting ready for automake 2).

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


Re: [sage-devel] Re: How to template cdef classes

2014-05-14 Thread Martin Albrecht
We've done some templating before when Cython didn't speak C++ so well and/or 
when C code was involved.

1. sage.rings.polynomials.polynomial_template provides a way to wrap 
univariate polynomials.

It is used by three classes:

polynomial_gf2x
polynomial_zmod_flint
polynomial_zz_pex

2. Matrix_modn_dense_template is used to wrap LinBox's FFLAS for doubles and 
floats.

Both have in common that they do templating C style: write generic code based 
on some defines where these defines are then included in a header.

Cheers,
Martin


On Wednesday 14 May 2014 08:17:44 Jean-Pierre Flori wrote:
 On Wednesday, May 14, 2014 5:09:11 PM UTC+2, Simon King wrote:
  Hi Jean-Pierre,
  
  On 2014-05-14, Jean-Pierre Flori jpf...@gmail.com javascript: wrote:
   Maybe use Cython C++ template support?
   Note that recent Cython version even allows C++ template functions (and
  
  not
  
   only classes/methods as before).
  
  In the cython version that is included in Sage? And is it possible to
  write this in plain Cython, or do you just mean that it is possible to
  wrap
  C++ code, as in
  http://docs.cython.org/src/userguide/wrapping_CPlusPlus.html ?
 
 oops, indeed you would have to wrap C++ code.

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


[sage-devel] a magma doctest failure

2014-05-11 Thread Martin Albrecht
Hi there,

over at http://trac.sagemath.org/ticket/16322 we're fixing all the # optional 
- magma doctest failures.

There's one more to take care off. I'm sure this is trivial to some of you, so 
I am posting it here :)

sage -t --long src/sage/rings/number_field/number_field.py
**
File src/sage/rings/number_field/number_field.py, line 4568, in 
sage.rings.number_field.number_field.NumberField_generic.galois_group
Failed example:
NumberField(x^3 + 2*x + 1, 'a').galois_group(algorithm='magma')   # 
optional - magma, , database_gap
Exception raised:
Traceback (most recent call last):
  File /bulk/home/malb/software/sage/local/lib/python2.7/site-
packages/sage/doctest/forker.py, line 480, in _run
self.execute(example, compiled, test.globs)
  File /bulk/home/malb/software/sage/local/lib/python2.7/site-
packages/sage/doctest/forker.py, line 839, in execute
exec compiled in globs
  File doctest 
sage.rings.number_field.number_field.NumberField_generic.galois_group[10], 
line 1, in module
NumberField(x**Integer(3) + Integer(2)*x + Integer(1), 
'a').galois_group(algorithm='magma')   # optional - magma, , database_gap
  File cachefunc.pyx, line 1591, in 
sage.misc.cachefunc.CachedMethodCaller.__call__ (sage/misc/cachefunc.c:9194)
  File cachefunc.pyx, line 2191, in 
sage.misc.cachefunc.CachedMethod._instance_call (sage/misc/cachefunc.c:11887)
  File /bulk/home/malb/software/sage/local/lib/python2.7/site-
packages/sage/rings/number_field/number_field.py, line 4595, in galois_group
return GaloisGroup_v2(self, names)
  File /bulk/home/malb/software/sage/local/lib/python2.7/site-
packages/sage/rings/number_field/galois_group.py, line 184, in __init__
self._galois_closure, self._gc_map = 
number_field.galois_closure(names=names, map=True)
  File /bulk/home/malb/software/sage/local/lib/python2.7/site-
packages/sage/rings/number_field/number_field.py, line 7005, in 
galois_closure
L, self_into_L = self._galois_closure_and_embedding(names)
  File /bulk/home/malb/software/sage/local/lib/python2.7/site-
packages/sage/rings/number_field/number_field.py, line 6922, in 
_galois_closure_and_embedding
raise TypeError(You must specify the name of the generator.)
TypeError: You must specify the name of the generator.

Cheers,
Martin

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


[sage-devel] sage.misc.interpreter.SageTerminalApp hooks?

2014-05-11 Thread Martin Albrecht
Hi all,

is there a way to add a hook to the SageTerminalApp, i.e. that part of Sage 
which takes part of normal shell I/O? I'd like my local Sage install to be 
behave as follows:

 * if execution takes longer than, say, 5 minutes, print the wall + cpu time
 * if execution takes longer than, say, 60 minutes, send a notification using 
  sage.misc.messaging.pushover

Does the current design allow this?

Cheers,
Martin

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


Re: [sage-devel] vote: include pip with sage

2014-05-10 Thread Martin Albrecht
I was motivated by this thread to look into pip again. I like it, so +1 for 
inclusion. 

We might e.g. drop SQLAlchemy in return,which would Sage smaller instead of 
bigger. It is trivial to install using pip, it seems no code in the library 
depends on it, and the version we are shipping is very old.

Cheers,
Martin

On Wednesday 23 Apr 2014 15:46:50 William Stein wrote:
 Hi,
 
 There used to be a lot of confusion about which package manager /
 installer one should use with python -- easy_install?  setuptools?
 etc.
 
 Now the choice is clear: pip -- A tool for installing and managing
 Python packages.
 
 See https://pypi.python.org/pypi/pip
 
 pip is amazing -- you can actually install/upgrade/remove Python
 packages (see below), unlike the mess that we had to deal with for
 years.   We should pay attention to the existence of this tool.
 
 I think we should include pip with Sage, especially since installing a
 package manager is always a little _weird_.  Right now, one installs
 pip by doing this:
 
 sage -sh
 wget https://raw.github.com/pypa/pip/master/contrib/get-pip.py;
 python get-pip.py
 
 
 
   [ ] Yes, make pip a standard part of Sage.
 
   [ ] No, pip does not belong in Sage.
 
 
 
 
 --
 
 ~$ pip --help
 
 Usage:
   pip command [options]
 
 Commands:
   install Install packages.
   uninstall   Uninstall packages.
   freeze  Output installed packages in requirements
 format. listList installed packages.
   showShow information about installed packages.
   search  Search PyPI for packages.
   wheel   Build wheels from your requirements.
   zip DEPRECATED. Zip individual packages.
   unzip   DEPRECATED. Unzip individual packages.
   bundle  DEPRECATED. Create pybundles.
   helpShow help for commands.
 
 General Options:
   -h, --help  Show help.
   -v, --verbose   Give more output. Option is additive,
 and can be used up to 3 times.
   -V, --version   Show version and exit.
   -q, --quiet Give less output.
   --log-file path   Path to a verbose non-appending log,
 that only logs failures. This log is active by default at
 /projects/3702601d-9fbc-4e4e-b7ab-c10a79e34d3b/.pip/pip.log.
   --log pathPath to a verbose appending log. This
 log is inactive by default.
   --proxy proxy Specify a proxy in the form
 [user:passwd@]proxy.server:port.
   --timeout sec Set the socket timeout (default 15 seconds).
   --exists-action actionDefault action when a path already
 exists: (s)witch, (i)gnore, (w)ipe, (b)ackup.
   --cert path   Path to alternate CA bundle.

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


Re: [sage-devel] Singular upgrade plans?

2014-05-07 Thread Martin Albrecht
Hi,

which version of Singular should be upgrade to? I see that 3-1-6 is the most 
recent one and this seems to be shipped with Sage. What am I missing?

Cheers,
Martin

On Wednesday 07 May 2014 04:41:18 kroe...@uni-math.gwdg.de wrote:
 Hello,
 
 
 I would like to switch with our project in algebraic geometry (resolution
 of singularities using Lipman's approach)
 from Singular to Sage ( the main reason is that Python is superior in
 comparison to Singular's interpreter language )
 However, the project depends on recent bug-fixes in Singular for
 computations in polynomial rings over integer coefficients.
 
 Question:
 
- what are the current plans of the sage-team related to Singular
upgrade?
 
 
 
 Jack

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


Re: [sage-devel] Singular upgrade plans?

2014-05-07 Thread Martin Albrecht
Singular 4-0-0 is the result of that big refactoring effort, right? I guess 
upgrading to that would take some time. Indeed, it might be a good idea to do 
it with 1-2 Singular develops at hand to ask questions.

On Wednesday 07 May 2014 05:27:25 kroe...@uni-math.gwdg.de wrote:
 yes, that's true. Singular 4-0-0 seems not officially released yet.
 At least  some new tarballs appeared on their file server:
 http://www.mathematik.uni-kl.de/ftp/pub/Math/Singular/SOURCES/4-0-0/
 
 Personally I'm using their development branch (spielwiese) on github
 (https://github.com/Singular/Sources)
 
 
 Jack
 
 Am Mittwoch, 7. Mai 2014 14:00:11 UTC+2 schrieb Jean-Pierre Flori:
  On Wednesday, May 7, 2014 1:51:41 PM UTC+2, Martin Albrecht wrote:
  Hi,
  
  which version of Singular should be upgrade to? I see that 3-1-6 is the
  most
  recent one and this seems to be shipped with Sage. What am I missing?
  
  I guess 4-0-0?
  
  Not sure if that was officially released and indeed its not on singular
  front page.
  There was also a 3-1-7 tagged but not really released at some point.
  
  Note that 4-0-0 introduces a large bunch of changes to the build system
  but to singular as well.

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


[sage-devel] please review #16282

2014-05-06 Thread Martin Albrecht
Hi all,

sage: P = PolynomialRing(GF(127),10, 'x')
sage: magma(P)

should work, but it doesn't. Here's the small fix: 

   http://trac.sagemath.org/ticket/16282

Cheers,
Martin

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


[sage-devel] git diff branch1..develop

2014-05-01 Thread Martin Albrecht
Hi all,

currently it is a bit awkward to review a branch on trac which has many 
commits. For example

   http://trac.sagemath.org/ticket/15976

has quite a few commits so it seems quite daunting to review it, whereas the 
actual difference to the main development branch is not that much. Locally, we 
can do:

$ git diff my_branch..develop

and 

$ git diff my_branch...develop

cf. https://stackoverflow.com/questions/9834689/comparing-two-branches-in-git

Could something like this be added to trac? 

Cheers,
Martin

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


Re: [sage-devel] Quotient ring over cyclotomic polynomial very slow

2014-04-29 Thread Martin Albrecht
On Monday 28 Apr 2014 14:57:59 François Colas wrote:
 Hi Martin,
 
 Here is two examples using multivariate quotients and extension fields
 which should be faster than computing CyclotomicField(m) or
 NumberField(cyclotomic(m), 'r') :
 
 m = 3*5*7
 pi = prime_factors(m)
 Qi = PolynomialRing(QQ, len(pi), 'q')
 Idl = [cyclotomic_polynomial(p, 'q'+str(i)) for (i, p) in enumerate(pi)]
 K = Qi.quo(Idl, 'k')
 %time K.fraction_field()
 CPU times: user 0.10 s, sys: 0.00 s, total: 0.10 s
 Wall time: 0.10 s

Okay, this one does pretty much nothing as far as I can tell except for 
checking that Idl is prime. This check could/should be specialised for this 
type of input.

Am I right in assuming that I = f_1, ..., f_m with all f_i irreducible and 
f_i \intersect f_j = \empty then I is a prime ideal?

 and with NumberField:
 
 m = 3*5*7
 pi = prime_factors(m)
 Idl = [cyclotomic_polynomial(p) for p in pi]
 %time NumberField(Idl, 'k', check=False)
 CPU times: user 2.30 s, sys: 0.01 s, total: 2.31 s
 Wall time: 2.30 s

Running 

sage: %prun NumberField(Idl, 'k', check=False)

41.7610.4401.7610.440 
number_field_rel.py:1034(_rnfeltreltoabs)

this is because we're building a tower of number fields:

def NumberFieldTower(v, names, check=True, embeddings=None):
if len(v) == 0:
return QQ
if len(v) == 1:
return NumberField(v[0], names=names, embedding=embeddings[0])
f = v[0]
w = NumberFieldTower(v[1:], names=names[1:], embeddings=embeddings[1:])
if isinstance(f, polynomial_element.Polynomial):
var = f.variable_name()
else:
var = 'x'

name = names[0]
R = w[var]  # polynomial ring

f = R(f)
i = 0

sep = chr(ord(name[0]) + 1)
return w.extension(f, name, check=check, embedding=embeddings[0])

The last line of this code in number_field.py consumes all the time.  I don't 
know what could be done here.

 Now try to play with prime factors in m (e.g. m = 5*7*11 or m = 7*11*13),
 it becomes uncomputable quickly with both...


Cheers,
Martin

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


Re: [sage-devel] Quotient ring over cyclotomic polynomial very slow

2014-04-28 Thread Martin Albrecht
I just tried to run:

sage: m = random_prime(10^5)
sage: K.r = CyclotomicField(m)

and I ran out of RAM! Doing a smaller example:

sage: m = random_prime(10^4)
sage: %prun K.r = CyclotomicField(m)

puts 

sage.rings.number_field.number_field_morphisms.create_embedding_from_approx

as the most expensive function call. Continuing to:

sage: m = random_prime(2*10^3)
sage: K.r = CyclotomicField(m)
sage: %prun K.ring_of_integers()

puts

sage.matrix.matrix_integer_dense.Matrix_integer_dense._solve_right_nonsingular_square

as the most expensive function call, which would imply John's assumption is 
right.

Cheers,
Martin

On Tuesday 15 Apr 2014 13:04:27 François Colas wrote:
 Hi Vincent,
 
 In fact that's exactly what I want to do!
 
 But I am using morphisms:
 
 m = ZZ(int(random()*10^5+1))
 
 R.r = NumberField(cyclotomic_polynomial(m))
 
 Idl = []
 
 for (p, e) in factor(m):
 Idl.append(cyclotomic_polynomial(p))
 
 K = NumberField(Idl, 'k')
 
 F = Hom(R, K)
 
 f = F([...])
 
 Unfortunately I also need K with big m for cryptographic purpose... :'(
 
 Note that even if you have 3 cyclotomic polynomials in Idl (e.g. 11, 13,
 17) it's always slow.
 
 Le mardi 15 avril 2014 18:48:11 UTC+2, vdelecroix a écrit :
  Hi François,
  
  Might be related to the ticket #16116 on trac
  (http://trac.sagemath.org/ticket/16116). Note that for performance, it
  is possible to use multivariate polynomials as described in the
  ticket.
  
  Best
  Vincent
  
  2014-04-15 18:30 UTC+02:00, François Colas fco...@gmail.com 
javascript::
   Hello group,
   
   I am playing with quotient ring of Z over cyclotomic polynomial but it
  
  is
  
   strangely slow:
   
   sage: m = random_prime(10^4); m
   2437
   sage: %time R.r = ZZ['z'].quotient(cyclotomic_polynomial(m))
   CPU times: user 2.50 s, sys: 0.00 s, total: 2.50 s
   Wall time: 2.50 s
   
   cyclotomic_polynomial(m) is created instantly whatever the size of m but
   the quotient becomes very long:
   
   sage: m = random_prime(10^5); m
   16231
   sage: %time R.r = ZZ['z'].quotient(cyclotomic_polynomial(m))
   CPU times: user 217.82 s, sys: 0.00 s, total: 217.82 s
   Wall time: 217.65 s
   
   
   I am using Sage Version 6.1.1, does anyone could confirm this problem?
  
  Groups
  
   sage-devel group.
   To unsubscribe from this group and stop receiving emails from it, send
  
  an
  
   email to sage-devel+...@googlegroups.com javascript:.
   To post to this group, send email to
   sage-...@googlegroups.comjavascript:.
   
   Visit this group at http://groups.google.com/group/sage-devel.
   For more options, visit https://groups.google.com/d/optout.

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


[sage-devel] please review #15976

2014-04-23 Thread Martin Albrecht
Hi,

anyone up for reviewing http://trac.sagemath.org/ticket/15976 which adds an 
integer lattice class (discussed here before)?

Cheers,
Martin

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


Re: [sage-devel] Re: [sage-algebra] Re: Lattice, RealLattice, ComplexLattice, VectorSpaceLattice: a bikeshed question

2014-04-07 Thread Martin Albrecht
Hi all,

alright, I moved the integer lattice class around:

- There's now sage.modues.free_module_integer

- this Python module contains FreeModule_submodule_with_basis_integer

- it also contains IntegerLattice which is a function imported into the 
  *global namespace*

- The basis is never touched, but there is an attribute reduced_basis which is 
  improved when functions like LLL or BKZ are called:

sage: A = sage.crypto.gen_lattice(type='random', n=1, m=100, q=2^60, seed=42)
sage: L = IntegerLattice(A, lll_reduce=False)
sage: min(v.norm().n() for v in L.reduced_basis)
4.17330740711759e15

sage: L.LLL()
100 x 100 dense matrix over Integer Ring

sage: min(v.norm().n() for v in L.reduced_basis)
5.09901951359278

sage: L.BKZ(block_size=10)
100 x 100 dense matrix over Integer Ring

sage: min(v.norm().n() for v in L.reduced_basis)
4.12310562561766

See http://trac.sagemath.org/ticket/15976 for details.

Comments? Reviews? Bikesheds?

Cheers,
Martin

-- 
You received this message because you are subscribed to the Google Groups 
sage-devel group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to sage-devel+unsubscr...@googlegroups.com.
To post to this group, send email to sage-devel@googlegroups.com.
Visit this group at http://groups.google.com/group/sage-devel.
For more options, visit https://groups.google.com/d/optout.


Re: [sage-devel] Re: [sage-algebra] Re: Lattice, RealLattice, ComplexLattice, VectorSpaceLattice: a bikeshed question

2014-04-04 Thread Martin Albrecht
Hi David,

On Friday 04 Apr 2014 10:34:57 David Kohel wrote:
 Dear all,
 
 First of all, in the context of modules there should be no confusion about
 the terminology lattice (as opposed to a lattice poset in combinatorics).
 There is little doubt that modules with bilinear pairings are ubiquitous in
 mathematics, but precisely that poses problems with differing conventions
 for the differing domains of mathematics.
 
 Before someone goes too far in reinventing the wheel, I should point out
 that a datastructure for lattices already exists since 2007-2008. Around
 this time (at a Sage days), I think I also looked into linking in some
 lattice
 reduction algorithms (LLL  BKZ), but they never migrated upstream to Sage.

I did look at those data structures (FreeQuadraticModule) and I did ask about 
it on [sage-devel] but got almost no response. Maybe no one reads [sage-devel] 
any more?

https://groups.google.com/d/msg/sage-devel/AZH4XjjRHkE/-6a7QEIeYlEJ

I asked about it because it seems no one seems to have touched those data 
structures in years and because I failed to interact with it the way I wanted. 
In my world I think of a lattice as given by a basis and my bases are over the 
integers. I failed to construct that. However, revisiting that, it seems I was 
an idiot and I merely need:

sage: ZZn = FreeModule(ZZ, 10)
sage: B = random_matrix(ZZ, 10, 10) # - my basis
sage: L = ZZn.submodule(B)
 
I guess I could move my new class (specialising to ZZ) at 
http://trac.sagemath.org/ticket/15976 to fit into there and add a short-hand 
constructor?

Cheers,
Martin


-- 
You received this message because you are subscribed to the Google Groups 
sage-devel group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to sage-devel+unsubscr...@googlegroups.com.
To post to this group, send email to sage-devel@googlegroups.com.
Visit this group at http://groups.google.com/group/sage-devel.
For more options, visit https://groups.google.com/d/optout.


Re: [sage-devel] Re: [sage-algebra] Re: Lattice, RealLattice, ComplexLattice, VectorSpaceLattice: a bikeshed question

2014-04-04 Thread Martin Albrecht
 then the application of LLL, BKZ, or other reduction algorithms
 (the output should be a module with basis having the new reduced
 basis, as a submodule of the input module). 

I am wondering about this. I appreciate this is pretty much what Sage would 
normally do, e.g. functions return new objects instead of modifying the 
existing one. However, in my case it would seem natural to improve the basis 
during the lifetime of an object. So my current class has:

sage: from sage.libs.fplll.fplll import gen_ntrulike
sage: L = RealLattice(gen_ntrulike(30,22,27), lll_reduce=False)
sage: L
Lattice of degree 60 and rank 60 over Integer Ring
Basis matrix:
60 x 60 dense matrix over Integer Ring
sage: L.basis[0].norm().n()
1.27010201751796e7

sage: L.LLL()
sage: L.basis[0].norm().n()
19.7737199332852

sage: L.BKZ(block_size=20)
sage: L.basis[0].norm().n()
11.0905365064094

Cheers,
Martin

-- 
You received this message because you are subscribed to the Google Groups 
sage-devel group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to sage-devel+unsubscr...@googlegroups.com.
To post to this group, send email to sage-devel@googlegroups.com.
Visit this group at http://groups.google.com/group/sage-devel.
For more options, visit https://groups.google.com/d/optout.


Re: [sage-devel] Re: [sage-algebra] Re: Lattice, RealLattice, ComplexLattice, VectorSpaceLattice: a bikeshed question

2014-04-04 Thread Martin Albrecht
okay, I shall add a reduced_basis attribute which gets improved using LLL 
reduction et al.

On Friday 04 Apr 2014 13:35:05 John Cremona wrote:
 This is not sso different from the situation with (say) finite abelian
 groups, where the user might start with 2 generators of orders 2 and 3
 and internally you work with one generator of order 6.  Now th object
 has .use_defined_gens() and some sort of .canonical_gens().
 
 For lattices, one could agree never to change the basis returned by
 L.basis(), but store other bases (with respective transformations)
 which would be accessed by L.LLL_basis() etc.  After all, LLL is not a
 lattice reduction algorithm -- it does not change the lattice! --
 but it as lattice basis reduction algorithm.
 
 It hardy seems necessary to have a separate class for lattice bases though.
 
 John
 
 On 4 April 2014 11:36, Volker Braun vbraun.n...@gmail.com wrote:
  On Friday, April 4, 2014 11:19:11 AM UTC+1, Martin Albrecht wrote:
  existing one. However, in my case it would seem natural to improve the
  basis
  during the lifetime of an object.
  
  IMHO that is always going to cause tears later on as the end-user isn't
  going to be aware that this modified all references to the lattice. The
  only downside of returning new objects is memory, and I'm pretty sure
  your problem runs of CPU before RAM. If you don't like that your lattice
  has a built-in basis then you could return new BasisOfLattice (say)
  objects.
  
  --
  You received this message because you are subscribed to the Google Groups
  sage-devel group.
  To unsubscribe from this group and stop receiving emails from it, send an
  email to sage-devel+unsubscr...@googlegroups.com.
  To post to this group, send email to sage-devel@googlegroups.com.
  Visit this group at http://groups.google.com/group/sage-devel.
  For more options, visit https://groups.google.com/d/optout.

-- 
You received this message because you are subscribed to the Google Groups 
sage-devel group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to sage-devel+unsubscr...@googlegroups.com.
To post to this group, send email to sage-devel@googlegroups.com.
Visit this group at http://groups.google.com/group/sage-devel.
For more options, visit https://groups.google.com/d/optout.


Re: orthogonal sums of root lattices was Re: [sage-devel] Lattices?

2014-04-03 Thread Martin Albrecht
Hi Ursula,

just to mention: there isn't much framework in that ticket, it merely creates 
an IntegerLattice class and adds a few useful methods. 

In particular, at the moment lattices over QQ (or RR) are not implemented, but 
I guess this could be added relatively quickly.

Cheers,
Martin

On Wednesday 02 Apr 2014 14:40:10 Ursula wrote:
 On Friday, March 21, 2014 7:40:09 AM UTC-5, Martin Albrecht wrote:
  Simon gave me some hints how to integrate the new class into the category
  framework, so the ticket now *needs review* hint hint:
  
  http://trac.sagemath.org/ticket/15976
 
 Hi, all!
 
 I would like to be able to construct and manipulate elements of orthogonal
 sums of root lattices (e.g., A_5 + E_8).  Is Martin's ticket (above) the
 best framework for doing this?  Or is it possible to construct such an
 object using the code for root systems that already exists in Sage?
 
 --Ursula.

-- 
You received this message because you are subscribed to the Google Groups 
sage-devel group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to sage-devel+unsubscr...@googlegroups.com.
To post to this group, send email to sage-devel@googlegroups.com.
Visit this group at http://groups.google.com/group/sage-devel.
For more options, visit https://groups.google.com/d/optout.


[sage-devel] Lattice, RealLattice, ComplexLattice, VectorSpaceLattice: a bikeshed question

2014-04-03 Thread Martin Albrecht
Hi all,

I have a what colour should the bike shed be question. At 

   http://trac.sagemath.org/ticket/15976

a few new classes are introduced for lattices as discrete subgroups of some 
vectors spaces. The only one somewhat function is the one over the integers, 
aptly called IntegerLattice. However, while we're at it, we might as well 
introduce a base class for other such lattices as well (and a general 
constructor). How should it be called?

Suggestions so far:

Lattice - to general?
RealLattice - but people might want complex lattices as well
VectorSpaceLattice - what do people think?

Suggest away!

Cheers,
Martin

-- 
You received this message because you are subscribed to the Google Groups 
sage-devel group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to sage-devel+unsubscr...@googlegroups.com.
To post to this group, send email to sage-devel@googlegroups.com.
Visit this group at http://groups.google.com/group/sage-devel.
For more options, visit https://groups.google.com/d/optout.


Re: [sage-devel] Lattice, RealLattice, ComplexLattice, VectorSpaceLattice: a bikeshed question

2014-04-03 Thread Martin Albrecht
Hi all,

thanks John, although I do kind of regret having asked :)

I am happy to put in some more work into this lattice class, but I'd probably 
need some further guidance. As for me, I have a very simple need: I am 
cryptographer and my lattices tend to be given by some integer basis matrix on 
which I'd like to run various lattice reduction algorithms (and I want to 
sample from my lattice with a discrete Gaussian distribution). 

Cheers,
Martin

PS: Thanks for spotting that copyright notice ... I am old, but evidently far 
from wise.

On Thursday 03 Apr 2014 15:28:41 John Cremona wrote:
 There are different objects all called lattices in different contexts.
  Let's start by acknowledging that we are not talking about some kind
 of poset -- though there will be others for whom that is what the word
 lattice means.
 
 Following Lenstra (see his article on Lattices in the Buhler 
 Stevenhagen MSRI book on Algorithmic Number Theory)  a lattice is a
 discrete subgroup of a euclidean vector space.  That could be either
 R^n or C^n: both really do arise (for example the period lattice of an
 elliptic curve is a lattice in C).   Given this definition one would
 expect a lattice L of rank r in an ambiant vector space V of dimension
 n to be given by r independent elements of V (if V is complex they
 only have to be R-linearly independent) so by a d x r matrix A (if we
 identify V with R^d or C^d) whose columns span L.
 
 Or one could give the Gram matrix G (A^t * A (in the real case), which
 is real and positive definite.  You definitely need to be able to
 define a lattice just by its Gram matrix;  theoretically one can go
 from such a G via a factorization G=A^t * A to a basis representation
 (not unique).
 
 But since a lattice is a free abelian group of rank r and hence
 isomorphic (as a group) to Z^r it is also common to take the
 underlying set as just Z^r and then give it the required lattice
 structore by defining a (positive definite) quadratic form on Z^r.
 This need not be integer-valued, of course, and if we call its Gram
 matrix G we can get back to a basis definition of the lattice as
 before.
 
 All this is given in detail in Lenstra's article (see especially
 section 4, on Represeting Lattices).
 
 I would hope that our Lattice class could allow for all of these.
 Different algorithms (e.g. different forms of LLL) require integers
 bases, or not, or work on Gram matrices, and I would like it if our
 class converted between these as needed.
 
 that's enough for now: of course, number theorists would also use
 lattice for a generalization of the above, e.g. if R is an integral
 domain contained in a field  K then an R-submodule of K^d would be
 called an R-lattice in the vector space V=K^d if it satisfied some
 easy conditions.  In the previous case we had (R,K) = (Z,R) but
 (Z_p,Q_p) is also used a lot theoretically.
 
 I hope that Martin does not already regret asking thew question!  I
 recommend airing this in sage-algebra and sage-nt so have copied them
 in.
 
 John
 
 PS Martin, in your patch you show your age by the lines
 
 +# Sage: System for Algebra and Geometry Experimentation
 +#
 +# Copyright (C) 2014 Martin Albrecht martinralbe...@googlemailc.om
 ## NB typo here!
 
 On 3 April 2014 14:58, Martin Albrecht martinralbre...@googlemail.com 
wrote:
  Hi all,
  
  I have a what colour should the bike shed be question. At
  
 http://trac.sagemath.org/ticket/15976
  
  a few new classes are introduced for lattices as discrete subgroups of
  some
  vectors spaces. The only one somewhat function is the one over the
  integers, aptly called IntegerLattice. However, while we're at it, we
  might as well introduce a base class for other such lattices as well (and
  a general constructor). How should it be called?
  
  Suggestions so far:
  
  Lattice - to general?
  RealLattice - but people might want complex lattices as well
  VectorSpaceLattice - what do people think?
  
  Suggest away!
  
  Cheers,
  Martin
  
  --
  You received this message because you are subscribed to the Google Groups
  sage-devel group. To unsubscribe from this group and stop receiving
  emails from it, send an email to sage-devel+unsubscr...@googlegroups.com.
  To post to this group, send email to sage-devel@googlegroups.com.
  Visit this group at http://groups.google.com/group/sage-devel.
  For more options, visit https://groups.google.com/d/optout.

-- 
You received this message because you are subscribed to the Google Groups 
sage-devel group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to sage-devel+unsubscr...@googlegroups.com.
To post to this group, send email to sage-devel@googlegroups.com.
Visit this group at http://groups.google.com/group/sage-devel.
For more options, visit https://groups.google.com/d/optout.


Re: orthogonal sums of root lattices was Re: [sage-devel] Lattices?

2014-04-03 Thread Martin Albrecht
On Thursday 03 Apr 2014 11:25:00 Ursula Whitcher wrote:
 On 4/3/2014 4:45 AM, Martin Albrecht wrote:
  Hi Ursula,
  
  just to mention: there isn't much framework in that ticket, it merely
  creates an IntegerLattice class and adds a few useful methods.
  
  In particular, at the moment lattices over QQ (or RR) are not implemented,
  but I guess this could be added relatively quickly.
 
 Yes, lattices over QQ would be nice.  Right now I think the biggest
 conceptual tool I want is the ability to construct a lattice by
 specifying its Gram matrix, rather than by specifying an embedding in R^n.

Okay, I should definitely add constructing a matrix from the Gram matrix 
(back). The old GSoC 2012 project had it, my patch doesn't but evidently it 
should.

 Would it be useful to you to know my wishlist?  And if so, should I put
 it over here or on the ticket?

It would be most helpful if you'd help to implement it ;)  Otherwise, I think 
this should be a new ticket.

Cheers,
Martin

-- 
You received this message because you are subscribed to the Google Groups 
sage-devel group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to sage-devel+unsubscr...@googlegroups.com.
To post to this group, send email to sage-devel@googlegroups.com.
Visit this group at http://groups.google.com/group/sage-devel.
For more options, visit https://groups.google.com/d/optout.


[sage-devel] Sage Reference Manual

2014-03-30 Thread Martin Albrecht
Hi all,

I have two questions about the Sage reference manual:

1. How do I add a new module to it? That is, I created a new directory 
lattices and I want to add that as a new reference module to the reference 
manual. I did the obvious thing of adding a directory in doc/en/reference and 
added an index.rst + symlinked conf_sub.py to conf.py but now I get:

OSError: [lattices ] /opt/sage-
devel/src/doc/en/reference/lattices/index.rst:5: WARNING: toctree contains 
reference to nonexisting document u'sage/lattices/integer_lattice.py'

The file exists. However, I noticed that my new directory doesn't have a sage 
subdirectory like all the other directories in en/reference so I presume some 
init is missing. What is it? Did I miss this in the documentation?

2. Does the Sage reference manual support UTF-8? I was asked at 
http://trac.sagemath.org/ticket/15976 Any experience?

Cheers,
Martin

-- 
You received this message because you are subscribed to the Google Groups 
sage-devel group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to sage-devel+unsubscr...@googlegroups.com.
To post to this group, send email to sage-devel@googlegroups.com.
Visit this group at http://groups.google.com/group/sage-devel.
For more options, visit https://groups.google.com/d/optout.


[sage-devel] Re: Sage Reference Manual

2014-03-30 Thread Martin Albrecht
Thanks, got it working!

On Sunday 30 Mar 2014 09:11:09 Volker Braun wrote:
 You might have to make doc-clean got get rid of stale caches when adding
 new file.
 
 The most basic UTF8 works, but its far from 100%. If you run into problems
 you have to add a workaround for the codepoint to conf.py latex preamble...

-- 
You received this message because you are subscribed to the Google Groups 
sage-devel group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to sage-devel+unsubscr...@googlegroups.com.
To post to this group, send email to sage-devel@googlegroups.com.
Visit this group at http://groups.google.com/group/sage-devel.
For more options, visit https://groups.google.com/d/optout.


Re: [sage-devel] Lattices?

2014-03-21 Thread Martin Albrecht
Simon gave me some hints how to integrate the new class into the category 
framework, so the ticket now *needs review* hint hint:

http://trac.sagemath.org/ticket/15976

On Wednesday 19 Mar 2014 17:38:42 Martin Albrecht wrote:
 Next update:
 
 I decided that the 2012 Sage GSoC project [^1] wasn't worth the trouble, so
 I started afresh [^2]. The result is available as;
 
 http://trac.sagemath.org/ticket/15976
 
 It's fairly straight-forward and only realises integer lattices, i.e.
 subgroups of ZZ^n (I don't care about the more general RR^n case and I
 haven't had any feedback motivating me to change that). There's a new class
 which represents such lattices by a basis which is improved during the
 life-time of the lattice object.
 
 This ticket also updates our fpLLL interface to the 4.0 API. While I was at
 it I also interfaced fpLLL's BKZ and shortest vector enumeration. Hence,
 Sage's BKZ got a bit faster in the process:
 
 sage: A = sage.crypto.gen_lattice(type='random', n=1, m=160, q=2^90,
 seed=42) sage: %time A.BKZ(block_size=10)[0].norm().n()
 CPU times: user 7.45 s, sys: 1.28 s, total: 8.73 s
 Wall time: 8.73 s
 6.24499799839840
 sage: %time A.BKZ(block_size=10, algorithm=NTL)[0].norm().n()
 CPU times: user 14.5 s, sys: 2.7 s, total: 17.2 s
 Wall time: 17.2 s
 6.48074069840786
 
 Here's a shortest vector example:
 
 sage: A = sage.crypto.gen_lattice(type='random', n=1, m=44, q=2^90, seed=42)
 sage: L = Lattice(A)
 sage: %time L.shortest_vector(algorithm=pari)
 CPU times: user 11.9 s, sys: 660 ms, total: 12.6 s
 Wall time: 12.6 s
 (0, 1, 1, -2, 1, -1, 1, 1, 0, -1, 1, -1, 2, 0, 0, 1, 1, -1, 1, 1, 0, -1, 0,
 0, 0, 1, -2, -1, 0, 0, 1, -1, 1, 3, 0, -1, 0, 1, -1, -2, 1, 0, -1, -1)
 
 sage: L = Lattice(A)
 sage: %time L.shortest_vector(algorithm=fplll) # default
 CPU times: user 3.31 s, sys: 0 ns, total: 3.31 s
 Wall time: 3.31 s
 (0, 1, 1, -2, 1, -1, 1, 1, 0, -1, 1, -1, 2, 0, 0, 1, 1, -1, 1, 1, 0, -1, 0,
 0, 0, 1, -2, -1, 0, 0, 1, -1, 1, 3, 0, -1, 0, 1, -1, -2, 1, 0, -1, -1)
 sage:
 
 
 However, in terms of inheritance hierarchy and categories the new class is a
 wasteland. The inheritance hierarchy is:
 
 sage.structure.sage_object.SageObject
 sage.lattices.integer_lattices.IntegerLattice
 
 Any recommendations what the new class should inherit from? I guess I could
 at least introduce a generic lattice class that IntegerLattice would
 inherit from, like this?
 
 sage.structure.sage_object.SageObject
 sage.lattices.lattices.Lattice
 sage.lattices.integer_lattices.IntegerLattice
 
 Cheers,
 Martin
 
 [1] Btw. I still haven't managed to contact the people responsible for that
 project yet to find out what went wrong. Neither student nor mentor have
 replied to my e-mail yet.
 
 [2] I did import the diamond cutting implementation
 
 On Sunday 16 Mar 2014 20:49:22 Martin Albrecht wrote:
  Okay, I imported the code base from
  
 https://github.com/poeschko/sage
  
  here:
  http://trac.sagemath.org/ticket/15955
  
  I really couldn't be bothered to import patch by patch as the original
  author made an interesting - let's ignore Sage's version control - choice.
  So all his commits are in one big commit.
  
  Well, almost all:
  
  - I fixed some things to adapt the patches to the current version of Sage
  and - I didn't import the hack (I think it is) which allows to deal with
  this situation:
  
  sage: A = Matrix(ZZ, [[4,2,0],[2,1,0],[0,0,1]])
  sage: A.LLL_gram()
  ...
  ValueError: a matrix from Full MatrixSpace of 3 by 2 dense matrices over
  Integer Ring cannot be converted to a matrix in Full MatrixSpace of 3 by 3
  dense matrices over Integer Ring!
  
  I'm not sure what should be done about this. In any case, I'd appreciate a
  second set of eyes on this. Clearly, there's work to be done.
  
  Cheers,
  Martin
  
  On Thursday 13 Mar 2014 15:26:28 Burcin Erocal wrote:
   Hi Martin,
   
   On Thu, 13 Mar 2014 13:56:41 +
   
   Martin Albrecht martinralbre...@googlemail.com wrote:
what happened to the Sage 2012 GSoC project on lattices described

here:
   http://gsoc-sage-lattices.blogspot.co.uk/

It doesn't seem to have been merged (?) I could use it to give my
discrete Gaussian sampler over lattices code a home.
   
   The code is here:
   
   https://github.com/poeschko/sage
   
   AFAICT, it would require a nontrivial amount of work to merge. It was
   based on Sage 5.2 IIRC. I don't know if there is a related ticket on
   trac.
   
   
   Cheers,
   Burcin

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


Re: [sage-devel] Lattices?

2014-03-19 Thread Martin Albrecht
Next update:

I decided that the 2012 Sage GSoC project [^1] wasn't worth the trouble, so I 
started afresh [^2]. The result is available as;

http://trac.sagemath.org/ticket/15976

It's fairly straight-forward and only realises integer lattices, i.e. 
subgroups of ZZ^n (I don't care about the more general RR^n case and I haven't 
had any feedback motivating me to change that). There's a new class which 
represents such lattices by a basis which is improved during the life-time of 
the lattice object.

This ticket also updates our fpLLL interface to the 4.0 API. While I was at it 
I also interfaced fpLLL's BKZ and shortest vector enumeration. Hence, Sage's 
BKZ got a bit faster in the process:

sage: A = sage.crypto.gen_lattice(type='random', n=1, m=160, q=2^90, seed=42)
sage: %time A.BKZ(block_size=10)[0].norm().n()
CPU times: user 7.45 s, sys: 1.28 s, total: 8.73 s
Wall time: 8.73 s
6.24499799839840
sage: %time A.BKZ(block_size=10, algorithm=NTL)[0].norm().n()
CPU times: user 14.5 s, sys: 2.7 s, total: 17.2 s
Wall time: 17.2 s
6.48074069840786

Here's a shortest vector example:

sage: A = sage.crypto.gen_lattice(type='random', n=1, m=44, q=2^90, seed=42)
sage: L = Lattice(A)
sage: %time L.shortest_vector(algorithm=pari)
CPU times: user 11.9 s, sys: 660 ms, total: 12.6 s
Wall time: 12.6 s
(0, 1, 1, -2, 1, -1, 1, 1, 0, -1, 1, -1, 2, 0, 0, 1, 1, -1, 1, 1, 0, -1, 0, 0, 
0, 1, -2, -1, 0, 0, 1, -1, 1, 3, 0, -1, 0, 1, -1, -2, 1, 0, -1, -1)

sage: L = Lattice(A)
sage: %time L.shortest_vector(algorithm=fplll) # default
CPU times: user 3.31 s, sys: 0 ns, total: 3.31 s
Wall time: 3.31 s
(0, 1, 1, -2, 1, -1, 1, 1, 0, -1, 1, -1, 2, 0, 0, 1, 1, -1, 1, 1, 0, -1, 0, 0, 
0, 1, -2, -1, 0, 0, 1, -1, 1, 3, 0, -1, 0, 1, -1, -2, 1, 0, -1, -1)
sage: 


However, in terms of inheritance hierarchy and categories the new class is a 
wasteland. The inheritance hierarchy is:

sage.structure.sage_object.SageObject
sage.lattices.integer_lattices.IntegerLattice

Any recommendations what the new class should inherit from? I guess I could at 
least introduce a generic lattice class that IntegerLattice would inherit 
from, like this?

sage.structure.sage_object.SageObject
sage.lattices.lattices.Lattice
sage.lattices.integer_lattices.IntegerLattice

Cheers,
Martin

[1] Btw. I still haven't managed to contact the people responsible for that 
project yet to find out what went wrong. Neither student nor mentor have 
replied to my e-mail yet.

[2] I did import the diamond cutting implementation

On Sunday 16 Mar 2014 20:49:22 Martin Albrecht wrote:
 Okay, I imported the code base from
 
https://github.com/poeschko/sage
 
 here:
 
 http://trac.sagemath.org/ticket/15955
 
 I really couldn't be bothered to import patch by patch as the original
 author made an interesting - let's ignore Sage's version control - choice.
 So all his commits are in one big commit.
 
 Well, almost all:
 
 - I fixed some things to adapt the patches to the current version of Sage
 and - I didn't import the hack (I think it is) which allows to deal with
 this situation:
 
 sage: A = Matrix(ZZ, [[4,2,0],[2,1,0],[0,0,1]])
 sage: A.LLL_gram()
 ...
 ValueError: a matrix from Full MatrixSpace of 3 by 2 dense matrices over
 Integer Ring cannot be converted to a matrix in Full MatrixSpace of 3 by 3
 dense matrices over Integer Ring!
 
 I'm not sure what should be done about this. In any case, I'd appreciate a
 second set of eyes on this. Clearly, there's work to be done.
 
 Cheers,
 Martin
 
 On Thursday 13 Mar 2014 15:26:28 Burcin Erocal wrote:
  Hi Martin,
  
  On Thu, 13 Mar 2014 13:56:41 +
  
  Martin Albrecht martinralbre...@googlemail.com wrote:
   what happened to the Sage 2012 GSoC project on lattices described
   
   here:
  http://gsoc-sage-lattices.blogspot.co.uk/
   
   It doesn't seem to have been merged (?) I could use it to give my
   discrete Gaussian sampler over lattices code a home.
  
  The code is here:
  
  https://github.com/poeschko/sage
  
  AFAICT, it would require a nontrivial amount of work to merge. It was
  based on Sage 5.2 IIRC. I don't know if there is a related ticket on
  trac.
  
  
  Cheers,
  Burcin

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


[sage-devel] FreeQuadraticModule

2014-03-17 Thread Martin Albrecht
Hi all,

does *anyone* *ever* use 

   sage.modules.free_quadratic_module ?

git log isn't too promising. Nathann fixed some missing :: in August 
2013,there were some import fixes, some category fixes were applied, some 
spell checking ... essentially nothing actually about this module since 2008!

The file also still uses old style documentation and doesn't appear in the 
reference manual. Nothing outside of sage.modules seems to use it.

The reason I'm asking: The 2012 GSoC Lattice project uses this class as the 
base class for (integer) lattices and I am wondering how sound that is.

Cheers,
Martin

-- 
You received this message because you are subscribed to the Google Groups 
sage-devel group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to sage-devel+unsubscr...@googlegroups.com.
To post to this group, send email to sage-devel@googlegroups.com.
Visit this group at http://groups.google.com/group/sage-devel.
For more options, visit https://groups.google.com/d/optout.


[sage-devel] M4RI GPL → LGPL (?)

2014-03-16 Thread Martin Albrecht
Hi all,

over at [m4ri-devel] 

  https://groups.google.com/forum/#!topic/m4ri-devel/dJ4fCyiZRY8

we are discussing - well, currently stating our positions - on whether M4RI 
should be re-licensed to LGPL from GPL. This is because Mate Soos asked us to 
consider this because it would allow him to release some piece of code under 
the MIT license (in a meaningful way).

I know this troll bait, but if any of you can think of ways in which such a 
move would negatively affect Sage let us know.

In any case, I should mention that it's not that likely that the switch will 
happen (as far as I can see): some developers are opposed to it and we haven't 
tracked down/gotten replies from all people.

Cheers,
Martin

-- 
You received this message because you are subscribed to the Google Groups 
sage-devel group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to sage-devel+unsubscr...@googlegroups.com.
To post to this group, send email to sage-devel@googlegroups.com.
Visit this group at http://groups.google.com/group/sage-devel.
For more options, visit https://groups.google.com/d/optout.


Re: [sage-devel] Re: M4RI GPL → LGPL (?)

2014-03-16 Thread Martin Albrecht
On Sunday 16 Mar 2014 11:23:36 Volker Braun wrote:
 As far as Sage is concerned, anything that is GPLv3 compatible is fine
 (this includes LGPL).
 
 I don't understand the thought process that leads to somebody trying to
 blackmail a library into changing their license to be more liberal with the
 implicit threat that, otherwise, some piece of code wouldn't be released.
 Where the whole point of the more liberal license is that one wouldn't have
 to release the source code using the library at all.

This is a mis-characterisation of what Mate did. Mate would like to release 
his code under an MIT license, but that's difficult if a piece of software it 
relies on is GPL. There was no blackmail, no threat, but a friendly question!

-- 
You received this message because you are subscribed to the Google Groups 
sage-devel group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to sage-devel+unsubscr...@googlegroups.com.
To post to this group, send email to sage-devel@googlegroups.com.
Visit this group at http://groups.google.com/group/sage-devel.
For more options, visit https://groups.google.com/d/optout.


Re: [sage-devel] Lattices?

2014-03-16 Thread Martin Albrecht
Okay, I imported the code base from 

   https://github.com/poeschko/sage

here:

http://trac.sagemath.org/ticket/15955

I really couldn't be bothered to import patch by patch as the original author 
made an interesting - let's ignore Sage's version control - choice. So all his 
commits are in one big commit.

Well, almost all:

- I fixed some things to adapt the patches to the current version of Sage and
- I didn't import the hack (I think it is) which allows to deal with this 
situation:

sage: A = Matrix(ZZ, [[4,2,0],[2,1,0],[0,0,1]])
sage: A.LLL_gram()
...
ValueError: a matrix from Full MatrixSpace of 3 by 2 dense matrices over 
Integer Ring cannot be converted to a matrix in Full MatrixSpace of 3 by 3 
dense matrices over Integer Ring!

I'm not sure what should be done about this. In any case, I'd appreciate a 
second set of eyes on this. Clearly, there's work to be done.

Cheers,
Martin


On Thursday 13 Mar 2014 15:26:28 Burcin Erocal wrote:
 Hi Martin,
 
 On Thu, 13 Mar 2014 13:56:41 +
 
 Martin Albrecht martinralbre...@googlemail.com wrote:
  what happened to the Sage 2012 GSoC project on lattices described
  
  here:
 http://gsoc-sage-lattices.blogspot.co.uk/
  
  It doesn't seem to have been merged (?) I could use it to give my
  discrete Gaussian sampler over lattices code a home.
 
 The code is here:
 
 https://github.com/poeschko/sage
 
 AFAICT, it would require a nontrivial amount of work to merge. It was
 based on Sage 5.2 IIRC. I don't know if there is a related ticket on
 trac.
 
 
 Cheers,
 Burcin

-- 
You received this message because you are subscribed to the Google Groups 
sage-devel group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to sage-devel+unsubscr...@googlegroups.com.
To post to this group, send email to sage-devel@googlegroups.com.
Visit this group at http://groups.google.com/group/sage-devel.
For more options, visit https://groups.google.com/d/optout.


Re: [sage-devel] Lattices?

2014-03-14 Thread Martin Albrecht
Hi,

I am not sure this is relevant to what I'd like to do: 

I want a Lattice class for discrete subgroups of RR^n (I only care about 
integer lattices actually) where i can do stuff like:

- sampling elements
- lattice reduction
- finding shortest vectors
- solving the closest vector problem
 
Cheers,
Martin

On Friday 14 Mar 2014 16:38:55 Jori Mantysalo wrote:
 On Thu, 13 Mar 2014, Martin Albrecht wrote:
  what happened to the Sage 2012 GSoC project on lattices described here:
http://gsoc-sage-lattices.blogspot.co.uk/
 
 I don't know. But anyways, contact Nathan Lawless if you are going to do
 something with lattices.
 
 Sage way to generate semilattices is easy but slow. Even
 
 [L for L in Posets(8) if L.is_meet_semilattice()]
 
 takes few minutes, even there is only about 1000 semilattices with 8
 elements. That's because Posets(n) actually generates digraphs and checks
 which of them are posets.
 
 Nathan send my code to generate them much faster. However, it is not
 public.

-- 
You received this message because you are subscribed to the Google Groups 
sage-devel group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to sage-devel+unsubscr...@googlegroups.com.
To post to this group, send email to sage-devel@googlegroups.com.
Visit this group at http://groups.google.com/group/sage-devel.
For more options, visit https://groups.google.com/d/optout.


[sage-devel] Lattices?

2014-03-13 Thread Martin Albrecht
Hi all,

what happened to the Sage 2012 GSoC project on lattices described here:

   http://gsoc-sage-lattices.blogspot.co.uk/

It doesn't seem to have been merged (?) I could use it to give my discrete 
Gaussian sampler over lattices code a home.

Cheers,
Martin


-- 
You received this message because you are subscribed to the Google Groups 
sage-devel group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to sage-devel+unsubscr...@googlegroups.com.
To post to this group, send email to sage-devel@googlegroups.com.
Visit this group at http://groups.google.com/group/sage-devel.
For more options, visit https://groups.google.com/d/optout.


[sage-devel] C++11

2014-01-16 Thread Martin Albrecht
Hi all,

we're discussing an update on the *optional* CryptoMiniSat SPKG. Newer versions 
of CryptoMinISat (3.x series) assume C++11, what's our line on that? I guess 
it's not such a big deal because it's an optional SPKG anyway, but the issue 
might come up again (or might have come up and I missed it)

Cheers,
Martin


--
name: Martin Albrecht
_pgp: http://pgp.mit.edu:11371/pks/lookup?op=getsearch=0x6532AFB4
_otr: 47F43D1A 5D68C36F 468BAEBA 640E8856 D7951CCF
_www: http://martinralbrecht.wordpress.com/
_jab: martinralbre...@jabber.ccc.de

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


Re: Re: [sage-devel] Sherlock

2014-01-05 Thread Martin Albrecht
On Sunday 05 Jan 2014 12:34:07 William Stein wrote:
 On Sun, Jan 5, 2014 at 12:29 PM, John Cremona john.crem...@gmail.com wrote:
  Afficionados of the BBC series Sherlock can enjoy the second episode
  of series 3 (which was shown on the BBC this evening) even more,
 
 I love that show!
 
  knowing that the room where most of the action happens -- at the
  wedding reception -- is the room where the Sage Days 6 dinner took
  place in November 2007, in the Goldney Orangery in Bristol!
 
 I remember that dinner... where I had license discussions with an
 intoxicated Germans...

Makes sense: as far as I know the Sage rule is you're *only* allowed to discuss 
licenses if you are intoxicated.

 
  John
 
  --
  You received this message because you are subscribed to the Google Groups 
  sage-devel group.
  To unsubscribe from this group and stop receiving emails from it, send an 
  email to sage-devel+unsubscr...@googlegroups.com.
  To post to this group, send email to sage-devel@googlegroups.com.
  Visit this group at http://groups.google.com/group/sage-devel.
  For more options, visit https://groups.google.com/groups/opt_out.
 
 
 
 

--
name: Martin Albrecht
_pgp: http://pgp.mit.edu:11371/pks/lookup?op=getsearch=0x6532AFB4
_otr: 47F43D1A 5D68C36F 468BAEBA 640E8856 D7951CCF
_www: http://martinralbrecht.wordpress.com/
_jab: martinralbre...@jabber.ccc.de

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


Re: Re: [sage-devel] The Annual Sage on Python 3 Thread

2013-12-25 Thread Martin Albrecht
On Wednesday 25 Dec 2013 09:09:58 Jean-Pierre Flori wrote:
 I think having pycrypto in Sage is cool for ... cryptographers :)

I am not sure this is true. PyCrypto is quite high-level, it gives you RSA, 
AES, SHA256 and sutff like that. At such a high level I guess it would be 
useful for testing/implementing protocols, but for the kind of crypto where 
Sage is probably used most - i.e. actually diving into the algorithms - I 
don't think it's that useful.

Put another way: did anybody on this list ever use it? I think I may have once 
briefly.

Cheers,
Martin


--
name: Martin Albrecht
_pgp: http://pgp.mit.edu:11371/pks/lookup?op=getsearch=0x6532AFB4
_otr: 47F43D1A 5D68C36F 468BAEBA 640E8856 D7951CCF
_www: http://martinralbrecht.wordpress.com/
_jab: martinralbre...@jabber.ccc.de

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


Re: [sage-devel] Re: Gray code

2013-12-05 Thread Martin Albrecht
Hi all,

 ... especially if it's C code messing with bits :-P

It's only for lengths up to 16 but M4RI is kinda build around Gray codes, so:

https://bitbucket.org/malb/m4ri/src/49263e2d1095cd0db69b61e11c158230f94d5529/src/graycode.h?at=default

--
name: Martin Albrecht
_pgp: http://pgp.mit.edu:11371/pks/lookup?op=getsearch=0x6532AFB4
_otr: 47F43D1A 5D68C36F 468BAEBA 640E8856 D7951CCF
_www: http://martinralbrecht.wordpress.com/
_jab: martinralbre...@jabber.ccc.de

-- 
You received this message because you are subscribed to the Google Groups 
sage-devel group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to sage-devel+unsubscr...@googlegroups.com.
To post to this group, send email to sage-devel@googlegroups.com.
Visit this group at http://groups.google.com/group/sage-devel.
For more options, visit https://groups.google.com/groups/opt_out.


Re: [sage-devel] Re: Whats the database-jones-numfield?

2013-10-08 Thread Martin Albrecht
database_symbolic_data is http://symbolicdata.org/wiki/Main_Page and it's 
licensed under the GPL. 

On Tuesday 08 Oct 2013 04:17:51 Volker Braun wrote:
 And also to database_odlyzko_zeta, database_sloane_oeis,
 database_symbolic_data
 
 database_stein_watkins_mini.p0 has a SPKG.txt (at least) but needs to
 specify a license. (facts can't be copyrighted but the way they are
 presented is)
 
 On Tuesday, October 8, 2013 12:10:15 PM UTC+1, Volker Braun wrote:
  Same applies to database_kohel
  
  On Tuesday, October 8, 2013 12:06:56 PM UTC+1, Volker Braun wrote:
  It has no SPKG.txt included. What about license etc? Somebody needs to
  write a SPKG.txt or we'll have to bump it from optional to experimental.

--
name: Martin Albrecht
_pgp: http://pgp.mit.edu:11371/pks/lookup?op=getsearch=0x6532AFB4
_otr: 47F43D1A 5D68C36F 468BAEBA 640E8856 D7951CCF
_www: http://martinralbrecht.wordpress.com/
_jab: martinralbre...@jabber.ccc.de

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


Re: Re: [sage-devel] Re: Whats the database-jones-numfield?

2013-10-08 Thread Martin Albrecht
Hi Volker,

right, so I add a new directory in build/pkgs regardless of whether it's an 
optional SPKG or not (?)

Cheers,
Martin

On Tuesday 08 Oct 2013 06:46:35 you wrote:
 Here is a handy template for all the required information:
 http://www.sagemath.org/doc/developer/producing_spkgs.html#the-file-spkg-txt
 On Tuesday, October 8, 2013 2:32:35 PM UTC+1, Martin Albrecht wrote:
  database_symbolic_data is http://symbolicdata.org/wiki/Main_Page and it's
  licensed under the GPL.
  
  On Tuesday 08 Oct 2013 04:17:51 Volker Braun wrote:
   And also to database_odlyzko_zeta, database_sloane_oeis,
   database_symbolic_data
   
   database_stein_watkins_mini.p0 has a SPKG.txt (at least) but needs to
   specify a license. (facts can't be copyrighted but the way they are
   presented is)
   
   On Tuesday, October 8, 2013 12:10:15 PM UTC+1, Volker Braun wrote:
Same applies to database_kohel

On Tuesday, October 8, 2013 12:06:56 PM UTC+1, Volker Braun wrote:
It has no SPKG.txt included. What about license etc? Somebody needs
  
  to
  
write a SPKG.txt or we'll have to bump it from optional to
  
  experimental.

--
name: Martin Albrecht
_pgp: http://pgp.mit.edu:11371/pks/lookup?op=getsearch=0x6532AFB4
_otr: 47F43D1A 5D68C36F 468BAEBA 640E8856 D7951CCF
_www: http://martinralbrecht.wordpress.com/
_jab: martinralbre...@jabber.ccc.de

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


Re: [sage-devel] Need help with optional spkgs

2013-10-07 Thread Martin Albrecht
It seems to me the database_* packages fail because there is no
$SAGE_ROOT/data any more. Where should databases be installed to now?


On 7 October 2013 12:52, Volker Braun vbraun.n...@gmail.com wrote:

 We need to make sure that the optional spkg still work with the new git
 directory layout. I've tried to build all optional spkgs and the following
 ran into problems installing. Some failures may be trivial, but some spkgs
 will need updating. If you care about one of these, please check the build
 log and help transition it to the new directory layout. If it turns out
 that nobody cares then we will move the spkg to experimental.

 brian
 cunningham_tables
 database_cremona_ellcurve
 database_jones_numfield
 database_kohel
 database_odlyzko_zeta
 database_sloane_oeis
 database_stein_watkins_mini.p0
 database_symbolic_data
 fricas
 fricasaldor
 jsmath_image_fonts
 libcocoa
 libtheora
 mpi4py
 openssl
 p_group_cohomology
 PyQt_x11
 TOPCOM
 valgrind

 Logfiles are here:
 http://boxen.math.washington.edu/home/vbraun/Sage/Testing/optional/

 The corresponding trac ticket is http://trac.sagemath.org/ticket/14962

 --
 You received this message because you are subscribed to the Google Groups
 sage-devel group.
 To unsubscribe from this group and stop receiving emails from it, send an
 email to sage-devel+unsubscr...@googlegroups.com.
 To post to this group, send email to sage-devel@googlegroups.com.
 Visit this group at http://groups.google.com/group/sage-devel.
 For more options, visit https://groups.google.com/groups/opt_out.




-- 
name: Martin Albrecht
_pgp: http://pgp.mit.edu:11371/pks/lookup?op=getsearch=0x6532AFB4
_otr: 47F43D1A 5D68C36F 468BAEBA 640E8856 D7951CCF
_www: http://martinralbrecht.wordpress.com
_jab: martinralbre...@jabber.ccc.de

-- 
You received this message because you are subscribed to the Google Groups 
sage-devel group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to sage-devel+unsubscr...@googlegroups.com.
To post to this group, send email to sage-devel@googlegroups.com.
Visit this group at http://groups.google.com/group/sage-devel.
For more options, visit https://groups.google.com/groups/opt_out.


Re: Re: [sage-devel] Need help with optional spkgs

2013-10-07 Thread Martin Albrecht
Where the new (PKG) directory layout documented, so that i can try to fix it?

This http://sagemath.github.io/git-developer-guide/index.html doesn't seem to 
discuss it?

For example, what's checksums.ini?

On Monday 07 Oct 2013 05:58:51 Volker Braun wrote:
 Databases go to SAGE_LOCAL/share. Thats an easy change.
 
 On Monday, October 7, 2013 1:48:52 PM UTC+1, Martin Albrecht wrote:
  It seems to me the database_* packages fail because there is no
  $SAGE_ROOT/data any more. Where should databases be installed to now?
  
  On 7 October 2013 12:52, Volker Braun vbrau...@gmail.com 
javascript:wrote:
  We need to make sure that the optional spkg still work with the new git
  directory layout. I've tried to build all optional spkgs and the
  following
  ran into problems installing. Some failures may be trivial, but some
  spkgs
  will need updating. If you care about one of these, please check the
  build
  log and help transition it to the new directory layout. If it turns out
  that nobody cares then we will move the spkg to experimental.
  
  brian
  cunningham_tables
  database_cremona_ellcurve
  database_jones_numfield
  database_kohel
  database_odlyzko_zeta
  database_sloane_oeis
  database_stein_watkins_mini.p0
  database_symbolic_data
  fricas
  fricasaldor
  jsmath_image_fonts
  libcocoa
  libtheora
  mpi4py
  openssl
  p_group_cohomology
  PyQt_x11
  TOPCOM
  valgrind
  
  Logfiles are here:
  http://boxen.math.washington.edu/home/vbraun/Sage/Testing/optional/
  
  The corresponding trac ticket is http://trac.sagemath.org/ticket/14962

--
name: Martin Albrecht
_pgp: http://pgp.mit.edu:11371/pks/lookup?op=getsearch=0x6532AFB4
_otr: 47F43D1A 5D68C36F 468BAEBA 640E8856 D7951CCF
_www: http://martinralbrecht.wordpress.com/
_jab: martinralbre...@jabber.ccc.de

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


[sage-devel] reviewing git patch

2013-10-02 Thread Martin Albrecht
Hi all,

I want (I guess I am supposed to) review 

   http://trac.sagemath.org/ticket/15209

which evidently uses the new git workflow. Since I so far ignored all that git 
chatter I am somewhat lost how to review this. I don't need hand holding wrt 
to basic git usage, but I am wondering what the suggested workflow for 
reviewing is?

Cheers,
Martin


--
name: Martin Albrecht
_pgp: http://pgp.mit.edu:11371/pks/lookup?op=getsearch=0x6532AFB4
_otr: 47F43D1A 5D68C36F 468BAEBA 640E8856 D7951CCF
_www: http://martinralbrecht.wordpress.com/
_jab: martinralbre...@jabber.ccc.de

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


Re: Re: Re: [sage-devel] Re: use Sage!

2013-08-30 Thread Martin Albrecht
Hi John, [sage-devel]

awesome! I shall put what I have in a repository on bitbucket and you can then 
have a look to see what you think might need work etc.?

I am somewhat hesitant, though, to go too deep into signature based algorithms 
and new improvements, this sounds more like research than an introduction 
using Sage?

Cheers,
Martin

On Thursday 29 Aug 2013 20:53:32 you wrote:
 Martin
 
 
 I'd be willing to help with this. Aside from having worked with you on a
 couple of the programs, I've been working on resurrecting the dynamic
 algorithms of Caboara and Gritzmann and Sturmfels, using a new technique. I
 also have some stuff you could probably use for introductory material. The
 toy implementation shows some promise, even before tying it to signature
 techniques (which is planned) and would illustrate how Sage lets you tie
 symbolic  numerical techniques together. The research led to a few bug
 fixes in the Mixed Integer Programming last year! :-)
 
 
 john perry
 
 On Thursday, August 29, 2013 4:18:11 AM UTC-5, Martin Albrecht wrote:
  On Wednesday 28 Aug 2013 11:17:10 Rob Beezer wrote:
   If you think this is a good project for the Sage community, then
  
  consider
  
   demonstrate the viability by volunteering as an author, editor, producer
   and/or manager of such an effort (in addition to those expressing
  
  interest
  
   already above).
  
  Hi all,
  
  fwiw I toyed with the idea of turning part 2 of my thesis which introduce
  Gröbner bases and algorithms for computing them using Sage into a
  stand-alone
  text. It could be expanded, for example I have toy implementations of F4,
  F5,
  F4/F5 and Matrix-F5 in Sage, all algorithms that people could benefit from
  playing around with to wrap their heads around them.
  
  However, since I am not a mathematician but a cryptographer with a
  computer
  science degree (I think that shows in the material) and I am still a mere
  postdoc, I think it would need a second author or so. Perhaps someone with
  a
  stronger background in commutative algebra could partner up with me.
  
  Just an idea to throw into the ring.
  
  Cheers,
  Martin

--
name: Martin Albrecht
_pgp: http://pgp.mit.edu:11371/pks/lookup?op=getsearch=0x6532AFB4
_otr: 47F43D1A 5D68C36F 468BAEBA 640E8856 D7951CCF
_www: http://martinralbrecht.wordpress.com/
_jab: martinralbre...@jabber.ccc.de

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


Re: Re: Re: [sage-devel] Re: use Sage!

2013-08-30 Thread Martin Albrecht
Hi all,

it’s here: https://bitbucket.org/malb/sage-gb-book

Cheers,
Martin

On Thursday 29 Aug 2013 20:53:32 john_perry_usm wrote:
 Martin
 
 
 I'd be willing to help with this. Aside from having worked with you on a
 couple of the programs, I've been working on resurrecting the dynamic
 algorithms of Caboara and Gritzmann and Sturmfels, using a new technique. I
 also have some stuff you could probably use for introductory material. The
 toy implementation shows some promise, even before tying it to signature
 techniques (which is planned) and would illustrate how Sage lets you tie
 symbolic  numerical techniques together. The research led to a few bug
 fixes in the Mixed Integer Programming last year! :-)
 
 
 john perry
 
 On Thursday, August 29, 2013 4:18:11 AM UTC-5, Martin Albrecht wrote:
  On Wednesday 28 Aug 2013 11:17:10 Rob Beezer wrote:
   If you think this is a good project for the Sage community, then
  
  consider
  
   demonstrate the viability by volunteering as an author, editor, producer
   and/or manager of such an effort (in addition to those expressing
  
  interest
  
   already above).
  
  Hi all,
  
  fwiw I toyed with the idea of turning part 2 of my thesis which introduce
  Gröbner bases and algorithms for computing them using Sage into a
  stand-alone
  text. It could be expanded, for example I have toy implementations of F4,
  F5,
  F4/F5 and Matrix-F5 in Sage, all algorithms that people could benefit from
  playing around with to wrap their heads around them.
  
  However, since I am not a mathematician but a cryptographer with a
  computer
  science degree (I think that shows in the material) and I am still a mere
  postdoc, I think it would need a second author or so. Perhaps someone with
  a
  stronger background in commutative algebra could partner up with me.
  
  Just an idea to throw into the ring.
  
  Cheers,
  Martin

--
name: Martin Albrecht
_pgp: http://pgp.mit.edu:11371/pks/lookup?op=getsearch=0x6532AFB4
_otr: 47F43D1A 5D68C36F 468BAEBA 640E8856 D7951CCF
_www: http://martinralbrecht.wordpress.com/
_jab: martinralbre...@jabber.ccc.de

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


[sage-devel] Sage GB Book

2013-08-30 Thread Martin Albrecht
Hi John,

On Friday 30 Aug 2013 08:32:39 john_perry_usm wrote:
 Martin
 
 Maybe one of us misunderstands the other ( maybe this should become a new
 thread? dunno).
 
 I am somewhat hesitant, though, to go too deep into signature based
 
  algorithms
  and new improvements...
 
 It was not my intention to go deep into signature based algorithms; I was
 trying to qualify the dynamic algorithm as not being signature based. As it
 dates from 1993, it's much older than F5  variants. There's no need to put
 the newer stuff in there, but I was thinking the dynamic algorithm would be
 useful in a text that introduces to Sage, as an illustration of how to make
 two very different parts work together (MILP and Singular). If you think
 otherwise, okay.

ah, gotcha! Sorry for the confusion, yep, this makes sense!

 Out of curiosity, though, what do you think is wrong with the mathematical
 aspect? Did you have specific applications to commutative algebra in mind?
 If so, someone like Simon might be a better contributor.

I defined an environment called citeproof, which prints


Proof: See \cite{some reference}
“””

which is a good indication that I didn’t care about proofs too much, something 
which should rub some people the wrong way. It’s strongly biased towards 
intuitions about algorithms and applications in cryptography. 

For example, I only talk about solving systems of equations. A proper text on 
GBs should talk about commutative algebra problems more general I guess. 

All in all, it’s not necessarily well rounded and might not be the text that 
the Sage community expects when it hears Sage Book on Gröbner Bases.

Cheers,
Martin

--
name: Martin Albrecht
_pgp: http://pgp.mit.edu:11371/pks/lookup?op=getsearch=0x6532AFB4
_otr: 47F43D1A 5D68C36F 468BAEBA 640E8856 D7951CCF
_www: http://martinralbrecht.wordpress.com/
_jab: martinralbre...@jabber.ccc.de

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


Re: Re: [sage-devel] Re: use Sage!

2013-08-30 Thread Martin Albrecht
Hi all,

seems like my environment is very very forgiving. I missed amsmath and amssym. 
I’ve just committed a new version which should compile in standard 
environments.

Cheers,
Martin

On Friday 30 Aug 2013 09:13:02 William Stein wrote:
 On Fri, Aug 30, 2013 at 8:40 AM, Jason Grout
 
 jason-s...@creativetrax.com wrote:
  On 8/30/13 5:53 AM, Martin Albrecht wrote:
  Hi all,
  
  it’s here: https://bitbucket.org/malb/sage-gb-book
  
  Also, you could create a project on cloud.sagemath.com and collaboratively
  edit the textbook right there.  Live, real-time.  And push changes back to
  bitbucket.  And have automatic side-by-side pdf previews, which include
  sagetex output.

Btw. I tend to work while offline quite a bit (I have a very long commute 
involving planes and international borders) so cloud.sagemath.org doesn’t seem 
like the right environment for *me*. Yet, if people want to collaborate there 
that shouldn’t affect them.

 The book is in several different files and my implementation isn't
 perfect (yet) in the case of multiple files (so watch out -- that
 said, this could be a good sample input for dealing with multiple
 files).  That said, I don't know how to build the book.
 
 pdflatex sage-gb-book.tex
 
 Error with minionpro, and I see
 
 % I really like MinionPro but you can comment this out if it causes
 problems: %
 http://carlo-hamalainen.net/blog/2007/12/11/installing-minion-pro-fonts
 \usepackage{MinionPro}
 
 
 so I comment out it, since MinionPro isn't in Ubuntu (even the latest
 13.10 as far as I can tell), and installing it involves a bunch of
 steps.  I tried commenting out that line and...
 
 pdflatex sage-gb-book.tex
 
 l.1 \chapter
 {Introduction} [1]
 Chapter 1.
 ! Undefined control sequence.
 argument \mathbb
{F}
 l.8 \item $\F
  $ is a field, not necessarily algebraically closed.
 $\overline{...
 
 
 Martin, how is one supposed to build your book?
 
  Just an idea
  
  Thanks,
  
  Jason
  
  
  
  --
  You received this message because you are subscribed to the Google Groups
  sage-devel group.
  To unsubscribe from this group and stop receiving emails from it, send an
  email to sage-devel+unsubscr...@googlegroups.com.
  To post to this group, send email to sage-devel@googlegroups.com.
  Visit this group at http://groups.google.com/group/sage-devel.
  For more options, visit https://groups.google.com/groups/opt_out.

--
name: Martin Albrecht
_pgp: http://pgp.mit.edu:11371/pks/lookup?op=getsearch=0x6532AFB4
_otr: 47F43D1A 5D68C36F 468BAEBA 640E8856 D7951CCF
_www: http://martinralbrecht.wordpress.com/
_jab: martinralbre...@jabber.ccc.de

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


Re: Re: [sage-devel] Re: use Sage!

2013-08-29 Thread Martin Albrecht
On Wednesday 28 Aug 2013 11:17:10 Rob Beezer wrote:
 If you think this is a good project for the Sage community, then consider 
 demonstrate the viability by volunteering as an author, editor, producer 
 and/or manager of such an effort (in addition to those expressing interest
 already above).

Hi all,

fwiw I toyed with the idea of turning part 2 of my thesis which introduce 
Gröbner bases and algorithms for computing them using Sage into a stand-alone 
text. It could be expanded, for example I have toy implementations of F4, F5, 
F4/F5 and Matrix-F5 in Sage, all algorithms that people could benefit from 
playing around with to wrap their heads around them.

However, since I am not a mathematician but a cryptographer with a computer 
science degree (I think that shows in the material) and I am still a mere 
postdoc, I think it would need a second author or so. Perhaps someone with a 
stronger background in commutative algebra could partner up with me. 

Just an idea to throw into the ring.

Cheers,
Martin


--
name: Martin Albrecht
_pgp: http://pgp.mit.edu:11371/pks/lookup?op=getsearch=0x6532AFB4
_otr: 47F43D1A 5D68C36F 468BAEBA 640E8856 D7951CCF
_www: http://martinralbrecht.wordpress.com/
_jab: martinralbre...@jabber.ccc.de

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


Fwd: Re: [sage-devel] Re: SymbolicData

2013-07-14 Thread Martin Albrecht
Hi,

mhh, I think the best option is indeed to ask on [sage-devel] directly, either 
for help in general or specific questions. But  also CCed Simon King who might 
be interested.


Cheers,
Martin


--  Forwarded Message  --

Subject: Re: [sage-devel] Re: SymbolicData
Date: Sunday 14 July 2013, 18:56:56
From: Hans-Gert Gräbe h...@hg-graebe.de
To: Martin Albrecht martinralbre...@googlemail.com
CC: Andreas Nareike nare...@informatik.uni-leipzig.de, Ralf Hemmecke 
hemme...@gmail.com

Hi Martin,

Am 12.07.2013 16:25, schrieb Martin Albrecht:
 thanks Hans-Gert for explaining. So my understanding is this: you're
 redesigning Symbolic Data and would like Sage to use the web-interface in 
the
 future instead of relying on that crufty hack that is my SymbolicData SPKG?
 That sounds like a good idea.

Yes, and the question is, who will coach that, put it in into the 
sage-devel process etc. Any suggestion?

 Andreas also mentioned to use Sage as a backend, I am not clear yet what 
that
 means exactly, it seems it means more than the above?

Using data with a certain semantics (e.g., G-Algebras, to mention a 
non-PCS area also covered by SymbolicData) requires tools that are 
semantic aware (i.e., understand the almost commutative G-Algebra 
settings) to manage those data. We try sage as is for such purposes 
(in former times we mainly used Singular, but it has a more restricted 
scope). Also here I could imagine a tighter integration if there is any 
one interested in it.

Best regards,
Hans-Gert

-- 

   Dr. Hans-Gert Graebe, apl. Prof., Inst. Informatik, Univ. Leipzig
   postal address: Postfach 100920, D-04009 Leipzig
   Hausanschrift: Augustusplatz 10-11, 04109 Leipzig, Raum P-633
   tel. : +49-341-97-32248
   email: gra...@informatik.uni-leipzig.de
   Home Page: http://www.informatik.uni-leipzig.de/~graebe

-

--
name: Martin Albrecht
_pgp: http://pgp.mit.edu:11371/pks/lookup?op=getsearch=0x6532AFB4
_otr: 47F43D1A 5D68C36F 468BAEBA 640E8856 D7951CCF
_www: http://martinralbrecht.wordpress.com/
_jab: martinralbre...@jabber.ccc.de

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


Re: Re: [sage-devel] Re: SymbolicData

2013-07-12 Thread Martin Albrecht
Hi all,

thanks Hans-Gert for explaining. So my understanding is this: you're 
redesigning Symbolic Data and would like Sage to use the web-interface in the 
future instead of relying on that crufty hack that is my SymbolicData SPKG? 
That sounds like a good idea. 

Andreas also mentioned to use Sage as a backend, I am not clear yet what that 
means exactly, it seems it means more than the above?

On Friday 12 Jul 2013, Hans-Gert Gräbe wrote:
 Am 11.07.2013 19:23, schrieb Martin Albrecht:
  Hi all,
  
  to be honest I don't really get yet what exactly you are trying to
  achieve. Perhaps you could write a longer description of your project
  (plans) for [sage-devel] and then people there can jump in?
 
 Hi Martin,
 
 you probably know about the roots of the SymbolicData project (if not,
 read more about that at http://symbolicdata.org/wiki/History).
 
 In 1998 the PSC (Polynomial Systems Community) was faced with an (also
 nowadays well known) effect: The Posso and Frisco projects supported
 with EU money for several years collected a huge list of Polynomial
 System Benchmarks, but access was irregular and the end of the money was
 (more or less) the end of the public availability of the Data.
 
 A main problem of such efforts - you cannot grade on them and usually
 also not put it in the focus of a project proposal - became more
 dominant and recognised during the last years (by the way, a problem
 best known in other communities as, e.g., experimental physics).
 
 Around 2000 Olaf Bachmann and me (at those times also working in PSC)
 took such efforts outside of any project. We were well supported ideally
 and also with compute resources by the Singular team, that Olaf was a
 member of, and later on by the Fachgruppe.  Olaf left at the end of 2000
 and I pushed the project actively until 2003. At this time I had to
 switch to SW Engineering and had drastically to reduce my activities in
 PSC. Conerning SD I concentrated forces on redesign according to
 upcoming XML standards.
 
 Some enthusiasm came up around the 2006 Groebner Year in Linz, but it
 was a flash in the pan concerning SD.
 
 In 2012 I could place a project proposal within the within the Saxonian
 E-Science Project and togehter with Andreas refactoring of SD according
 to Semantic Web standards is on the way.  Our motivation is to have SD
 as non trivial use case for application of Semantic Web concepts and
 technologies (SWT).
 
 We collected our part (that ends in Aug 2013) and can probably divert
 some resources from upcoming SWT projects to run the infrastructure for
 some time, but surely are not the people to coach the PSC needs in the
 future.
 
 We developed a new philosophy around the old ideas - SD as an
 intercommunity project as explained in the report
 http://symbolicdata.org/wiki/Events.2012-12 of the December 2012
 Workshop - and the intercommunity part is clearly on the focus of SWT
 and the (broader) upcoming interests of Andreas and me.
 
 But intercommunity requires that there are communities, in particular
 PSC, that really care. Hence Ralf asked the correct question - who needs
 the f.. Polynomial Systems collection? Voluteers to the frontier!
 
 If no one cares then no one needs it, and it is time to change the
 field. I hope I was clearly enough.
 
 Best regards,
 Hans-Gert

Cheers,
Martin

--
name: Martin Albrecht
_pgp: http://pgp.mit.edu:11371/pks/lookup?op=getsearch=0x6532AFB4
_otr: 47F43D1A 5D68C36F 468BAEBA 640E8856 D7951CCF
_www: http://martinralbrecht.wordpress.com/
_jab: martinralbre...@jabber.ccc.de


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


[sage-devel] Re: SymbolicData

2013-07-11 Thread Martin Albrecht
Hi there,

I have to admit that I haven't touched that package in years, but I agree that 
we should use your database properly (my code is a bit of a hack). I 
personally won't be able to make it to your workshop but I CCed [sage-devel], 
perhaps some other developer would be up for it.

On Thursday 11 Jul 2013, you wrote:
 Dear Mr. Albrecht,
 
 I learned that you are the author of the SymbolicData package for Sage.
 I am currently working at the SymbolicData project. After the project
 lay idle for some time, we are now working on consolidating our data and
 transforming it towards RDF/Linked Data. That means (as a first
 approxmiation) that we separated resource data and metadata.
 Additionally, we have collected bibliographical data. To query our
 database one can use the query language SPARQL.
 
 Currently we are looking into using Sage as a back-end to provide
 services to the community and to specify meanings of our predicates used
 in RDF.
 
 Right now I'm not sure which data the SymbolicData Sage package is
 using. There might also be some differences, for example Czapor-86b
 should only have variables x and y, while a through h and k are parameters.
 
 It would be interesting to have the package get the data directly from
 our database (possibly caching it) and use our RDF description to build
 new resources.
 
 There will be a workshop in Leipzig august 26/27 which would be a great
 opportunity to exchange experiences.
 
 Please let me now if you're still working on the Sage package and if
 you're interesting in collaboration.
 
 Best regards
 Andreas Nareike

Cheers,
Martin

--
name: Martin Albrecht
_pgp: http://pgp.mit.edu:11371/pks/lookup?op=getsearch=0x6532AFB4
_otr: 47F43D1A 5D68C36F 468BAEBA 640E8856 D7951CCF
_www: http://martinralbrecht.wordpress.com/
_jab: martinralbre...@jabber.ccc.de


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


Re: Re: [sage-devel] Re: SymbolicData

2013-07-11 Thread Martin Albrecht
Hey,

I simply used symbolic data as a source for benchmarketing ideals, but my 
understanding is that it's so much more. However, I'll leave Andreas to 
explain that since he's the expert.

On Thursday 11 Jul 2013, Ralf Hemmecke wrote:
 On 07/11/2013 01:04 PM, Martin Albrecht wrote:
  I have to admit that I haven't touched that package in years, but I agree
  that we should use your database properly (my code is a bit of a hack).
 
 Martin,
 
 it would be interesting if you can list some use cases for the data and
 how you could imagine all the data is used (testsuites, benchmark tests,
 etc.).
 
 How this is translated into an API and who is going to implement that is
 another question, but getting people to know about SD and what they
 might want from SymbolicData would be quite useful already.
 
 Producing something with no user base is not very promising.
 
 Ralf

Cheers,
Martin

--
name: Martin Albrecht
_pgp: http://pgp.mit.edu:11371/pks/lookup?op=getsearch=0x6532AFB4
_otr: 47F43D1A 5D68C36F 468BAEBA 640E8856 D7951CCF
_www: http://martinralbrecht.wordpress.com/
_jab: martinralbre...@jabber.ccc.de


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


Re: Re: [sage-devel] Re: SymbolicData

2013-07-11 Thread Martin Albrecht
Hi all,

to be honest I don't really get yet what exactly you are trying to achieve. 
Perhaps you could write a longer description of your project (plans) for 
[sage-devel] and then people there can jump in?

On Thursday 11 Jul 2013, hgg wrote:
 Hey Martin Albrecht,
 
 the main dilemma is, that SymbolicData grew up from the
 PolynomialSystems community, but at the (lasting) moment no one from
 there cares about its future. Its easier to start fresh projects and not
 to remember the achievements of the old ones.
 
 We are looking for a coach for that part of the project, so may be you
 have a good suggestion or you can discuss that on sage-devel?
 
 There are people doing lmona.de or cite.me where it is evident how to
 join forces (if any), so I think there would be someting (at least) to
 discuss.
 
 Best regards,
 Hans-Gert Gräbe
 
 Am 11.07.2013 14:05, schrieb Andreas Nareike:
   Original Message 
  Subject: Re: Re: [sage-devel] Re: SymbolicData
  Date: Thu, 11 Jul 2013 13:53:53 +0200
  From: Martin Albrecht martinralbre...@googlemail.com
  To: sage-devel@googlegroups.com,Andreas Nareike
  nare...@informatik.uni-leipzig.de
  
  Hey,
  
  I simply used symbolic data as a source for benchmarketing ideals, but my
  understanding is that it's so much more. However, I'll leave Andreas to
  explain that since he's the expert.

Cheers,
Martin

--
name: Martin Albrecht
_pgp: http://pgp.mit.edu:11371/pks/lookup?op=getsearch=0x6532AFB4
_otr: 47F43D1A 5D68C36F 468BAEBA 640E8856 D7951CCF
_www: http://martinralbrecht.wordpress.com/
_jab: martinralbre...@jabber.ccc.de


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


Re: [sage-devel] LELA for matrices?

2013-06-01 Thread Martin Albrecht
Hi,

as far as I know LELA does not support the same operations as LinBox, it's not 
a straight-forward fork but a re-implementation of a subset (that's my 
understanding, anyway). it has some advantages, i.e., that some bits nicely 
generic, i.e., it should be fairly easy to add new matrix types by adding 
stuff like matrix-matrix multiplication and e.g. PLE decomposition is handled 
generically.

Also, the main developer of LELA Bradford has left academia. He usually 
responds fairly quickly to e-mail and is up for helping out, but as far as I 
know nobody is actively developing LELA at the moment (I might be terribly 
wrong here!)

On Saturday 01 Jun 2013, Volker Braun wrote:
 I would like to have some discussion about the roadmap for matrices in
 Sage. It seems that linbox has essentially been forked by LELA
 (http://www.singular.uni-kl.de/lela). Since it optionally contains M4RI,
 one would think that it is a good fit for Sage, too. Has anybody given any
 thoughts to switching Sage from linbox to LELA? In particular, Burcin and
 Martin should have an opinion and it would be nice to hear from them ;-)
 
 On a related note, sparse matrices in Sage suck (dictionary of keys).
 Sparse matrices in LELA only suck slightly less (list of lists). For fast
 computation one should implement compressed sparse row/column, I think.

Cheers,
Martin

--
name: Martin Albrecht
_pgp: http://pgp.mit.edu:11371/pks/lookup?op=getsearch=0x6532AFB4
_otr: 47F43D1A 5D68C36F 468BAEBA 640E8856 D7951CCF
_www: http://martinralbrecht.wordpress.com/
_jab: martinralbre...@jabber.ccc.de


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


Re: [sage-devel] dumps doesn't save immutability for Matrix_mod2_dense

2013-05-31 Thread Martin Albrecht
Looks like a bug/oversight. Can you open a trac ticket?

On Thursday 30 May 2013, Matthew Weippert wrote:
 I think I found a bug in dumps for matrices over GF(2). The problem
 surfaced when I tried to save a set of such matrices, and the load failed
 complaining that
 
 TypeError('mutable matrices are unhashable',)
 
 Simple example demonstrates the problem:
 
 z = zero_matrix(GF(2), 3)
 z.set_immutable()
 print z.is_immutable()
 zstr = z.dumps()
 z2 = loads(zstr)
 print z2.is_immutable()
 
 
 which (i think) causes an exception in this code:
 s = set()
 s.add(z)
 sstr = dumps(s)
 s2 = loads(sstr)
 
 Cheers,
 Matthew

Cheers,
Martin

--
name: Martin Albrecht
_pgp: http://pgp.mit.edu:11371/pks/lookup?op=getsearch=0x6532AFB4
_otr: 47F43D1A 5D68C36F 468BAEBA 640E8856 D7951CCF
_www: http://martinralbrecht.wordpress.com/
_jab: martinralbre...@jabber.ccc.de


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


Re: Re: [sage-matroid] [sage-devel] Huge patch on Trac 7477: Matroid theory

2013-05-26 Thread Martin Albrecht
Hi all,

I didn't follow the thread but for me it would be helpful to get a self 
contained description of what the performance issue is with current Sage 
matrices: 

  What operations at what dimensions are slow?

 P.S. It looks like GF(4)-matrices had a speed regression between 5.9 and
 5.10?!

Can you provide an example so I can test?

Cheers,
Martin

--
name: Martin Albrecht
_pgp: http://pgp.mit.edu:11371/pks/lookup?op=getsearch=0x8EF0DC99
_otr: 47F43D1A 5D68C36F 468BAEBA 640E8856 D7951CCF
_www: http://martinralbrecht.wordpress.com/
_jab: martinralbre...@jabber.ccc.de


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


Re: [sage-devel] Make mod_int signed?

2013-05-21 Thread Martin Albrecht
Sounds like a good idea to me.

On Tuesday 21 May 2013, Volker Braun wrote:
 Reposted at the top to increase visiblitiy (see
 https://groups.google.com/d/msg/sage-devel/5PdRIUic2Es/l0yDYLG_8qIJ)
 
 The sage matrices use unsigned long for the mod_int datatype. This does not
 fit into a (signed) python int, so whenever it reaches Python (assigning to
 a Python variable, or passing as an argument to a non-cdef function) it
 gets converted to a Python arbitrary-precision integer. This wastes quite a
 bit of time when creating it and gets worse once you start doing
 arithmetic:
 
 --
 ctypedef unsigned long mod_int   # this is how we define it
 
 cpdef caster_slow():
 cdef int i
 foo = None
 for i in range(1000):
 foo = mod_int(1.0)
 
 cpdef caster_fast():
 cdef int i
 foo = None
 for i in range(1000):
 foo = int(1.0)
 --
 
 Then we get
 
 sage: timeit('caster_slow()')
 5 loops, best of 3: 137 ms per loop
 sage: timeit('caster_fast()')
 25 loops, best of 3: 34.4 ms per loop
 
 Should we just switch to (signed) long? This wastes one bit (factor of 2)
 of maximum modulus length, but at least for now we define MAX_MODULUS =
 2**23 so this wouldn't be an issue.

Cheers,
Martin

--
name: Martin Albrecht
_pgp: http://pgp.mit.edu:11371/pks/lookup?op=getsearch=0x8EF0DC99
_otr: 47F43D1A 5D68C36F 468BAEBA 640E8856 D7951CCF
_www: http://martinralbrecht.wordpress.com/
_jab: martinralbre...@jabber.ccc.de


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


[sage-devel] Re: M2 algorithm for GB is broken (?)

2013-05-15 Thread Martin Albrecht
Hi William,

I tried to fix the bug and provided a patch at

http://trac.sagemath.org/sage_trac/attachment/ticket/14587/

However, I cannot test it as the M2 experimental package won't build (on my 
machine).

On Tuesday 14 May 2013, William Stein wrote:
 Hi,
 
 I actually tried to use something marked #optional, hence not tested,
 hence broken, and it was broken:
 
 P.a,b,c = PolynomialRing(ZZ,3)
 I = sage.rings.ideal.Katsura(P,3) # regenerate to prevent caching
 I.groebner_basis('macaulay2:gb') # optional - macaulay2
 
 Error in lines 3-3
 Traceback (most recent call last):
   File /mnt/home/lFqBXyPI/.sagemathcloud/sage_server.py, line 412, in
 execute exec compile(block, '', 'single') in namespace, locals
   File , line 1, in module
   File cachefunc.pyx, line 1462, in
 sage.misc.cachefunc.CachedMethodCaller.__call__
 (sage/misc/cachefunc.c:7556)
   File cachefunc.pyx, line 2044, in
 sage.misc.cachefunc.CachedMethod._instance_call
 (sage/misc/cachefunc.c:10040)
   File
 /usr/local/sage/sage-5.9/local/lib/python2.7/site-packages/sage/rings/pol
 ynomial/multi_polynomial_ideal.py, line 3840, in groebner_basis
 gb = self._groebner_basis_macaulay2(prot=prot, *args, **kwds)
 TypeError: _groebner_basis_macaulay2() got an unexpected keyword argument
 'prot'

Cheers,
Martin

--
name: Martin Albrecht
_pgp: http://pgp.mit.edu:11371/pks/lookup?op=getsearch=0x8EF0DC99
_otr: 47F43D1A 5D68C36F 468BAEBA 640E8856 D7951CCF
_www: http://martinralbrecht.wordpress.com/
_jab: martinralbre...@jabber.ccc.de

-- 
You received this message because you are subscribed to the Google Groups 
sage-devel group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to sage-devel+unsubscr...@googlegroups.com.
To post to this group, send email to sage-devel@googlegroups.com.
Visit this group at http://groups.google.com/group/sage-devel?hl=en.
For more options, visit https://groups.google.com/groups/opt_out.




Re: [sage-devel] Reasons for upgrading

2013-04-30 Thread Martin Albrecht
Definitely (A) for me (ATLAS insists on tuning on my box)

On Tuesday 30 Apr 2013, Jeroen Demeyer wrote:
 Dear Sage upgraders,
 
 I would like to do a small survey considering upgrading (the sage
 --upgrade command) to understand better what the important features
 are. If you don't ever upgrade nor plan to upgrade, please move along.
 
 What are your major reasons for upgrading as opposed to building from
 scratch? (multiple anwers possible, but only answer with things that are
 important to you):
 
 A) Upgrades build faster.
 B) Upgrading is easier.
 C) I have a bunch of optional packages installed that I want to preserve.
 D) I have various patches to the repos (e.g. devel/sage) that I want to
 preserve.
 E) Upgrading is cool!
 F) None of the above, I do upgrade but I don't really care.

Cheers,
Martin

--
name: Martin Albrecht
_pgp: http://pgp.mit.edu:11371/pks/lookup?op=getsearch=0x8EF0DC99
_otr: 47F43D1A 5D68C36F 468BAEBA 640E8856 D7951CCF
_www: http://martinralbrecht.wordpress.com/
_jab: martinralbre...@jabber.ccc.de

-- 
You received this message because you are subscribed to the Google Groups 
sage-devel group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to sage-devel+unsubscr...@googlegroups.com.
To post to this group, send email to sage-devel@googlegroups.com.
Visit this group at http://groups.google.com/group/sage-devel?hl=en.
For more options, visit https://groups.google.com/groups/opt_out.




Re: [sage-devel] Looking for a GSOC mentor - improving Sage's core performance

2013-04-24 Thread Martin Albrecht
On Wednesday 24 Apr 2013, Jernej Azarija wrote:
 4. Optimized linear algebra over small fields with M4RI

and on: http://azi.dev.si/GSOC2013_proposal2.html
 Integrate the M4RI routines and thus speed up computations over the covered
 fields.
 
M4RI *is* in Sage and so is M4RIE. So I am puzzled what this is about.

Cheers,
Martin

--
name: Martin Albrecht
_pgp: http://pgp.mit.edu:11371/pks/lookup?op=getsearch=0x8EF0DC99
_otr: 47F43D1A 5D68C36F 468BAEBA 640E8856 D7951CCF
_www: http://martinralbrecht.wordpress.com/
_jab: martinralbre...@jabber.ccc.de

-- 
You received this message because you are subscribed to the Google Groups 
sage-devel group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to sage-devel+unsubscr...@googlegroups.com.
To post to this group, send email to sage-devel@googlegroups.com.
Visit this group at http://groups.google.com/group/sage-devel?hl=en.
For more options, visit https://groups.google.com/groups/opt_out.




[sage-devel] Re: new M4RI(E) SPKGs need review

2013-04-08 Thread Martin Albrecht
Any volunteers for reviewing this? 

On Saturday 23 Mar 2013, Martin Albrecht wrote:
 Hi,
 
 I've released new versions of M4RI and M4RIE and I'd appreciate if someone
 could take the time to review the relevant tickets to get these updates
 into Sage:
 
 M4RI:http://trac.sagemath.org/sage_trac/ticket/14335
 M4RIE: http://trac.sagemath.org/sage_trac/ticket/14336
 
 # What's new? #
 
 ## M4RI ##
 
 It's faster! For example. here's matrix multiplication on my computer:
 
 n 5.8 vanilla 5.8 + #14335Magma
 4096  0.09s   0.07s   0.10s
 8192  0.67s   0.62s
 
 More data here:
 https://martinralbrecht.wordpress.com/2012/12/21/m4ri-20121224/
 
 (20121224 never made it into Sage)
 
 ## M4RIE ##
 
 ### Performance ###
 
 It extends to degree 16 which means GF(2^e) for 10  e = 16 is now *a lot*
 faster in Sage (i.e., not embarrassingly slow)
 
 Here's multiplication for 4096 x 4096 matrices over GF(2^e)
 
 extension vanilla with patch  magma 2.15-10
 e:  1,0.09s   0.07s   0.10s
 e:  2,0.30s   0.22s   0.68s
 e:  3,0.64s   0.46s   1.89s
 e:  4,0.89s   0.70s   6.35s
 e:  5,1.34s   1.05s   92.43s
 e:  6,1.77s   1.39s
 e:  7,2.22s   1.74s
 e:  8,2.72s   2.14s
 e:  9,31.21s  5.74s
 e: 10,41.42s  7.94s
 e: 11,long9.31s
 e: 12,long10.56s
 e: 13,long56.39s
 e: 14,long100.64s
 e: 15,long141.88s
 e: 16,long199.78s 464.14s
 
 I didn't run those marked long because I ran out of RAM, check this though
 (without patch):
 
 sage: A = random_matrix(GF(2^11,'a'),500,500) # ~1/10 of above size
 sage: B = random_matrix(GF(2^11,'a'),500,500)
 sage: %time A*B
 CPU times: user 48.05 s, sys: 0.21 s, total: 48.26 s
 Wall time: 48.43 s
 
 Note that e8 is not optimised yet.
 
 More information here:
 https://martinralbrecht.wordpress.com/2012/08/23/m4rie-
 support-for-finite-fields-up-to-degree-16-added/
 
 ### Compilation ###
 
 I've split up conversion.c which means I can now do this:
 
 $ ulimit -v 196608  make
 
 in the M4RIE directory and M4RIE successfully built with 192MB of virtual
 memory.
 
 Cheers,
 Martin
 
 
 --
 name: Martin Albrecht
 _pgp: http://pgp.mit.edu:11371/pks/lookup?op=getsearch=0x8EF0DC99
 _otr: 47F43D1A 5D68C36F 468BAEBA 640E8856 D7951CCF
 _www: http://martinralbrecht.wordpress.com/
 _jab: martinralbre...@jabber.ccc.de

Cheers,
Martin

--
name: Martin Albrecht
_pgp: http://pgp.mit.edu:11371/pks/lookup?op=getsearch=0x8EF0DC99
_otr: 47F43D1A 5D68C36F 468BAEBA 640E8856 D7951CCF
_www: http://martinralbrecht.wordpress.com/
_jab: martinralbre...@jabber.ccc.de

-- 
You received this message because you are subscribed to the Google Groups 
sage-devel group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to sage-devel+unsubscr...@googlegroups.com.
To post to this group, send email to sage-devel@googlegroups.com.
Visit this group at http://groups.google.com/group/sage-devel?hl=en.
For more options, visit https://groups.google.com/groups/opt_out.




Re: Re: [sage-devel] GIT + release management

2013-03-31 Thread Martin Albrecht
Indeed +1

On Saturday 30 Mar 2013, Julien Puydt wrote:
 Le 30/03/2013 06:00, Jeroen Demeyer a écrit :
  Sage 5.1x will also be the last release under my release management. The
  switch to GIT is an excellent time for a new release manager, since the
  release workflow will change substantially anyway. Robert Bradshaw has
  agreed to be release manager for Sage 6.0. He doesn't want to do further
  releases, so we need volunteers for release management for Sage 6.1 and
  later.
 
 Let me use that occasion to thank you publicly and loudly about your
 work managing releases!
 
 Snark on #sagemath

Cheers,
Martin

--
name: Martin Albrecht
_pgp: http://pgp.mit.edu:11371/pks/lookup?op=getsearch=0x8EF0DC99
_otr: 47F43D1A 5D68C36F 468BAEBA 640E8856 D7951CCF
_www: http://martinralbrecht.wordpress.com/
_jab: martinralbre...@jabber.ccc.de

-- 
You received this message because you are subscribed to the Google Groups 
sage-devel group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to sage-devel+unsubscr...@googlegroups.com.
To post to this group, send email to sage-devel@googlegroups.com.
Visit this group at http://groups.google.com/group/sage-devel?hl=en.
For more options, visit https://groups.google.com/groups/opt_out.




[sage-devel] new M4RI(E) SPKGs need review

2013-03-23 Thread Martin Albrecht
Hi,

I've released new versions of M4RI and M4RIE and I'd appreciate if someone 
could take the time to review the relevant tickets to get these updates into 
Sage:

M4RI:http://trac.sagemath.org/sage_trac/ticket/14335
M4RIE: http://trac.sagemath.org/sage_trac/ticket/14336

# What's new? #

## M4RI ##

It's faster! For example. here's matrix multiplication on my computer:

n   5.8 vanilla 5.8 + #14335Magma
40960.09s   0.07s   0.10s
81920.67s   0.62s

More data here:  
https://martinralbrecht.wordpress.com/2012/12/21/m4ri-20121224/

(20121224 never made it into Sage)

## M4RIE ##

### Performance ###

It extends to degree 16 which means GF(2^e) for 10  e = 16 is now *a lot* 
faster in Sage (i.e., not embarrassingly slow)

Here's multiplication for 4096 x 4096 matrices over GF(2^e)

extension   vanilla with patch  magma 2.15-10
e:  1,  0.09s   0.07s   0.10s
e:  2,  0.30s   0.22s   0.68s
e:  3,  0.64s   0.46s   1.89s
e:  4,  0.89s   0.70s   6.35s
e:  5,  1.34s   1.05s   92.43s
e:  6,  1.77s   1.39s
e:  7,  2.22s   1.74s
e:  8,  2.72s   2.14s
e:  9,  31.21s  5.74s
e: 10,  41.42s  7.94s
e: 11,  long9.31s
e: 12,  long10.56s
e: 13,  long56.39s
e: 14,  long100.64s
e: 15,  long141.88s
e: 16,  long199.78s 464.14s

I didn't run those marked long because I ran out of RAM, check this though 
(without patch):

sage: A = random_matrix(GF(2^11,'a'),500,500) # ~1/10 of above size
sage: B = random_matrix(GF(2^11,'a'),500,500)
sage: %time A*B
CPU times: user 48.05 s, sys: 0.21 s, total: 48.26 s
Wall time: 48.43 s

Note that e8 is not optimised yet.

More information here: https://martinralbrecht.wordpress.com/2012/08/23/m4rie-
support-for-finite-fields-up-to-degree-16-added/

### Compilation ###

I've split up conversion.c which means I can now do this:

$ ulimit -v 196608  make

in the M4RIE directory and M4RIE successfully built with 192MB of virtual 
memory.

Cheers,
Martin


--
name: Martin Albrecht
_pgp: http://pgp.mit.edu:11371/pks/lookup?op=getsearch=0x8EF0DC99
_otr: 47F43D1A 5D68C36F 468BAEBA 640E8856 D7951CCF
_www: http://martinralbrecht.wordpress.com/
_jab: martinralbre...@jabber.ccc.de

-- 
You received this message because you are subscribed to the Google Groups 
sage-devel group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to sage-devel+unsubscr...@googlegroups.com.
To post to this group, send email to sage-devel@googlegroups.com.
Visit this group at http://groups.google.com/group/sage-devel?hl=en.
For more options, visit https://groups.google.com/groups/opt_out.




Re: [sage-devel] Re: GSOC 2013

2013-03-12 Thread Martin Albrecht
On Tuesday 12 Mar 2013, Harald Schilly wrote:
 On Friday, March 8, 2013 10:43:43 AM UTC+1, mmarco wrote:
  IIRC, the call for projects of Google summer of code was last year
  around march or april. Should we start to get prepared for this?
 
 Hi, I didn't had time, but I wanted to post something (again) yesterday.
 I've written the past applications and (mostly) the one which got approved
 last year. I'll work on that application and you can count on me submitting
 it again this time.
 
 What bothers me most, is that until now I haven't heard much about possible
 mentors, (new) project ideas and so on. So, therefore, I urge everyone who
 wants to be a mentor to
 
 a. contact me, such that i have an overview and exchange proposal ideas for
 projects

As for new projects:

(A)

A somewhat generic implementation of linear algebra over extension fields 
(mainly finite fields, but number fields could be a possibility) by 
considering them as polynomials with matrix coefficients. 

See here http://trac.sagemath.org/sage_trac/ticket/12177 for some prototype

(B)

It might make sense to pick up this constraint programming idea mentioned 
earlier + some applications (e.g., polynomial system optimisation / solving 
with noise)

(C) Lattice Cryptography

Implement things like a Learning with Errors problem instance generator and 
state-of-the-art algorithms for solving it using various lattice embeddings, 
BDD etc.

Cheers,
Martin

--
name: Martin Albrecht
_pgp: http://pgp.mit.edu:11371/pks/lookup?op=getsearch=0x8EF0DC99
_otr: 47F43D1A 5D68C36F 468BAEBA 640E8856 D7951CCF
_www: http://martinralbrecht.wordpress.com/
_jab: martinralbre...@jabber.ccc.de

-- 
You received this message because you are subscribed to the Google Groups 
sage-devel group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to sage-devel+unsubscr...@googlegroups.com.
To post to this group, send email to sage-devel@googlegroups.com.
Visit this group at http://groups.google.com/group/sage-devel?hl=en.
For more options, visit https://groups.google.com/groups/opt_out.




Re: [sage-devel] Re: GSOC 2013

2013-03-10 Thread Martin Albrecht
Note that Sage already has  a  wrapper around third-party linear solvers such 
as GLPK,CBC, Gurobi, CPLEX

   http://sagemath.org/doc/reference/numerical.html

Also, there is a patch adding Constraint Integer Programming through SCIP 
here:

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

On Sunday 10 Mar 2013, Eviatar wrote:
 What about implementing Google's constraint programming library (
 https://code.google.com/p/or-tools/)? It can be useful for problems in
 discrete mathematics, and would give Sage capabilities that it appears that
 no other mathematical software has.
 
 On Friday, 8 March 2013 01:43:43 UTC-8, mmarco wrote:
  IIRC, the call for projects of Google summer of code was last year
  around march or april. Should we start to get prepared for this?
  
  As a suggestion for possible projects, i would propose the writing of
  a windows GUI program that handles the virtual machines (set them up
  properly, handles upgradings, checks the availability of ports and
  decides if the VM should be launched in headless mode...)
  
  It sounds like a project that can be done in a summer, and can be
  really useful to spread sage among windows users.

Cheers,
Martin

--
name: Martin Albrecht
_pgp: http://pgp.mit.edu:11371/pks/lookup?op=getsearch=0x8EF0DC99
_otr: 47F43D1A 5D68C36F 468BAEBA 640E8856 D7951CCF
_www: http://martinralbrecht.wordpress.com/
_jab: martinralbre...@jabber.ccc.de

-- 
You received this message because you are subscribed to the Google Groups 
sage-devel group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to sage-devel+unsubscr...@googlegroups.com.
To post to this group, send email to sage-devel@googlegroups.com.
Visit this group at http://groups.google.com/group/sage-devel?hl=en.
For more options, visit https://groups.google.com/groups/opt_out.




[sage-devel] from cython.operator

2013-02-23 Thread Martin Albrecht
Hi, I am trying to use

  from cython.operator cimport dereference as deref, preincrement as inc 

in some Sage library code as advised in 

http://docs.cython.org/0.17.4/src/userguide/wrapping_CPlusPlus.html

but I get:

IOError: could not find dependency cython/operator.pxd included in 
sage/sat/solvers/cryptominisat/cryptominisat.pyx.
Error installing modified sage library code.

So it's not recognised, any ideas?

Cheers,
Martin

--
name: Martin Albrecht
_pgp: http://pgp.mit.edu:11371/pks/lookup?op=getsearch=0x8EF0DC99
_otr: 47F43D1A 5D68C36F 468BAEBA 640E8856 D7951CCF
_www: http://martinralbrecht.wordpress.com/
_jab: martinralbre...@jabber.ccc.de

-- 
You received this message because you are subscribed to the Google Groups 
sage-devel group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to sage-devel+unsubscr...@googlegroups.com.
To post to this group, send email to sage-devel@googlegroups.com.
Visit this group at http://groups.google.com/group/sage-devel?hl=en.
For more options, visit https://groups.google.com/groups/opt_out.




[sage-devel] libM4RIE and RAM during compile time

2013-01-17 Thread Martin Albrecht
Hi,

so it seems a lot of stories of people trying to build Sage on constrained 
devices include something like: the most time was spent building libm4rie all 
of which pretty much is waiting for swap. 

So let's take a harder look at M4RIE. The file in questions is - as far as I 
can tell - conversion.c:

  https://bitbucket.org/malb/m4rie/src/97a12b045567/src/conversion.c

The job is does is pretty boring: it converts one matrix representation to 
another. In particular given words like a0a1a2a3 b0b1b2b3 it will produce 
words a0b0 a1b1 and so on. So it's just bit fiddling.

We want that to be fast and hence this stuff is pretty unrolled.

We also want that to be readable so it makes uses of static inline functions 
and so on.

Options:

= Disable Optimisations =

I don't know if disabling optimisations for this file is an option:

(a) I'm not 100% how to code this autoconf, but it cannot be that hard
(b) we actually *want* this code to be fast, so we'd like to drop useless 
optimisations and keep the good ones

We could also add an option to configure which switches optimisations off for 
this file?

= Split up the file =

This can easily be done, its functions all handle different cases and do not 
interact. Volker suggested it might not make much of a difference because GCC 
optimises beyond file boundaries but if we actually produce different .o 
files, this should work?

Of course, the larger functions like _mzd_cling16 might still be a bottleneck. 
I don't know to break those up

Any other options?

Cheers,
Martin


--
name: Martin Albrecht
_pgp: http://pgp.mit.edu:11371/pks/lookup?op=getsearch=0x8EF0DC99
_otr: 47F43D1A 5D68C36F 468BAEBA 640E8856 D7951CCF
_www: http://martinralbrecht.wordpress.com/
_jab: martinralbre...@jabber.ccc.de

-- 
You received this message because you are subscribed to the Google Groups 
sage-devel group.
To post to this group, send email to sage-devel@googlegroups.com.
To unsubscribe from this group, send email to 
sage-devel+unsubscr...@googlegroups.com.
Visit this group at http://groups.google.com/group/sage-devel?hl=en.




Re: Re: [sage-devel] Re: Sage 5.4 on ARM

2012-12-24 Thread Martin Albrecht
On Monday 24 Dec 2012, tom d wrote:
 Man, still no success in getting through the libm4rie build.  It ran for 38
 hours before I had to get ready to head back to North America (which
 involved cutting power to the Pi).  It looks like the swap (on a connected
 usb drive) just got so jammed up after a couple hours that the work was
 happening at a truly glacial pace: cpu usage was basically zero, with 98+%
 of the cpu time spent 'waiting,' according to top.

Hi, M4RIE developer here.

I am pretty sure you're stuck in conversion.c which is a pretty dumb file 
actually which translates bitpacked representations to bitsliced, it's just 
bit fiddling but unrolled which probably explains the huge demand for 
compiling. How much RAM do you have? I could try to limit my RAM on my machine 
and split up the file so GCC compiles it with that RAM limit. Alternatively, 
try reducing the -O level.

Cheers,
Martin

--
name: Martin Albrecht
_pgp: http://pgp.mit.edu:11371/pks/lookup?op=getsearch=0x8EF0DC99
_otr: 47F43D1A 5D68C36F 468BAEBA 640E8856 D7951CCF
_www: http://martinralbrecht.wordpress.com/
_jab: martinralbre...@jabber.ccc.de

-- 
You received this message because you are subscribed to the Google Groups 
sage-devel group.
To post to this group, send email to sage-devel@googlegroups.com.
To unsubscribe from this group, send email to 
sage-devel+unsubscr...@googlegroups.com.
Visit this group at http://groups.google.com/group/sage-devel?hl=en.




[sage-devel] Sphinx warning

2012-12-22 Thread Martin Albrecht
Hi,

apparently [1] a patch of mine triggers a Sphinx warning

 docstring of sage.misc.classcall_metaclass.ClasscallMetaclass:27: WARNING:
 more than one target found for cross-reference u'__call__':
 sage.sat.solvers.dimacs.DIMACS.__call__,
 sage.sat.converters.polybori.CNFEncoder.__call__

Which is probably due to me adding

.. automethod:: __init__
.. automethod:: __call__

to the class docstring of two classes because I want __init__ and __call__ to 
show up in the reference manual, i.e.,

class Foo:

blablabla

.. automethod:: __init__


Anyone got an idea what I should do to fix the warning? 

Cheers,
Martin

[1] http://trac.sagemath.org/sage_trac/ticket/13851#comment:9

--
name: Martin Albrecht
_pgp: http://pgp.mit.edu:11371/pks/lookup?op=getsearch=0x8EF0DC99
_otr: 47F43D1A 5D68C36F 468BAEBA 640E8856 D7951CCF
_www: http://martinralbrecht.wordpress.com/
_jab: martinralbre...@jabber.ccc.de

-- 
You received this message because you are subscribed to the Google Groups 
sage-devel group.
To post to this group, send email to sage-devel@googlegroups.com.
To unsubscribe from this group, send email to 
sage-devel+unsubscr...@googlegroups.com.
Visit this group at http://groups.google.com/group/sage-devel?hl=en.




  1   2   3   4   5   6   7   8   9   >