21695 >> William Stein: An elliptic curve in Sage, there's...

advertisement
21695
>> William Stein: An elliptic curve in Sage, there's pretty fast code in Sage that does it which is in
PARI, and it will compute in a reasonable amount of time, say all the AP for P up to say ten to the
seventh, but there's much faster code due to Drew Sutherland which can go farther. That's what
Drew's using behind the scenes. But the thing with Drew's code he's the only person that's ever
used it. He uses it. It's not in any software or anything.
But what he did, he spent a lot of time optimizing computing the ACP. He also have stuff that
computes things that are about similar information about Jacobians of hyperelliptic curves. So it
could actually be relevant to your project as well if you wanted to do something with a large
number of P enormous number of P.
So he has this code which he's made available to me which I plan to incorporate or make usable
from Python. And that would be another project. There's a lot of code. And I think he has some
funny issues where you have to compile it -- it's a C program, basically. But you have to compile
it with different options depending whether you want to count points on elliptic curves versus
counting points on genus-2 curves, et cetera. There might be some tricky programming issues
involving compiling multiple versions of his library with different parameters.
So it's kind of like first a C programming task, figuring out how to put it all together in a way that's
usable from Python. As far as the license and stuff goes, he's perfectly happy including the code
in Sage, no problem at all, making it open source. And I think I have copies of the code available.
They're fairly recent. It's no problem getting the code. But getting it into Sage has some
interesting issues. And then once it's in Sage, running it and seeing if we can replicate some of
the numbers you had in your tables that he produced possibly with some other curves or
something would be nice. And seeing if one can extend them, I might have better computers
than he has, so we'll see where that goes, et cetera. That would be this project. It's kind of, I
think, a pretty concrete corner of what your talk was about. That's generally useful.
>>: So I was momentarily distracted. I was trying to put the slides on line. What does that
involve doing in a practical way, so his code is in what form?
>> William Stein: So his program is a C program. It's completely stand-alone. It doesn't depend
on any other programs as far as I know. So what he has to do is make it so that his C program is
easy to use efficiently from Sage.
>>: So Sage would actually be calling the program.
>> William Stein: It wouldn't call it in the sense of write stuff to a file and run his program as a
stand-alone program but it would do it all in memory, using Cython, which is C kind of Python
compiler. That allows you to make it so you can call C code directly from Python.
>>: This is probably a good project for people who are interested in that kind of ->> William Stein: Partly. Half of the project would be really good for people who kind of like C
programming or at least maybe not actually programming in C but at least have a sense of how C
programming works and want to learn more about Cython or something like that.
I think another half, though, will be deciding on running that code in some interesting ranges and
extending the data in your tables or replicating some of it. And that would involve someone more
like you who appreciates and understands what calculations might be worth doing.
And there might be even -- since it also works and is very efficient for, this just popped in my
head, but for Jacobians of curves rather than just elliptic curves. If you looked at the analog of
your problem but with the hyperelliptic curve instead of an elliptic curve, makes sense, doesn't it,
because the house interval is bigger but -- one could run a calculation up to 10 to the whatever,
but for genus-two curve and see whether or not there are any pairs like that. So running the code
and also trying to make it usable from Sage. And they can happen at the same time because we
can just get the code, compile it, and you can try it on the command line and see what you get as
well.
So that's -- I guess the tasks would be genus-one versus -- well, make code usable from Python.
Use code. And then regarding use code, replicate and extend data in Kate's paper, or talk, I
should say. Maybe try genus-two analog.
So that's the sort of thing I guess I have in mind. And this involves Cython. So okay then for
computing -- I should make a list of tasks here.
So I think the thing to do with this one would be to make a sage worksheet that just implements
this that is slow and just implements it, implements the algorithm. Because I bet somebody can
write some code to do this in a Sage worksheet in two pages or less that's dog slow. But it
works.
And check that you're getting reasonable answers out. And then make it really fast. Really,
really fast. That's always fun, because it will be 100 times faster than the first thing.
But getting the answers to be right can be challenging. Crackly. Not sure it's useful to have
some -- I mean, if you don't know anything about the theory you may have no expectations about
what the right answers are. We can check for elliptic curves, I guess. Make it really, really fast.
I guess those are the -- and get it included in Sage. Sage itself, which is what my talk will be
about. So there's some tasks for this one. And probably making a big table. Big table or
something. You could take some curves, compute the links make a big table. How are they
distributed? Maybe there's a conjecture there that Rachel hasn't thought of. Do you have any
conjectures about the ranks that you'll talk about in your talk that one could get data about?
>>: I would love to find a curve of P rank 0 and a number 1.
So we could run -- once there's some code, even with the slow code, once there's some code you
can start running it in some region and see whether anything like this is found and get the faster
code and make, run it and quickly redo what was already done and see what happens. And
either way if you find something or don't find something, it's going to give insight to a conjecture.
>>: I did genus four P equals P.
>> William Stein: Sorry.
>>: I would love that, too.
[laughter]
>> William Stein: Misspelled your name. How do you spell your name? Okay.
>>: Genus-four and P.
>> William Stein: P equals 3. Okay. Those are good concrete tasks. I'm going to save it
because I'm paranoid.
>>: I have a project that I'm interested getting feedback on.
>> William Stein: Do you want to come up here and explain it or explain it from there?
>>: I didn't know I was going to explain it.
>> William Stein: Until you realized ->>: They were like are you going to talk about that project and I was like ah ->> William Stein: You were talking to yourself.
>>: What was that?
>> William Stein: You're also named Jen. So here.
>>: Don't put it up. My notes. It's not ->> William Stein: This is for public consumption.
>>: Probably has some things that are wrong in it.
>>: [inaudible].
>> William Stein: Ah, that would be nice. You can twist them to get other ones. I see.
>>: David Cole [phonetic] also has tables.
>> William Stein: Okay.
>>: Oh, he does?
>>: Yeah, I haven't figured out how to read the table. But it's so much in Sage.
>> William Stein: Whoops. Okay. So are there any other projects that should be ->>: I have a question. In Sage, are cubic and sextic residues ->> William Stein: Has something to do with Hilbert symbols, probably not.
>>: Could certainly look --
>> William Stein: Feels like something that people do something quick using-- edit in PARI the
first question?
>>: No, I think we had to write something.
>> William Stein: People usually do. They just use the alternative formula. So I don't think so. I
don't know.
>>:. It's possible.
>>: Because the question that I had about the counting the number of residues with this certain
thing being in cubic, if it's not implemented in there anywhere, I certainly wouldn't mind [inaudible]
just because then it would be really easy to collect a bunch of data and look at the -- there might
be -- in the data there might be interesting conjectures about the counts.
>> William Stein: Even if it's implemented it might be small, which you can make it fast. Which is
important for the thing you're doing. Right, it has to be fast so you can get all this asymptotic
data.
>>: How do you choose left to right, write really fast ->> William Stein: I should always write really, really fast. Kate wants data. Okay. All right. So ->>: I have something that I'd like -- knowing that there's Sage and knowing that I have no idea.
>> William Stein: What is it?
>>: I like to be able to continue the card service of non-XML [inaudible] with the ideals with the
balance.
>> William Stein: Interesting.
>>: So ->> William Stein: In quadratic imaginary fields?
>>: Yes, MAGMA does it but it's wrong.
>> William Stein: Isn't there an exact sequence that relates the car group non-maximal order to
like OK mod COK star where it sees the conductor.
>>: You can also do it with the binary quadratic forms. So uses [inaudible] binary quadratic forms
which is a generator but doesn't do asymptotic fields.
>> William Stein: I'm reading a paper right now on Cly Bogens [phonetic] system, but we're
computing with exactly those somewhat as a group as kind of a central thing.
So there's some code in the Hedner dot PY file that does things related to this.
So I don't know. I've thought about that a lot lately. But, yeah, I have some thoughts about good
ways of doing this. I think the actual OK mod COK star representations potentially a very good
one to use because arithmetic is so faster and you can translate back and forth between any of
the different representations for these ideals. But that would be a good idea for a systematic like
Python class that does this, puts together all the different code.
Okay. I can make something. See, what would this be? Compute in nonmaximal orders of
quadratic of rings of integers. I'll write quadratic imaginary fields. So here's a nice ->>: Yes, specifically the ->> William Stein: Oh, yeah, I should say computing the class group. Computing -- you really
want to compute in it. You want to have elements, want to do arithmetic quickly. Do you have an
application?
>>: I'm just playing around with a sample.
>> William Stein: I like to compute in those because they give you -- they're equivalent to
working with the Gawa [phonetic] groups of ring class or ray class fields -- actually ring class
fields of quadratic imaginary fields. So that's pretty important for a lot of applications. Okay. So
what to do. So I guess make a list of what you want to be able to do. List Y MAGMA/PARI aren't
good enough, like how -- like you said, there are bugs. Bugs, issues, speed, et cetera. Write
really fast code to implement some of this. Okay. All right. Any other projects that people have
related to No. 3?
>>: Also curious if we can calculate the Grossencharacter.
>> William Stein: Okay. Where do I put that? Which Grossencharacter?
>>: Like I was using in my talk, so CM the Frobenius ->> William Stein: I wonder if that's related to your question. It probably is. Explicit calculation of
Grossencharacters.
>>: We had to do it ourselves in PARI.
>> William Stein: That would be a good thing you could explain what the algorithm is you
implemented in PARI to people. People could come up with a nice design that's user friendly and
documentable it and then implement it. I think that would be nice to have. I'm pretty sure if I type
gross and tab and Sage I won't get anything.
If you search -- in Sage often, the whole thing to do is to type search underscore source. I think it
does it in case sensitive search of everything. I guess I could do [inaudible]. It searches through
all the source code. Tells you if there's anything in the Sage source code. I'll come back to that
in a second. Because start-up the first time is annoying. Nothing. I think it's case sensitive, but
just in case. So you can see there's very likely nothing absolutely in the Sage library for
Grossencharacters.
So I think that's a great idea. Okay.
>>: Would it be in there, Sara take ->> William Stein: Sara take, it's possible. I have no idea. But I'm sure we'll get something for
tape Sara. I hope we get something. Sara [inaudible] algebraic topology. Sara is a very general
guy. So series reverse. Yeah. So that's it. So it's just an algebraic topology, and that's it. And
series reverse, in which series appears.
Now I'm going to put lists of people who are very interested in each project, okay. So obvious
people. Rachel. Okay. If you're interested in the project, just say your name. Ali, Kate. Okay?
>>: Interesting.
>> William Stein: That's a good question. Probably a lot of people are interested in a lot of them.
I find I'm interested in every single one. But let's just say -- okay, put your name if you're like
really, really interested in this project. Let's just say that you want to drop -- if you feel like you
see the project want to drop everything and work on it the next 10 hours, kind of interested.
>>: Work on the first thing for the next 10 hours.
>> William Stein: I see a lot of hands go up maybe for the first one. Maybe say your names
because. I'll be embarrassed to not know people's names.
>>: Ann.
>> William Stein: Now we're going to very easily learn everybody's name and their spellings.
>>: Annia.
>>: Sara.
>> William Stein: Sara. I don't know if I misspelled Sara.
>>: No, that's right.
>> William Stein: Marina. Okay. Good. Moving on. Drew Sutherland's small jack et cetera
extending Kate's data.
>>: I'm required to be interested. [laughter].
>> William Stein: I'm interested in this one. I'll put my name on this one.
>>: Lola.
>>: This is sort of several different projects, though. I'm not sure ->> William Stein: If there's one project in here that you're desperately interested in. You're in
there. Okay.
>>: E-R.
>> William Stein: Oh, totally wrong.
>>: That's a woman ->> William Stein: All right. Anyone else? All series of Jacobians. Guessing that the Jens, at
least one Jen. Is your name -- you're another Jen. Okay. Okay. Wait, so Jennifer B, Jennifer P,
Jennifer J. [laughter] okay. All right. Any other Jennifers? Anyone else interested very much in
computing L functions, L series?
>>: [inaudible].
>> William Stein: Okay. J cubed. This should be called J series. Okay. Computing in the
cross-group nonmax orders. I'll put myself again. Anyone else? Okay. I think that's all the
projects. Don't feel that you're restricted by having your name but I think it's useful having names
up there. Gives you a sense of these really ->>: Into the first one.
>> William Stein: Yeah.
>>: If you want to.
>> William Stein: Sure. I can be on all of them if I want to because I'm up here on the keyboard.
Okay. Good. So and also when people work on a project, it can be useful to put a link to
something they're working on here so it's easy to find.
Okay. So let's see, what time is it? Looks like we've successfully organized projects and we
have some specific, very concrete doable things and some very challenging things and so on.
Okay.
Download