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.