Live CEOing Ep 704: Language Design Review for Calculus & Algebra

Stephen Wolfram reviews new calculus and algebra features for Wolfram Language, including line and surface integrals, contour integrals with branch cuts, and finite field representations. The team debates notation for finite fields, discusses numerical fallbacks for integrals, and plans linear algebra support over finite fields.
Chapters
All right. Hi everyone. We are here for a Wolfram language Design review for 13.3 and our subject is calculus and algebra, so. Oh, this is exciting. All right. Long awaited. Right, Cool. Okay, let's take a look. Line integrate.
Actually, I think it's better to go to the page itself.
Okay, so not. So what will be the traditional. I don't even understand what any of this is. Yeah. Okay, hold on. I like these illustrations we're getting.
Roger and Tim, Beautiful work.
So two really different cases. The scalar line integral is already there in integrate, but you can't do the vector case because the way that that integral is defined is to integrate each component separately. And so you want to treat vectors differently.
Right. So okay, hold on. The first thing, if I just say I see if that curve is an XY space, I can just say perfectly. Well, I mean, for example, I could just say something like integrate, you know, X squared plus Y to the fourth XY over a circle, for example. Right. And that's just fine.
Yep.
The issue is that if I want to integrate a vector function over the surf over the circle, I mean, I hope that we're not sort of standing on our heads to avoid having to introduce something that will anyway have to introduce one day.
No, so the. I mean, integrate the vector there. Just use integrate on a vector and it will perfectly come up with a vector. So for instance, a centroid is an example of that where you really want the list ability. That's the correct definition.
I see. So you're saying if I say integrate.
X. Yeah, well, particularly uninteresting in this case because the centroid is in there.
Yeah, Right. But that makes perfect sense. Yeah. Okay. As opposed to you've got the tangent vector, you're going along the curve looking at the tangent.
Yes.
Right. Yeah.
And that's kind of basically projecting you onto the tangent. And so you see what component of your vector is in the tangent direction. So think about integrate. They usually call work integrals. Right. Where you integrate up kind of work along a path.
Well, you should go path articles.
That's another name. Yeah.
And okay, I understand what this is doing. You should mention path interles, even though path also means a different thing. That's an interesting can of worms.
Yeah.
The default orientation.
Yeah. This is really. It's in general, it means that you have another vector field defined on the region.
Yeah. Okay. By the way, is there an end version of this? Does there need to be there will.
Be in next in 14.
Yeah, it's there underneath the surface. You can call it, but we didn't expose it because we didn't know whether it's worth doing. Right now it's being used internally. If you say working position goes to something, it'll call N line integrate, basically.
Okay.
And N surface and contour integrate. So it's all possible to verify numerically and use N integrate, basically.
Okay, all right. Contour. I mean surface integrals.
Again, I think the page is probably the best to go to.
And where do we get volume integrals?
It's already there in integrate.
We have volume. Yeah.
I see.
So like in the case of line integrate, the scalar case is already there in integrate. Okay. And the same thing here.
Can I make a documentation suggestion? I think you should not document that first because I think it's confusing.
What is confusing?
To document the scalar case first. I think you should document the vector case first because that's why you'd use this function.
Yeah.
It's not even obvious you should document the scalar case.
Well, I tend to agree with you because it is a complication because it literally is like two different functions. But I think Devendra and so on would argue that. Oh, but that's what people call it. That's what they want.
Except people sometimes have. Many textbooks have different names for the scalar case and the vector case. So like a line integral is one case and the path integral is the other.
Which one is which perf is the scalar case. Usually.
Then just take the frigging scalar case out of the main documentation.
Okay.
Just have it say it works in the notes because people will assume, you know, they'll leave the braces off. It'll work, big deal. Because not. It's. It's perfectly consistent, right? No.
No, I don't think so.
Well, it is considered. It's just.
Well, there's no vector in general. There's no vector field that will reproduce that result. Right, right. It's not the same thing as just putting a brace around one component. Right. Because the length of the vector must match the ambient dimension.
Definitely.
So how would you represent it? You'd have to have something representing the unit tangent vector.
Yes.
What a mess. Right? Because.
Right, right. Because. So, Right. The scalar case is the integral of the scalar times the norm of the parameterized tangent, whereas the vector case is the integral of the dot product of the vector field with the parameterized tangent.
Take it out. I really. I would take it out. I think it's super confusing.
Okay, I know that. Yeah.
So in this case, you know, we need a Different vector field associated, you know, on the surface, which is a normal vector field. So it only works for hyper surfaces.
So you're talking about surface integrate.
Yeah, surface integrate now.
Right. Okay.
Okay, so the surface.
But then, then how do you define the normals to the surface?
Well, that's. Go, go, go.
The same deal as your direction defining here, basically.
Yes, Go down there.
Okay, question, question. Is it obvious that there shouldn't be some symbolic representation of the tangent vector? No, it's if I want to find the unit tangent vector. Okay, here's a question. I want to find the tangent vector at some place on, so I've got my, my line that's defined by some.
You know, but here's the thing. In the region framework, we do not have. The region framework does not support oriented regions.
Okay.
So that's not even necessarily preserved in the transformations done by the region framework. And furthermore, if you need to define orientation in general for a K dimensional thing in N dimensional space, what you need to do is define an oriented vector space at each point, basically the tangent space. Okay, but it's not clear where we need it. I mean this is like Gibson vector calculus. It's like a little simpler.
Okay, but, but knowing how these things go, eventually we're going to need to define tangent spaces.
Maybe. But then, then there should be a use case that's strong enough.
No, no, I understand. I'm just trying to do defensive design, so.
No, no, I, I, I've tried that too. You know, I was just. My, my super defensive mode is to only allow parametric regions. It's uncontroversial what it means, but I just think that the usability suffers.
Yeah, right, right. But we want to have a default.
So not all regions can be used at this time.
And I hope the messages are reasonable. So this region does not have a default orientation Use what it does.
We need to go and check that.
I'll check that.
Okay. But my point is that at some point in the future there's probably going to be a symbolic representation of the tangent space.
Yeah. So I think that they're, they're.
Which is possibly. It, it's, Sorry, it's just like your X, Y is an element of. You can have XY as an. It's not xy, but it's something else. As an element of the tangent space.
Maybe. But there's also sort of a use case of where you basically have some kind of vector field, matrix field, tensor field associated to the region.
Yep.
Think about sort of different materials densities, you know, all kinds of things.
Right, Yep.
But we don't have that at this point. And I don't think this is really like a tail. Right. This point of a dog, that part.
The, the part we're just describing about explicit tangent. Yeah, Vector fields. Yeah, Right, I agree. I mean, this is important. What, what you're defining here is important because people have had to do this sort of by hand in the past.
Yes. No, I think that this has a kind of clear use case, but it's very limited. What's needed. So when you're in a hypersurface, you can define the tangent space by a normal. There are only two normals. And so that defines the orientation of the tangent space, assuming across convention.
Wait a second, wait a second. You're talking about in a two dimensional.
Surface or any N, N minus one dimensional surface in nd.
There is a. I see. Like the hypersurfaces of like, I'm sorry to be specific, but the space, like hypersurfaces in general relativity are three dimensional in three plus one dimensional space. Right, right. Okay. So your point is that the, the wedge product or whatever gives you an ordinary vector like thing if you have an n minus one dimensional or D minus one dimensional hypersurface.
Yes.
Okay. Yeah. I mean, the cases of most interest are probably in, in two dimensional surfaces in three dimensional space and three dimensional surfaces in three plus one dimensional space.
Yeah. For good measure, we support, you know, curves in 2D which are perfectly good hyper surfaces.
Right. No, it's confusing to me. When you said hypersurface. You mean maximal dimension. I mean maximal. I don't know what they're called. I don't know what that, what is that?
They're called hyper surfaces. If they're dimension n minus one in.
N, they're called hyper surfaces. And other. They call hypersurfaces of third dimension N minus 2 as well. I don't know if there's a special name for the case where there are one less hypersurfaces, I think.
Well, I, I would say that any reasonably modern treatment of differential geometry would say that, or geometry would say that a HyperSurface is N minus 1 dimensions and embedded in n dimensions.
Wow. Fascinating. Really? Okay.
Yes, I kind of agree.
Funky. Okay, well, I learned a new nomenclature feature. Okay. All right, so here. So I mean, the surface normals obviously defined for purposes of lighting and things like that in other cases, Right?
Yes.
And whatever we're doing here is consistent with the conventions we're using for defining normals for light. I mean, don't polygons get to have a special. A separate normal specified for purposes of lighting.
Yes.
And you're supporting that here? I hope not.
Now we could. So one use one extremely useful case is that you have a bounded space and you think of the normal pointing outward from it and if you want the opposite orientation, you put a minus sign for your expression.
Yeah. For the thing you're integrating.
Right.
For the flux.
Yes, yes, yes, exactly. They're typically called flux integrals. Right.
Which by the way, you should. Oh, you'd say that.
Of course.
And this plays nice with gradients of. Of scalar fields and things like that for making. Although no, I'm. That's a different thing. Okay, never mind. I'm thinking about. Okay, what do we need to do talk about here? I mean, so, so obviously.
So I think. I think we should still make them experimental. Steven.
Yeah, I agree.
Because I think that this region support Will. You know, will. Will. This orientation that we define here. I. I just. I'm not super confident in it.
What happens if you have a non orientable surface? What happens if you're doing this on a Klein bottle?
I mean it's fine if it's a parametric surface. This. This surface integral is perfectly well defined.
On the coordinate charts or something.
Yeah. Because it has a perfectly fine normal.
I see, but because you can't make a single chart. No.
Right. Well you can't do that and stay oriented, consistently oriented.
Right.
But the integral is perfectly fine.
Not a problem. Because it has coordinate system for that. Right, Cool. Lovely functions. Let's go on to contour integrate.
And I would do the same there. I would go to the actual page.
These are nice functions. I mean how strong are they in terms of algorithms separate. How much are they bureaucracy and how much are they actually new algorithms?
Yeah. So I think we also try all kinds of tricks. Well, content degree is different but for the other ones we also try to. Let's apply the divergence theorem to see if that helps. We would try. So there's a lot of layering of methods for all three and they've been tested against the Stan textbooks, Stack exchange, etc. So in that sense we're putting out hundreds of.
Yeah, I mean I think it's good, but I'm not as confident yet, you know, but. But I haven't stressed in myself enough.
And we try and make contact with the cluster theorems of vector analysis, so.
Right. The good news, Stephen, is that they've been exposed to a lot of textbook material and math. Stack exchange, not Mathematica Stack exchange.
Yeah.
Yeah, that's got many more questions coming in. Math exchange.
So it's. In that sense, it's kind of real world. But I, I.
I assume that the wolframalpha folk will want to use this.
Yes, so.
So driven by them.
It was. Yeah. Requested by them, basically.
Okay, good. Looks lovely. All right, let's talk about contour.
Thank you.
How do you define these contours? Oh, God. You've got named contours. Do we have, like, the brumage contour and things?
We can expand on this a lot going forward. If there's, you know, some, Some that should be there. Brown, which might be one of those. But there are more. This kind of a pretty long list, potentially.
How do you visualize one of these things?
They are there in the examples. I mean, so, I mean, so they're not too difficult to visualize. But I mean, they're, they cannot be thought of as infinitesimal. Basically. Those holes and all those keyholes and all that. So under name, contours, Special topic named contours.
I'm not sure they visualize that easily.
Yeah, it's not, I would say. Yeah, I agree. We had to just iconize.
This is where they're getting visualized. Yeah. Okay. That's not great. There's that, yeah.
I'm guessing that's an epilogue there, right?
Yeah.
And that's not. That's a hacker. It's a hack. Elated, you know, way of visualizing. I'm talking about you've got contour integrate, and there should be a way of putting in complex plot. Something that says, you know, I don't know what, you know, contour. I don't know what it is. Some option that basically says draw contours here. Just like you can say, draw grid lines on a plot.
I think you probably, I think you'd probably want to call it like complex contour or something like that.
Right. Because. Sure, sure. Right. But.
I mean. Okay, so, but they're kind of like a named special function. If you like the name special contour. Take parameters and whatnot.
Right. If we have a style for complex contours, which we should. And it's not that one there, and it shouldn't be. I mean, that's pretty ugly what's happening here.
Yeah.
And you know what I would have thought is really, you should think about it like grid lines. It's a way of making essentially canonical markings in a complex plot. And the fact that it has named.
Things, I think it's sort of complex plot doesn't plot curves at all. We don't have a complex contour plot, but we could probably have one.
Don'T we? We. We do have a. Don't we have a complex contour plot that we just started using for visualization things?
Do we?
Well, be that as it may, my argument is, in a complex plot, a very common thing to want to do is just visualize, you know, a contour or two. And I think, you know, they should be elegantly visualized because they are. They are riding on top of another, you know, all sorts of options for the base complex plot. Just like grid lines right on top of things.
I kind of. I think that that doesn't make a lot of sense for this function. I think for its own. To combine two plots would make sense. You know, one that's for curves and one that's for, you know.
All right, okay.
But then the question is still a packaging problem, Stephen, which I'm thinking about.
Sort of, you know, I think it will work, Roger. I don't think it'll work. And I'll tell you why. Because I think these little wiggle woggles around here, okay, it depends on many things. This is really diagrammatic, right, because that actually is a microscopic deviation there.
Yes.
Right. So this is really diagrammatic. This is not a plot, a curve in the complex plane. This is a. Diagrammatically. It's like an axis annotation.
Yeah, but it's. But it really has complex plot, has nothing to do with curves in its plot particularly.
I know, but what I'm saying is don't think of this as a curve. Think about it as a marking, like a grid line that indicates a region of the plot. Because I think I. I just don't think. I think it's diagrammatic. Not, you know, I mean, yes, you could imagine a contour that was carefully woven, but that's not what people are going to do typically. They're going to want a named contour that is just one of the standard semicircles avoiding poles, things like this.
Yes, but that's what I'm thinking that we could have sort of in such a, you know, thing that actually plots curves because you don't necessarily want the function the complex plot is for. It's always colors. That's the whole.
Okay, so here's another analogy. Okay. Like the disembodied axis functionality. This is kind of a bit like that throw a disembodied, you know.
Yes. You're thinking of it like a new primitive type thing.
Yeah.
But it's in. It's very expensive for us to add new primitives.
I know.
You know, and most people really don't care.
I mean, I think it should be an option to complex plot because I think that's where it's always going to get used. Hello. Oh, whoops.
That seems like such incredibly hackery.
Okay, well, fine. I mean that the. I'm worried that if you just have it be a separate function.
No, I think it's interesting to plot curves in a complex plane, irrespective. Okay.
No, I agree with you.
You know, and so I, you know, think that that's valuable, irrespective. And you don't always want all this complex plot background stuff. Often you don't care one bit. I mean, it's interesting that we can now do it. It's insightful and everything, but traditionally people never did it because they only could do the curves.
I understand.
I think we need to think some more. But I agree with you, we need an easier way. We need an easy way to visualize those.
Right. We seem to have disconnected from our live stream audience, but anyway, we can. These are also rather ugly. If you've got. Can we get a little bit of graphic design on this? On these black? Yeah.
I mean, right now it's using our graphics primitive and black.
Well, I think given that we'll. I mean, I don't know, maybe. Maybe Tim can do better, but. Right. Given that these things. Right. Anytime you have a zero or a pole, you're going to use the entire rainbow in the background. I don't know that black is in fact such a bad choice.
Maybe it's slightly grayed, I don't know.
Okay, so I know that I will try and do that.
Okay, but we need to think. I mean, I really want to come up with a better scheme. This is like something that expands it into graphics, you know, or something. But it's just.
What happens. This is a physics moment. I mean, in, in. Usually you have, you know, P squared minus I epsilon to specify in the function itself to specify the routing around a pole.
Yes.
We have a mechanism like that.
In a way, that's what it's doing. The those happen or they're kind of taking the epsilon into account and then setting them to zero. So you're kind of getting rid of the singularity, if that's what you mean. I mean you're going around it, but you're not hitting the infinity.
Specifying sort of at each. So are you specifying at each point whether you're going above or below the singularity? I mean.
Yes. Okay, so if you read the specification in there.
I say included and excluded points.
Yes, exactly. Either go above or below.
I think it's mildly unfortunate that there's no way to specify that in the function.
In the function.
Right. In physics, the common convention is that the function is 1 over p squared minus I epsilon. And then you're simply integrating on the real line. But you could do that.
Which, take it. Right. Which takes you one above and one below. Right. And you, you can use a minus sign to flip them and then you'll add and subtract such combinations to. When you want, you know, the purely forward or purely backward propagator as, as we say in the physics land. So I mean, it's a little, I mean, right, you'd need a special. Right. You'd need a special variable, a way to specify which variable is epsilon, and then some canonical way to decompose the input. I'm not sure that's actually going to be more useful and. Or easier in practice.
Yeah, I think, but I just think it's worth looking at that physics convention because. I mean, these things where it's sort of a, You know, I'm not thrilled with these things where kind of like it almost feels like they should turn into associations and then it's, you know, more complicated stuff. Let's see. And I, you know, for something like an inverse Laplace transform, don't you need the Bromwich contour thing, which goes.
Yes, but that's easy because you can just use a vertical line for that infinite line. We could document that separately, but we have examples where we just call. To be honest with you, sometimes we just find the inverse Laplace transform so optimized for those that we might even call it internally. Because if you got exactly right.
I got it, I got it.
Yeah. So you got a rational function you never get anywhere with, you know, kind of a non built in method.
Right.
This upper semicircle, how far does it go? Does it go to infinity in both directions?
Yes, essentially. Yes, yes. Says capital R goes to infinite and epsilon goes to zero kind of thing.
But. So why are these pictures showing? This is why I'm telling you. You have to have something which is just kind of a marker, like an axis, because this is really going to infinity. You can't actually draw it. See what I'm saying? Okay, okay. But you see my point that this really isn't going to infinity. Yeah, it's really a decoration.
It's. It is a decoration.
Right. Which is why I think it should be part of the complex plot story, not part of a separate thing. Because if it's part of a separate thing, you have to specify, you know, if you change the range of the. Of the complex plot, you're going to, you know, mess up the decoration.
I really think that we need to think some more about that, but I. I kind of.
Yeah, fine.
I mean, I think we can plot to infinity for complex plot, but how the heck you do, you know, Epilogue on complex plot with infinities.
You want a good plot to infinity because it's the upper half circle.
And maybe you'd want it to become dashed at some point or something. Right. To suggest that it's. I know.
I think we have to. I think we have to explore.
Yeah, I don't think we're going to solve it right now. I agree with Roger. We're not going to instantaneously solve this problem.
Okay, fair enough. All right, I'm arguing for this being a decoration, but I might be wrong. Okay, let's.
I think we have to come back to that.
Okay, fine. Okay. So we can trivially verify. Yes. Here we go. Cool.
That's the first example.
Yes. And. Yeah, very nice.
Have you gone to all lengths to test all two or three full textbooks? Match exchange.
For example, if I do the following. If I say this thing. If I just do one over Z.
You might need to define reg. That's.
I'm going to. Why do you do it like this? Why don't you just say Z element of regular polygon? You're not using reg a second time. Okay, I noted that, but please don't do that. I mean, it's just.
Well, he might be using it in the. In the icon, which is a different problem.
We need to. I mean, I mean, look, so by all means, tell us when you find something. But I haven't worked through the examples. Just the examples. Need some.
It just crashed. Oh, great. Crashed.
What version?
I don't think too much.
That's pretty fresh. As fresh as I have.
I crashed.
I tried. Yes.
Well, the. The danger of using the prototype build.
Well, also it's my. My perfect, you know, divining rod, so to speak.
Exactly.
I bet if I try it with a pentagon, it won't crash. It crashed.
Oh, I got it. Crashed.
Yeah. Okay. All right, fine. Branch cuts. What on earth do we do with branch cuts?
Well, actually, the. See, if you think about the contra integral is just a real integral in some sense. So you can always, in the end use integrate. I mean, because our branch cuts are set. They are defined Predefined.
I see.
I mean, the thing is, we think of the contraindicle as being the complex, but really it's just a. Like a Riemann stages of water integral. So in the worst case we just do that. But that seems to help. Oh yeah.
Also, contours don't need to be closed at all. A contour integral is perfectly well defined for an open contour.
Yep.
It's also perfectly well defined for a non meromorphic function.
Yes. Essential singularities and all kind of things.
You just, just.
No.
Residue theorem.
Yes, no, I understand, I understand.
So, and also underneath it will use the N counter integrate. So we have kind of some consistency between integrate and integrate when you have inexact input. So we can check things.
Cool. Very nice. So does. I'm sorry, does it have. Is it just using Cauchy's theorem, you know, if it notices like in this case, does it just check to see whether the pole is inside the region?
Yes, and it'll use residue sum, which we introduced some time ago, and that will use residue. So basically we have built up from residue to residue sum, residue sum to contour integrate. So just layer on layer building up. And the orientation is provided by the Cauchy theorem, because that only holds if your count is oriented correctly. So in a way we have escaped. In that case, we don't need orientation at all.
What?
Because your residue theorem only works if you. You're doing some of residues. Right. But sure, that will only work if the contour integration is kind of correct. So we almost, by default we get the correct orientation for the metamorphic case.
Wait a minute, so you're saying every contour is counterclockwise in some sense?
Well, yes, that's correct.
I think that. No, I know there's things you haven't thought through here. There are complicated poly. You can define polygons which have very different orientation rules than cautious rules for what's inside and what's not.
What happens with a bow tie?
Well, I mean, it should be. Well, you. We. If you. If you just give a line that is a bow tie, it will do the right. Should do the right thing.
Okay. By the way, these. These lines don't look very counterclockwise up at the top here.
No, those are curves which has. You see that? It describes what the default orientation is depending on parameterization.
Oh, I see.
This is the part I'm less. You know, that's why I'm a bit.
Right. So, okay, so a contour integral usually is around a contour, but for a Region you are assuming it's around the boundary of the region or boundaries, plural, as a convenience.
Because it's good for user. Good for us to allow that because we don't have as many.
Roger is concerned about whether that's consistent.
Yes, I agree with him totally. Absolutely.
Okay, fine. So you guys will look at it. But these cases, these named cases are clearly okay. Yes. Put disks in different places and things like that.
Yeah. And if you want the opposite orientation, you use a minus sign for your integrand.
Yeah, if you want it for all of them. But what if you want some it rotating around?
Well, you can always touch. Okay, so you can always give a bunch of curves. Right. There's always a workaround. It might not be as convenient as you want it, but there is always the counterclockwise.
How is the clockwise circle specified?
Well, we don't change the orientation of the curve. If you want to do integrate clockwise around a circle, you put a minus sign around your function.
No, I understand that. But if you have some positively rotating, you know, some circles that you want to rotate, you know, some polls, you want to go around positively, some you want to go around negatively. I don't know whether you ever want to do that. Yeah, I've never wanted to do that. That I can remember.
We have thought of a direction option, but just looks too risky. And I totally agree, Roger, that it's not worth going to right now. What you're covered is kind of the ground enough. We have broken it through the next lay of complex analysis you like.
You know, that's all fine.
I also looking forward to sort of hear back from people. I think that this makes them. I think that they address a lot of use cases and I'm sure users are going to tell us we like this too, and we would like to hear from them.
Yeah, all right, fine. Achieving Oberhettinger.
Yes. So Oberhettinger was a junior kid on the Bateman projects. Well, kid, I mean, PhD and. But he.
Oberhattinger and Sony. That was the people who did the. I remember that.
Right, right. But Oberhettinger went on to spend the rest of his life on integral transforms.
Okay, okay, fine.
So he was, you know, there was only two volumes, some integral transforms in the Bateman project. So he wanted to do it right.
Cool. I don't really know a characterization of what's different between doing integrals in general and doing integral transforms. As in, are there radically different methods for doing integral transforms as compared to generic integrals?
One thing we use quite a lot over years to verify particularly is things like series, coefficient and sum. So you try and work out the series coefficient for something and then use. You try and find the integral of that and then sum it. So that seems to be one technique. So I mean the techniques are much deeper because it's more special class and overwriting is just a very difficult collection. So it took some time to check things. So we had just been a very final check and we have everything out for the release. But yeah.
Okay. Did we fix this horrifying thing about these stupid things where God destroys me crazy this.
Oh, you now have Itai here. Why don't you guys talk me amongst each other?
So, I mean, I, I believe we came up with a design about a year ago and we, we need to find somebody to actually implement said design. Maybe, maybe when Carlo is done with the, with the audio gui, he, he could do this or I think.
No, no, no.
Okay, let's figure out how to get it done. We really need to get it done. Okay. Whatever that did, by the way, was incredibly weird of what did.
What do?
Oh, it had some crazy thing that said formatting. I was, I. I just copied that and it went into a conniption for a while.
Hmm.
Could be prototype builds.
Yeah, it could be. Okay, but. So what you've done here is dramatically simplified. I see Generalized Fibonacci like things.
No, so the general class is constant coefficient single equations or constant coefficient systems of equations within home. You know, in the inhomogeneous case in particular is what has huge improvement. And that sad to say, but it wouldn't surprise me if that's 90% of what people use.
Right. Okay, nice. Okay, should we move on to algebra? Okay. Very nice work on calculus there.
Thank you.
Okay, Algebra binite fields long awaited. Okay, look at the guide page. Let's just see what we've got here.
I would go to the finite field reference page. You can go to the guide page too. But the finite field reference page is one I feel I've worked through a lot.
Wow.
I haven't seen this iteration of the page yet. That looks really pretty.
What happened there?
Oh, crap.
Oh, no, no, nothing. No nothing. That's just future. The futurized stuff is literally future. So in the next release finite that the general prime power fields will be supported in the linear algebra and the solvers as well. Right now it's supported in the polynomial functions beyond arithmetic.
I assume finite field just of P gives gfp.
Adam, do you have to give one or just.
No, you have to give one. Yeah, we can, we can, we can make that.
Please support the field of P. Just work, because that's going to be. GF2 is really common.
Okay.
All right, let's see how this is supposed to work. We've had designs for this at different times over the last 35 years. That's a bit funky, if I might say so.
There.
That is. What.
Oh, the appearance of these things.
Okay.
Please don't make There have to be a one there. That's really goofy. Sorry. I think it would also be nice, isn't it? I mean, don't. Doesn't one always say gf such and such, or does one not.
Both those standards exist, Stephen, and I think people have moved on to call them finite fields in general more often than Galois fields.
All right, But I mean, if one was writing it as a field, one would say what? One would say F sub 5, or one would say GF5 here, F sub 5. Then why isn't that what this shows, F sub 5. Rather than this whole bloggle thing here, why don't we have something where. Where fundamentally, it looks more like the math notation.
I see.
Well, I mean, it. Right. I mean, in, in a typical case, I suppose this isn't necessarily a blocker, but. Right. In a typical case.
Right.
The characteristic is not five. It's, you know, something with 500,000 digits or some such, or at least 500 digits. And, you know, it seems a bit more natural to start abbreviate, abbreviating such things in a summary box than in. In something that just looks like F of subscript.
Well, fair enough, I, I agree, but I don't. I think what, what I'm suggesting is that what this looks like is maybe finite field. And then what's. What appears here is F Superscript 5 or F sub 5 or whatever it is. And then it can be F sub 5, dot, dot, dot, whatever. Just so visually you see finite field. Okay, great. You know, roughly what it is.
Oh, that's the F you're talking about. Oh, yeah, yeah, absolutely. That's an easy fix.
Well, I'm, I'm just saying. And then you could leave off all this stuff here and you could put that under the plus sign. Just say finite field plus. And then this just.
Oh, so then the whole thing is a little smaller.
Yeah.
Interesting.
Yeah. Okay.
Don't you think it. That's. I mean, that's, that's just changing the graphic will adapt to its object.
Yeah. I don't think we have any precedent for just the icon with no I know we don't.
I'm just sorry about that. But I mean, I think that's. I think it would be a good thing to do here because there is a standard math notation which you might as well use.
Ok, I can, I'll. Well, I will, I will play around with it. I won't, I won't promise that this is instantly implementable.
Okay, fine. Okay. But obviously you should light it if there are lots of digits in the five, so to speak.
Right. And I don't know if there are any examples here, but, you know, I certainly tested it with, you know, hundreds of digits and whatnot. So.
Yeah, there are some on the finite field page. There are some examples with long primes.
No, come on, come on, please, please. Let's have a proper message here. Yeah, that's what's wrong with strange.
No, it's a strange one. You should, should say it's not a primer, I guess. Yeah, that must be a typo somewhere. Just looks like a wrong message.
And what's that I doing there? Is that. That I.
That that's the link to the. To the.
No, I know, I know, I know. But why is it blue?
Because that's the color you picked after looking at multiple options.
Okay, okay, fine. I believe you, by the way. I just want to remind you that because we're now feeding error messages back to LLMs, they matter more.
And there's. Yeah, there's clearly some build issue there because of the pinking there, so.
Right. I'm just, I'm just commenting that the error messages, the text of error messages is being fed back to LLMs when evaluation fails. Right. So for IT to know that it's not a prime is very useful to it. Not only to the humans, but to the, to the AIs as well. Okay. So anyway, this is. I don't know, it's 501A prime. I have no idea.
Just do next prime of 500 or prime of 500.
Okay, great. All right, there we go. Okay, so now I'm saying this number is the fifth element of that. Right, Right. And I don't understand when you go naive question. If I do the. This field here. Okay, super naive question. Oh, look at that. I mean, you, you're doing exactly this. 503. I don't even know what that. What, what would that. How would that be notated in the F thing? How do you notate? I mean, when it's GF, it's GF503 cubed. Right, but what would it be F.
Sub, you know, F sub P to the power D. It's usually. That's why.
Okay, okay, fine. So it looks just like this. Okay. Yeah, I think. Okay, question. How do you number the elements? Which is the fifth element, so to speak.
And so. So these are digits in a system.
In.
In a system mod P. So.
Or in.
In the base p.
Well, right. There are two possible numberings because there's the polynomial and exponential.
So if you look here, 0 and 1 are special. And then the enumeration is given below for the two representations.
Well, that's a new thing. I mean, I do think structuring these, these detail sections is a reasonable idea. Yeah, but I think you need subsections here.
Yeah, I was trying to avoid that.
Because we don't have it. Yeah, I know, but I think we're gonna have to have it. So. So you're telling me. Okay, but for gfp, these are both equivalent and they just number the integers, correct?
Yes.
Okay, but when it's a prime power field, then these are two different representations.
Oh, no, actually there are different representations for prime fields too.
Why? How? I mean, so. But that's the obvious canonical representation. Go ahead.
So the first one is the natural numerical representation. The polynomial and the exponential would be exponents of a primitive element or exponents of a primitive element minus one.
Actually, to understand if the primitive element is just, you know, exponentials of a prone development exponential.
So the primitive element modulo 5 would be like 2, and these are powers of 2 minus 1.
Okay, so if I was just doing this, and by the way, I mean, in, in, you know, we have all these cases like, I don't know, shift register sequences or something, where we want to have things. Well, I don't know, that may not be a good example, but. But how do I get this and unpack it? What happens if I say normal of that? No, what.
What do you mean unpack it?
Well, I want the integer out. I want the. At least for the case of gfp, I want to be able to get the integer out.
So for, for the gfp, you. You just say that or information of that index or that and the property index.
Yeah.
Right.
Yeah.
Okay, I know the finite fields have sub values. What about the finite field elements? Do they have string sub values?
Yeah, so.
So the finite field elements have things sub.
Because they make elements that way.
Because they make elements. Yeah.
So how do I find the characteristic?
Say characteristic and you will get characteristic property information or. Oh, for the field. For the field you have to have information Field comma characteristic.
Okay, but if I just say. Is that is the form that I think it's in. Yeah, it is. It is. This is just an appearance of this. Right, so if I say input form percent one.
Oh, that's what it is.
Because it computed a. It's computed an irreducible polynomial for you.
Okay, okay, so now if I take this. Thing here and with some precedence. Okay, so if I, If I wanted to know, what is it? The multiplicative order. What do we call that? Multiplicative order.
Multiplicative order.
That's cool. Oh, no, wait a minute. What did it just do? I should be able to say, what's the multiplicative order of that element in that finite field? Is that not correct?
Yeah, it knows the finite field, so you don't have to give the finite field find filters inside the element.
I understand, but. So it shouldn't be giving that caret either.
Right, well, until. Right, until we add a single argument usage to the ref page and the futureize it. Right, that. That's where that carrot is coming.
I know, I know, I know, I know, I know. I'm just saying we should eat the carrot, so to speak, or whatever one does. Yes, okay, but I like the fact that it works for multiplicative order here. So what other kinds of functions work on this? So I assume I can have these as coefficients in a. So if I say, you know, factor. That's very cool. Let's talk about the appearance of this thing and that rather ugly plus sign.
Okay, well, have you tried. First you should try clicking on the plus sign and see why it's there.
No, I think that's magnificent. But I mean.
Okay. Oh, it's. The specific appearance of the plus sign is. Yeah, well, I just use the plus. Same plus sign that we use in summary boxes. Now, if, if, if design has some other plus sign to me, I'm. I'm happy to use that.
So now those angle brackets there.
They'Re not.
Right.
They're not really there.
Yeah. I wonder if they should be gray.
Probably.
Yes.
I mean, I. As an implementation matter, it's probably better to just add some opacity, right? So that. Yeah, okay, fine, if you change font color.
But yeah, right. Okay. Now in terms of this, why are you using angle brackets? Is that a standard notation for finite field elements?
I couldn't find a really standard notation. And so people do sometimes use angle brackets in. When discussing finite fields, but nothing that looks specifically like this. But this seemed.
Maybe we need a different.
I think that there's A little bit different conventions. Like often you might just use some kind of symbol like alpha that I used in the intro there in the finite field page.
Right.
And then the subscript is like, which one of them? So you can tell them apart that they're two different.
That kind of silly because the alpha is kind of a waste.
It absolutely is a waste. I'm just saying that that's. That's kind of a convention. And I think that I agree with you. We don't want that here. So that's. I'm not advocating that particularly.
Yeah, Let me think. I wonder what. So people either use just a number.
I mean, you kind of want the number, but you want to know it's not like a number.
I know. Well, what could we do here? That kind of is a. Because I mean, we, we don't have to have. You know, we could. What kind of decoration could we consider? Because I mean. Okay, possibility. Okay, let me try this. Is that a possibility?
And then with a subscript outside the frame or inside the frame or thinking.
Okay, so hold on. I admit that that's. Right. Superscript. No, I just need subscript.
Well, you'll need SuperScript if you want 503, but yes.
Okay, here's my suggestion. Here's my suggestion. We should really get somebody from design here. This isn't quite right, but something like this with the plus sign integrated in here. Actually, I would put the plus sign on the right. Right of that.
No, you want it on the left because. So that if you then want to close it, you don't need to move the mouse.
Okay.
I tried both positions and I realized my mistake.
Yeah, that's a classic UX mistake. That's not quite right. But.
I mean, maybe it's. Maybe it's just me, but the angle brackets feel very mathy to me and this doesn't feel very mathy. And so I have to say, this doesn't strike me like the direction. The correct direction. I don't know how other people feel.
Where do I put this here? Where do I put this? Anybody?
Well, I mean, if you want to put it in the LCC folder, you can find it.
Okay.
Okay.
I agree that it isn't. Okay, Okay. I just don't like all the decorativeness. Okay, so here, let's. Let's try taking this thing here. Is any way I can replace these things by a lighter gray angle bracket?
Maybe I'll try to create something quickly and send it to you.
Okay. I mean, maybe. Is there an angle bracket? Yeah, I mean, I Can do that.
Okay.
Okay. So in this expression, let's say. I mean, I'll just make one of these, you know, angle bracket 1, 1 8. Plus. Anybody know how to turn this into. Anybody know how to turn this into something which has. Need subscripts. Yeah, I want to make the actual angle bracket itself. Yeah, I'm sure if I say style this thing black. And style this thing. Oh, there we go. Put second. Okay.
Yeah, that font size, I can't really see any color difference, but.
No. Yes, you can. You can because.
Well, I. I can't see it on my screen.
You may look at the wrong thing. You're looking at the wrong thing. It's the second. It's the last.
Oh, it's the second one. Yeah. Okay.
This looks a lot better.
Okay. I mean, that's super easy to implement. And. And Right. So you use gray level of 0.7. That's a pretty. That's a pretty common level we use. I mean.
Okay, but. But then. And then for this subscript.
Mm.
I think you need to integrate the plus sign into this with some kind of gray background for the whole thing or something can get somebody from design here. Otherwise we can't. We see if we can find maybe Jeremy again. I'll grab him. Okay, we'll come back to this. Okay. P is the field characteristic. Oh, it supports integers. Half integer. The half integer.
So some elements have square roots and some elements have. And all elements have piece roots. But other roots are hard to compute.
Okay, so this one here. Are you saying it's a. No, no, no, no.
It's not.
The power. The power of the element. So. So take the element.
Okay. Okay, so that. That's the square root of that or whatever Pth root that will be.
So five or three.
Really? The five of these roots of five is five.
Oh, because it's. Try some larger number that's not an integer in the field.
In which field?
Oh, the five. So try some index larger than 503. Index, index. Not the prime.
Here.
Just tell me know the next one. Next one of. Yeah, make this a large number. 1, 2, 3, 4, something.
And may you use 503. Change that 1/3 back to 1 over 503.
Yeah.
So now it's different.
Well, I don't understand why this didn't just reduce it anyway. Because that number is going to wrap around in the finite fields. It. Yeah, so. So why doesn't that reduce right now?
Well, I don't think. I don't think that's big enough. Right. Because it needs to be 503 cubed. What's five? How does that number compare with 503 cubed?
Okay, that reduces. Yes, okay, I get. Okay. By the way, we do need to worry about how this looks relative to base form.
Right. And one of the reasons we. I mean, I did have an earlier prototype with just a subscript, and everybody's first reaction was, well, that looks just like base form and so angle brackets. Still mathy, but clearly not base form.
Comment from Quantum on our live stream that saying in university sometimes had a bar above the numbers that a convention. You guys have seen. Three, but maybe it will look good. I, I do really think we should look some more for this. I, I don't. I just. It's not something I would know because I, you know, it's. One of the ugly things about finite fields is what you call the elements and you usually hope you don't have to name them.
Right. Yes. People often start out with let, let alpha be an element of blah and do everything in terms of alpha. So they just avoid D issue. But we can't do that, right?
Jeremy, we are working on finite fields, numbers, mod something or other, etc. And right now we have this rather ugly creature. You with us? Yeah, I am. Oops. You're very, very, very faint. Oh, there we go. Yeah. Okay, so we're planning to. At least. We don't know whether the angle brackets are the right notation.
What is this?
It's a number in a finite field. So it's a number like clock arithmetic, like mod 12.
In this particular case, mod 503 to the third power.
Okay, And why is that? Plus. Oh, boy. So it has a nested. Okay. All right. So what we've been proposing down here is just to gray down the brackets. Although, let me just. Well, now let's put the subscript in there.
Are they likely to be the same.
Base in a given equation?
Yes.
Okay. They all have to be the same base. Okay. Is that a true statement, guys? That they'd never be not in the same base.
If it's supposed to be useful?
In fact, I'm not even sure if we support the same base but different representations.
But we convert them automatically if you try to do something with it.
Okay.
I got sorting wrong here, but that's okay. Now the question is, is that enough? I mean, that. That looks a lot better than, you know, we can go slightly. Still looking reasonable. The black is not looking so reasonable. Now this here we. Oops. Oh, style. That looks kind of terrible. Yeah. And we've also Got to get that plus sign in there somehow. Absolutely invisible. Why is it so invisible? Maybe because of something. Well, the plus sign could be bigger and that whole thing could be clickable. Right?
I mean, I rather not do that because then you can't access any of the pieces in there if you. If right. If you want to just copy out the base.
But it is very redundant that we're having to repeat. I mean, I think this looks really ugly with all the pluses there. And I'm. I'm worried that it's. It suggests addition, you know. You know, if we had the whole thing be clickable, then. Then it's complaint about moving your mouse. If you click it twice, wouldn't be an issue anymore.
That's true.
What about the double chevron? That's the opener.
Cell opener.
Inline cell opener. Where would you put it? It'd be at the end. That'd be fine. I mean, a small one of those. Be a fight. Just a shame that these are so rep. Yeah. I mean. Okay, is there any other notation and any other kind of wrapping if we're going to wrap these numbers in something? This is deemed not mathy enough. So let's just see. There's no weird thing with these. For example. Let's look at ours. Boy, what's going on with pallets in this prototype build? Just crazy.
By the way, jumping back to the chevron idea, I think it would be better to put the chevron on the left and make it a down chevron like we do with code assist.
Okay. Okay, let's take a look at our bracket choices here. Where are our brackets?
They're gonna. Yeah, look, there they are. Right. So obviously some of those right floor ceiling are not usable.
No, not a full floor ceiling. But. But a short floor ceiling would be usable. At the bottom of the number at.
The bottom of the number.
Like something like this. Just underneath the two sides of the number. That will be usable. Not sure what else from there is usable.
And those are all binary operators. Does. That's not going to be useful.
2, 3, 0, e. What? Why isn't this. That's incredibly ugly in this font. It's.
It's a. Yeah, it may not do. Show cell expression.
Why is this so slow? Something is really, really broken in this front end. Well, okay, maybe. Maybe if I zoomed in. Maybe. Maybe that's what it actually is here. Yeah, I think it is. What it is actually is here. That's not what I thought it was.
Okay.
And I'll. Can you do show cell expression on that Cell. Right. So it doesn't have a long name, which means it's pulling in whatever system font it can find us in rather than using one of our fonts.
Yeah, that's what I. What do we want to communicate in a, you know, a finite field? What's its visual. What. What visual metaphor? I mean, other than an alpha, which is used for these things, What's the right visual thing to communicate for these, given that they all have to have the stupid subscript and I assume the subscript is the right place to put.
I think so. I think, I think. Right. I mean, it is. Yeah. That is, I think, pretty standard. I mean, off. Right. Obviously it'll often just be in textbooks, just the picture. Right. But it'll.
I mean, often you set it up in context and you don't show it.
Well, for. For sure. We should go down to smaller font size for that subscript. Okay. And I don't know whether that background is helping or hurting. It's probably hurting. Let's get rid of that background. Well, it helps that the gray plus sign isn't.
Oh, it's gone now.
Yeah.
If that was a down chevron, I.
Think it looked decent. Okay, look, what would that be? To make a down chevron. Chevron.
Boy, I really wish John were here so he could tell me the secret code to get the actual official code assist down chevron. But.
Looking okay. Looked a lot better than it did before. I mean, obviously we. Think it's reasonable. Now, is it going to have a mouse over that says finite field element, blah, blah, blah. It should presumably.
You mean the whole thing or.
Yeah, I'm thinking.
Yes, yes.
Okay.
All right.
But we can come up with no better visual metaphor than the angle brackets. Roger, Anybody?
The only thing that I was thinking of, whether one always need the subs, you know, to know what field it's in or that's a mouse over thing.
I think we should put it in, but just have it be small. I think we'll survive putting it in there. I mean, but we, we do need to elide it quite quickly. If it's more than four characters long, we probably need to elide it.
Okay.
Even three characters. I mean, you know, you know, you really care about the field. Here's a question. If it's an alighted thing, do we want to have a character at the beginning, character at the end? Is it useful to know.
What I've done is once it grows beyond. And I think my limit is much higher, like 20, but you know, it just says P. You Know, P to the K. And then if you want to see the details, you click the plus sign and you have the full finite field element, full finite field object there that you can get any information.
I would put dot dots there. I would not go to Peter K. I think that's very bizarre because there'll be a lot of other K's that somebody has, and you have no idea that your K isn't, you know, killing another K, so to speak. Conceptually, so to speak.
Yeah, actually. All right.
I think the K is always stays the actual number. We don't expect a lot exponents there.
Right. So.
So the P. The P states, you know, becomes.
Becomes simple P. But it shouldn't because there might be a P in your expression. It's really not a good idea. Just give the damn number. And, and, you know, with dot dots. Now, my only question to you guys is, is it useful to see beginning and end? Is the end potentially useful? Because it might tell you something about. But I mean, clearly it's never an even number. It's the only thing you could easily tell by. By the end.
Yeah. I mean, with large primes. No, there's nothing you can tell. I know. I suppose I should defer to Adam, but as far as I know, there's nothing you can tell by the last few digits of a large prime.
Well, it's whether it's the form 6N plus 1 or 6N minus 1. Right. Not really.
I mean, the regular short with few first digits, few last digits, and the number of digits missing is informative since you see the size of the number.
Right. Well, I think if we give the number of digits missing, we're going to get super confused. I think we should just give, you know, a couple of digits at the beginning. Dot, dot. Well, if you don't think the digits at the end are useful, then we should just give a, you know, a couple of two or three digits at the beginning.
Okay.
Okay. Do we have anything else to discuss? I mean, again, I'm not thrilled with the fact that we don't have a notation for finite fields. That is, you know, that's somehow more suggestive because we're, we're, you know, we've. We've had a. We've done a good job over the years of inventing notations that are suggestive for things. And this seems like a bit of a wimp out that we're not coming up with anything here. I mean, I think I have seen angle brackets for some in the past.
Well, well, the good thing Is that the styling is almost entirely in the style sheet. So if we come up with something better later, we can always update the.
Yeah, I know, but. But we don't.
Want.
Okay. All right. Well, lovely. So I think that's everything we needed Jeremy for. Yeah. Yeah.
I'm gonna have to leave, unfortunately.
Okay, well, then we'll have to schedule some more.
Yeah, I think we need one more round on this. Maybe an hour or maybe less.
Oh, wow. Solve works for this.
Not yet. Not yet.
Next release.
We're in the next release. Yes.
And the way you'll specify the field is what in solve?
So instead of reals and complexes, you say you give the field.
The finite field.
Yeah, you give the specific finite field.
What do you do for factor? Do you say.
So it's either the field of coefficients or extension goes to F.
How do you specify the field elements?
If the coefficients in the polynomial are from something, you use the field.
But this isn't an extension.
Right, No, I understand.
Well, if you do integer coefficients and then put extension goes to F, that also works. And it's sort of useful. You can, you know, you consider those integers as elements of the field and factor over this field.
Does it have reasonable messages when you combine finite field elements with plain integers? Does it?
So if you combine with plain integers, it just includes the integers in the field without a message. If you combine with something, you cannot include them in the field, then it gives an error message.
How do you. Sorry, this is a naive question, but how do you combine. I mean, it's something that isn't just, you know, gfp. How do you combine the integer into the field?
So the integer, you take it, model of P and.
That'S fine.
You feel the ZP is inside.
So you take mod P to the Q or something.
No, you take it mod P and then include in the field the field. Every finite field contains uniquely a copy of zp, so the integers are considered elements of zp.
Okay, I get it. I get it, I get it, I get it. And so if it's. But if the P was P to the Q, it would have more copies of that. But you just put this into the canonical first one. Is that correct?
First one, yeah. Yes, yes. So it's. Or it's just integer times the one in the field.
Right, right. So I have a question here, which is, I mean, in terms of other more exotic functions, like, you know, primitive, like the things for shift register sequences, which are very Finite field. I mean, presumably it's a nice example. You can. You can show with. With GF2, you can show a nice fractal. How do I do this? Let me just do this. So I say finite field two, except it has to be two, comma one. And then I want x plus one like this. And then I want to take that to the power T. I want to take the expand of that. I want to do a coefficient list which presumably will work. That and that. Oops, comma X. What the hell is this? Okay, table T, comma 20. Why is this taking down to real time? Okay, let me make now a. Why is that. Okay. Column. Lovely. Well, if it. If it didn't. If it lined up properly. Actually, if I want to make a grid here, can I make a grid? I don't know if I can make a grid. Yeah. Isn't that lovely? There's a cute example for you.
This is very nice.
Yeah.
Yeah, Great.
Could you send a code to us somehow?
I mean, you can do it with other.
That's very nice. Thanks.
I recommend also. Well, let's see what would happen if I tried to do it. One over x plus x times that? Does that work? No.
Well, coefficient at least likes. Doesn't like denominators.
I see. But now this. Why is that not. That's not as beautiful as it could be. Well, anyway, that looks beautiful if you render it correctly. Okay, so. Okay, well, So all of these things. What about gcd? Does GCD make any sense? What about other number theoretic functions?
So gcd, lcm. It's a field, so it doesn't make sense. Yeah, other.
Aren't there things with Mobius functions and so on that makes. What about the Dirichlet thingy, dinghys? Don't they have. Don't they make sense like zeta functions with, you know, Dirichlet functions with Dirichlet character. You know, the characters in the Dirichlet series, Aren't they finite field thingies? Can't you have L series over finite fields? I remember correctly, right? I mean, do you know that to be nonsense or do you not know either way?
I don't know either way.
Okay. I'm pretty sure you can, because I'm pretty sure. Remember, the definition of an L function has that. That the character thing in the elf and the L function definition. Right. And I'm pretty sure that, you know, it's minus one. Whatever. Yeah, I think it's. I think it makes sense. I think you should ask probably. Charles. Yeah.
Yeah.
I think you should go on a hunt for some other. I'm trying to think whether there's the cellular automaton function. Whether there's things there. Okay, here we go. Yeah, I'm pretty certain that this is a way chi of N is a. Is a Dirichlet character. Yeah. Modulo K. The possible Dirichlet character is modulo K is specified by an index, blah, blah, blah. I'm pretty sure this is highly related. I don't know for sure, but it looks related. What other number theory functions are relevant to this?
I'm not sure it's related, but there's these elliptic. Hyper elliptic curves which are being studied over finite fields. So I think I'm.
That's right.
I mean, the discrete logarithms. I mean, that's kind of. I know the literature that passed on to Adam at some point.
Okay, what about. What about integer factorization? Does that make any sense in a finite field?
It's a field, so. So you don't have. You don't have. All elements are invertible, so you don't have factorization there.
Right. Integer digit. Doesn't make any sense.
Primitive root. What exactly is primitive? That might be something that.
Yeah, primitive root. Must make sense. It must make sense. It's the same creature, isn't it? Yeah, a modular Surely makes sense, doesn't it? Power mod, obviously. Well, power mod. The third argument of power mod, probably. Okay, here's a question. Is mod capable of taking as a second argument some kind of field?
What would it do?
It would reduce the thing and that will. It would reduce.
It just put the integer in the field or.
Yeah, what you just explained was the thing you were doing. Ah, okay. Yeah. Then it's good. I mean, I don't know that it makes sense, but I'm just suggesting that might be useful. Yeah.
At least for integers. It's, you know, model works for complex numbers and I think it's not a rational number. Will, what's.
Yeah, okay, maybe it's not a good idea. I don't know. All right, well, fine. This is looking great. I mean, and. And then linear algebra you say is coming.
It's coming here.
And. Okay, well next time we've got a small amount to do here. I don't think this is probably not. Oh boy, this is going to be a mess. Is this real? The structured matrices thing? Is this a big. Is this big build out?
No, no, no. It's just something you requested. This target structure where, you know, you can request a particular kind of output either dense or structured or sparse. It's. I think you request like may probably last release and we've done it now, that's all.
Okay, is this a substantial build out or is this.
Well, we've had. There are several new structured matrix types. I mean, it's not.
Okay, fine. Right, let's pick this up next time. Also, while we're at it, look at the new formatting of finite fields and otherwise. Looking good.
Thanks.
Good stuff. Well done.
More from Guy

Cheryl Strauss Einhorn | The Human Edge: Smarter Decisions in the Age of AI | Talks at Google

Rachel Glennerster | Innovation and the Center for Global Development | Talks at Google

Rebecca Winthrop | Rethinking the Purpose of Education in the Age of AI | Talks at Google

Dr. Robert Wachter | A Giant Leap: How AI Is Transforming Healthcare... | Talks at Google






