Live CEOing Ep 743: Language Design Review of Calculus & Algebra Features for 14.0 continued

This is a design-review transcript (Sept 23, 2023) from Guy Kawasaki's Live CEOing series focused on Calculus & Algebra features for Wolfram Language v14.0. Major topics include naming and semantics of finite-field functions (element vs. index vs. coefficient), UI/graphics proposals for displaying finite-field elements (icon/angle-bracket design, compact vs expanded views), structured-matrix framework and the idea of a handbook/entity store for structured matrix types, and enhancements to numerical integration (NContourIntegrate), named contours (Bromwich/Bromwich contour) and convolution variants (Laplace/Z /unilateral). The meeting also touches on state-space models, extraction of ODEs, autocomplete/UI bugs, and follow-up design/action items.
Chapters
Okay. Hello, everyone. Welcome to another design review, part of our season of version 14.0 design reviews. This is part two of calculus and algebra. And let's see, last time we did talk a bit about the graphics of the finite field indicator. Did we make any more progress on that?
There are four fun. Well, ITAI is here so we could have that discussion more in detail. But there are four function that was triggered by the discussion at the top there. Okay, last. From last design review. So they've been implemented and documented.
Finite field element index, as opposed to finite field index. Okay. Right.
Which is consistent with, you know. Right. The thing it takes is a finite field element, not a finite field.
I understand that it's a bit long, but my God, we're now at five word function names. How many five word function names do we have in the system? That's the kind of trivia one should be able to ask an LLM, but we probably can't. Okay. God, I hate doing this. I hate having this FF equals and then this. I really hate it. Don't know why we do that in examples. It just seems silly. It's like, why have the extra cognitive load of home to understand that?
Well, in this example, it has no purpose. And also the other thing is, when they're nice typesetting like graphs and other things, it's nice to have them expanded.
Yes, when I agree. Okay. All right. So two finite field coefficients. What is this doing? Takes a rational from what we talked about before.
It converts the rational function or a polynomial to finite field. Polynomial rational function.
Why is the name right?
All the coefficients are turned into finite field elements or the numeric coefficients.
Okay, you know what? Why isn't this two finite field element coefficients? I don't understand why we have to have the word elements in here. It's an index in a finite field. You know, we've got other functions that don't say in pedantic detail every detail of what they're saying. I don't think there's any different meaning that finite field index could have.
Also it's listable, so I guess that, you know, these are listable. So element. Seems thing there's only one element involved, but it could be several of them. So maybe that short name is much better. I guess you're right. Finite field index looks better.
Although we have finite field element norm and finite field element trace.
Right.
So for specific element, this one actually takes a list. Right.
Or it can take one element. It's just not very useful there.
Yeah, so I'm just saying that in that sense, you know, having the element out would also avoid some confusion that it only works for one element.
Let's hear about the norm thing. What. What is the norm thing? So go ahead.
So it's a quantity that's associated with a refined field element, and it has normal. It has a trace.
Okay, but that is of an element. People would say it's of an element. I mean, I understand they would also say it's an index of an element. But I mean, let me see the guide page. Is it in here? Yeah, should be. By the way, I just want to comment for whoever's PMing. It's still too slow to bring up the root guide page. And by the way, you're missing a tagline here. Who is PMING here? I am. Tracy is. Okay, so. And you don't have an intro there yet? I don't have any problem with this. I mean, I think. I think if we say finite field index. Roger, do you have any comment here? I. I think it's okay to say finite field.
I think it's okay, too. I can't see that index could point to anything else.
Okay. All right. Now, why is this definite field coefficients? It making the coefficients be in a finite field. Yeah.
So you have a polynomial over integers. It gives you a polynomial over finite field. So the coefficients go to finite field.
I know, but really what it's doing is it's converting the polynomial to a finite field.
To a polynomial in a finite field.
Yeah, yeah. It's not really the coefficient. I mean. Yes, it happens to be the coefficients. But in normal language, you would say it's a polynomial over a finite field.
Right. But it's not something in the finite field. So it's not taking something and putting it in the finite field.
But polynomial over the finite field.
Yeah.
How do we deal with extensions polynomial? Is there anything where we put something in an extension field? How do we, you know, if we take a polynomial and we factor it and we say extended over root two, for example, how does that look? Do you understand what I'm asking?
There is no such thing there. Because. Well, if it's a polynomial, you do extension, it goes to square root of two. Yeah, something like that. Yeah. But the polynomial itself, you cannot transform the coefficients into the extension without factoring it. Like, it will still be the same coefficients.
I get it. So if I were to do this and I were to say modulus arrow 2 or something.
There'S complain.
Okay. But this is equivalent to 2 finite. I hate two finite field coefficients. I hate It. Why isn't it working? Why didn't that work? Why didn't one day.
Too old.
Yeah.
Maybe committed last night before last night's build.
Okay. Okay. That is a true hall of shame that. That. That Andre and that Arnaud just found. Functions with five words. Five words in their names.
Oh.
Yeah. Well, many of these are deservedly five words.
Yes.
Okay. I don't like this name. What. What other possibilities do we have?
So I would like to say polynomial, but it's kind of rational function, so it's a little bit. On the other hand, we generalize, expand and other things to rational two finite field polynomial.
I mean, there's always two finite field.
I think that looks too fine. If it looks perfect because it also works for constants, then you don't need to worry about.
Yeah, that's true.
Does it work? So do we. Don't we have another way to do it for constants?
No.
Right. It's just a finite field element. Doesn't finite field element do that? Nope.
That'S. That's a constructor, basically. Right.
Well, so if I. I'm going to get 5 mod 2. I know that's stupid. 5 mod 7 or something. How do I do.
So, 5 mod 7? Yeah. Then you can define a field element and then field index. I think that's the syntax.
Is.
What?
Well, you have to give the field to find field elements, so you have to first construct the field.
So, for example, as a simple syntax, we could just do this.
And that should make seven a prime. Few need to. A prime field.
Yeah. And I mean, honestly, if I might say so, you know, there is a unique field of a given degree, right? A given order. So if. If I had 49 there, it's the field, you know, GF7 squared, then it's not unique anymore.
You can have different polynomials defining it.
Is that right?
They are isomorphic, but they aren't the same.
But don't we have a canonical one?
We have a. Well, it's not really canonical. It's the one that we are getting. We have the default one. Yes.
Okay, then we should do that. If I say this, we should use the default field. How do I other otherwise construct. Sorry, I'm forgetting this. How do I get one angle bracket 1F, you know, whatever it is. How do I get.
You construct the field and say F of one.
Okay, so hold on. So I say finite field of seven, for example, of one and of one. Like that. Well, there's a really good reason to have a function called two finite field. There Right. Because that would just look like one comma, seven.
And that could potentially work for slightly more general things beyond rational functions as well.
Yes.
Okay. And so if you are saying that it should also work for 49, then I guess finite field should also work for 49.
I think so. I think so. Give the default finite field, because I think people will actually Write it as 7th squared and it'll evaluate to 49, but then we can untangle it. Okay, let's talk for a minute about this puppy. I mean, the, the. The. Do we have anybody from design here? We see if we can get. Could somebody see if Jeremy is available just for a couple of minutes?
Sure.
I just think there's too many poxes here and that the 5 squared is not, you know, it's not integrated enough with the. With the pox, if you get what I'm saying.
Right.
There is. I mean, there is a background there.
But I can't see it. Okay. I really, really can't see it. I. I mean, maybe if I put this on. I absolutely can't see it. If you tell me that's not white, I'm amazed.
It's not white.
Okay. I'm amazed.
All right.
It's the same. It's the same color. So if you go to the expanded state, it's the same color that you have above and below the finite field there. It's just. It's small enough that you.
Yeah, I see. It doesn't work. Okay, let's. Let's see whether we can get somebody from design and let's work on this thing.
I'm here.
Okay. All right. So you see this creature? Yeah. Okay, what we're trying to do is, I think. Okay, I got several questions. Is it obvious that the angle brackets should be fully black? Because to me, really, what we want to do is this is a one, but it's a special kind of one that is in this finite field which has an opener that tells you more detail about it. So I'd like to speculate what would happen if these brackets were a little gray. And then this thing, you know, in the closed state, we want to see some kind of feness. I mean, why is it called F? Is there any notation in math? I mean, usually it's called gf, whatever it is.
Right field.
Yeah, that's just for a field. But why, when you write out, you know, GF5 5 to the 2, you write that GF of 5 to the 2, don't you? And what other notation?
Well, but, but you wouldn't use A double struck gf. You would.
No, I know, but what other notations are there for a finite field? There's Z mod. Whatever it is, but that's kopo. For what.
Which means German.
Yeah. What is the word? I thought field was. What is the word?
K O with two dots above it. R, P, E, R like corpse. Like K O, E. Which you wouldn't like.
There's another word for field in German. It's completely different. Isn't there? Not this field of this kind, but.
Right. I don't know what those are. I have to think of sec.
Okay.
That's a different thing.
Oh, fell. That's the word I was thinking of.
Right.
And.
But that's field. Like, you know, quantum field theory.
That's the field I was thinking about. Okay, so this field is some special name for field. Okay, fine. Okay. All right. We need ideas here. So I mean, the F. This. This F could be a lot smaller. I mean, it really is.
Well, it could be a little smaller. I wouldn't say a lot smaller. Right. Because you still need to be able to see that there's an. There's a down chevron there.
Yeah.
Right. And you know, I. Right. The. But both these colors and the. And the F itself were given to me by Jeremy. It's not like.
I. I understand. I understand. Okay.
So do we. Do we. I mean, we had a little bit of that discussion last time, but a lot of the real estate is taken up by showing five, you know, to the second.
Yeah. Can I raise another question in. In the new design for root objects, what's that going to look like? Because what I'm wondering here is maybe we could get the down chevron not to really be there, but to just be a hover.
Right. So, I mean, I guess I hadn't made a decision. I had. I'm not far enough along to tell you whether there will be a plus sign or a chevron or just a hover, but. Right. The basic idea was that we would add after the dot, dot, dot, like parentheses, de colon, three and. Or transcendental, if it's a transcendental root.
And equals here.
And. Yes.
The thing that drives me crazy. I want a raft that allows me to easily get out the. The root.
And then. And if you let me finish my sentence, Stephen.
Okay.
And you would hear me say that. Right. And then there, you know, there would be an opener state that would allow you. Which would display the full polynomial. I mean, we'd need to have some sort of line wrapping or something. Right. Because these Polynomials can be arbitrarily large.
Yeah, yeah, absolutely. But, but, so what about the possibility? Okay, so what we've done here is this one is similarly as encapsulated as that creature. That is to get it out, you need to apply a function. Right. So I'm wondering whether we should go for a similar kind of look where we have, instead of the, you know, that, that root sign thing.
A field.
Yeah, Something which is a little A field sign. And then this just says one. And then it has a very tiny or, you know, even, you know, and then, then there's mostly a one there. And maybe even using the same motif as these. You see what I'm saying? Because they also.
Basically. Different icon.
Yeah, different icon. And you know, then, but then we also need the information. So, so you're saying in here we might want degree five.
Right. So one of your complaints was you had, when we last discussed this, which was March maybe, you complained that you not only could you not copy at the polynomial, you didn't even know what, you know, what kind of polynomial it was. And so you wanted some indication, even in the closed state.
Yep.
That's when we came up with, you know, deg colon 6 or, you know, transcendental, etc.
Do we have a design for that? Graphic design for that?
We do not.
Okay. Because to me, DAG 5 and you know, GF5 to the 2 are sort of the same type of information somehow, roughly, maybe approximately. Okay, I, I kind of feel like this over. This design is a lot more civilized than these things that have this, you know, many bits in them, so to speak, you know, even than the angle brackets. I mean, to, to me, putting something in here that just says, you know, forget the angle brackets, it's just an icon and a one and then something indicating that's five to the two.
What do I think about that? How important is it to know.
The.
What prime power field they live in all the time?
I would think it depends on how many of them there are. Absolutely.
But I'm thinking that in most applications, you, you, you're going to have one running around only.
No, I agree with that. But, but I'm, I'm saying if you see a polynomial with two coefficients in it and they're in GF2, that's worth seeing. Like it's a shift register polynomial thingy. But if you've got hundreds of them in a polynomial, it's just a nuisance, just noise.
So it's almost like a date format or something. They're sort of differently Compact date formats. So that kind of can be a short form and a long form. So something that says basically whatever that icon, Little icon is, that says like a field. Finite field icon.
Yep.
And the index, that would be the short form. That could be a long form, which also gives the. Yeah. The prime power. It's almost like. Yeah. It's kind of different length, it's sort of different detailedness.
Because I think the following question. If we put a small number here. Right, right by that icon, we put a little notation here. I, I do not like the idea of having a dag. You know, I think it's, it's like, you know, we tend to spell things out, but if we spell it out, it's too long.
Yeah.
And I'm just kind of wondering if. Jeremy, are you, are you in a photoshopping mood here?
Sure.
Just, just put, just see if we can put like a little tiny five underneath there. Not, not inside the square root, but just as like a, like a footnote five type thing.
So outside of the circle or underneath.
No, I, I would say crossing the circle. Okay. And then. And what I'm imagining is something for this with an F there and a little five to the two tucked inside it. So you're not really wasting space on the five to the two. It's just part of the field icon. Now it's going to be slightly annoying that we're doubling the length because if we just have a one there for the field element, and most of the time the field element, the filled indices will be quite small.
But I think that's depends on your applications. Like if you're doing cryptography, the field elements will be quite large.
How large?
Like hundreds of digits. I mean, we won't show all of them, but.
I see. Okay, look, this is, this is what I'm suggesting. This is what I think. I think that we should use this motif and maybe Jeremy can mock some of these things. Okay. And then, then in terms of.
I wonder, you know, sorry, but just thinking, do you really, do we. In, in the root case, do we really want that to be a subscript and not a superscript?
Because it might be better as a superscript. It might be nicer as a superscript. I agree. It's a cool idea to have it as a superscript.
What will happen is with other types of roots, like a root of transcendental.
Function or will you put infinity notation there?
I mean, you could put infinity there.
If it's a nested root object, you compute the product of all polynomials.
What is it that you want to know? I mean, if you want to know super detailed, you look up the inners.
Right, but what do we put in the icon, like nothing or.
No, no, no, hold on. What are the cases? There's a plain Jane polynomial. We put its degree.
Yes. There is a collection of polynomials.
What's that case? How do I get that case?
So it's a root of triangular polynomial system. And there is a whole triangular polynomial system in there.
Okay, so there are multiple polynomials. So there's degrees, 5, 7 or other multivariate polynomials. Where there are multiple.
There are multivariate polynomials.
Yes.
Okay, so tell me what information you would get. If I asked for the degree of a multivariate polynomial, what would I get?
Well, each of them has a main variable, so it makes sense to have a list of degrees, but it may be a list of several elements.
Okay, but so in that case we would have seven, comma, one, comma, two up at the top there. And if it gets too long, we just do seven, comma, dot, dot, dot. Does that make sense?
Okay, and for transcendental, it's just infinity.
What's a symbol meaning transcendentalism, so to speak?
Well, it's not algebraic.
Well, I'm aware that that's what it means, but I'm just asking. Just like we have things like Z for the field of, you know, but for we, we.
I mean, we don't have a symbol. Right? It's R. It's R A. Right. It's the reals minus the algebraics.
Yeah, right, but so there isn't a standard symbol for the transcendental. Well, and then an infinity is kind of cool. It's. It's stylish, I would say. I don't know how else we can explain it.
I think that there should be a more abbreviated version of these where you don't have all that clutter. Well, that's like a full form date or something.
No, no, no, But a little tiny infinity. There is not. That's not adding space to this is. This is what you're getting. It's this. But just with a little notation there, I think we can make it look reasonable. Okay. I think that the. And I think we should do the same thing for the. For the finite fields.
Okay, I can. I can play with that.
Well, I think Jeremy hopefully will. Jeremy, let us know if you have something to show. Okay, I'm pretty close. Okay, we should. We'll go on and just interrupt when we're ready. Okay, what's next to look at here?
I think that. Did you. I think you went through. We did. Maybe we didn't talk. Yes, we did talk about solving as well. So we did.
Maybe we talked about all of those things. We didn't get much. Unstructured array.
Exactly.
So let's go there.
Yeah.
Okay. I. Do we want to do that or do we want to try and look at some of these other ones?
I think the calculus ones are probably a little bit more, you know, important.
Let's look at those today and let's know that we haven't looked at these.
Structured matrices because I think one idea we have eventually. So I think we have maybe one. One plus release away from. From wrapping the whole thing. And one idea we have to promote it is to write a book like a handbook, one for each structure, basically.
Good. Well, I mean, I assume there's a guide page of all the structures.
Yes, but the. There's things you want to know about them, properties they have and this and that. Right. And it's. It's not necessarily.
Well, do we have entities for them?
No, not that I know.
Maybe we should, because that way we can have a computable version of the properties. Right. Just like we have entities for. For, you know, plain curves and God knows what else. I think it's a good idea to have entities. Rather easy to do. Whatever you're assembling with the properties, you can make it into a. An entity. An entity store, which means they just directly flow through. That's a simple idea. But what's that?
Someone sneezed.
That was a sneeze. I missed my.
Mute.
No problem.
And you know, so. So.
Well, I mean, this is the kind of thing I'm. I'm talking about. Okay. Trapezoid. Okay, there it is. Right. Oops, there's a bug. Somebody please take. Make a note. Wrong capitalization there. Anybody get that?
Yes.
Okay, but this is the type of thing. And that seems useful to me for these, for these types of matrices, right, Roger?
I don't know. I mean.
Well, if it's useful to have a handbook, it's useful to have an entity store.
Okay. Yeah. I haven't tried to sort of decompose it like that.
To me, it will be useful to know what's a type of matrix that is symmetric and has blah, blah, blah, blah, blah, blah, blah, blah.
Right. But kind of what you want to know is that sort of where. What are the benefits? You know, where do you gain performance?
I understand, but also discovery.
Then where does it come from?
Yeah, well, fine. That's a different Story, but I think that's a fine idea. But I think that, I mean. Okay, I'm going to play back to you something you've played to me, Roger. These are special matrices.
Yes, they are.
Where's the general matrix?
The general matrix is a dense general matrix.
Really?
Yes.
There's no general special matrix. Like there's no generator of matrices somehow. I mean, in other words. In other words, okay, to put it this way, and this was, you know, a matrix can be actually, now that.
You say that actually Devendra, one thing we missed here are these random matrices. Those are usually structured. They're definitely.
Yeah, I think we have a long list of them. The problem is we honestly, it means working with other people's code. I mean like, so we, we have that tunnel. I'll make a note again. But we have a long list of things which can be done, so to speak. But we haven't got around to them because I mean, we also need this layer that we have right now to do all that. So I made a note though.
Okay, Correct.
But you're talking about a random Hilbert matrix or something.
No, Rand random matrix theory. And they, they don't.
Oh, I know, yeah.
But they don't give you kind of A random Hilbert matrix isn't super hard to do because it has such a nice.
No, I know. It's Gaussian orthogonal ensemble and this guy.
Yes, those guys.
Yeah. So now that we have the orthogonal. We can then go on to the next layer which is to use them in statistics or we're doing a bit in geometry now, but we have other areas which can now benefit from this structured framework.
Okay, but I'm going to claim that the, the general special matrix is function matrix.
Well, yes, sure, you know, table of each element.
But array really. That's really a ray. Yeah, but the, the point about function matrix would be if, if it made any sense would be that it is an unevaluated. Because that's the whole point that you don't want. It isn't dens, you know, it's not turning it into a dense matrix, right?
Well, Yes, I mean that's what these structured guys do.
But what, what operations could you actually do on this?
I don't know. I don't know. I mean, but you might be able to do like a determinant and for example, it, it probes values of F and once it finds one of them is zero, it's like, oh, I don't need to compute a bunch of others.
Well, we do that.
Yeah. I mean there's One thing that we already are coming across it. Some of our linear algebra algorithms already optimized for the kind of thing you're saying, like they do know about symmetric matrices internally.
Some. No, no, I understand, but what. What I'm saying is this. Okay. I'm saying is this that. Let's imagine that's not six, but it's a million. Okay?
Yes.
And you start probing this thing and you find enough zeros that you say up. This determinant is zero.
Right. So. Right. We don't. We don't. I mean, we usually call them sequences. This is a, you know, bivariate sequence. But. And we. And at that level, we can do things. You know, that's like the discrete calculus story. But we haven't done the sort of linear algebra story on that.
I think it'd be worth thinking. I mean, I'm just playing you back what you played to me.
No, no, I realize that. I mean, they are using that, Stephen, but they're sort of known. Important.
I. I get it, I get it, but. So my question is, how general can it be? And maybe there's a framework. Just a suggestion.
Yeah.
What the hell is that little blob there? Bug.
Actually, now that you mentioned it, Stephen, what blob are you talking about?
The bottom left blob that will disappear if I move my mouse to it.
Oh, no, no, no. That's the. That's the. Show the.
I know what it is. Show the what?
That's the. Show the value. If you go over, like an actual element. Right. It gives you the index.
I understand, but why is it there? Why is it there when it's the. The up arrow thing? Why is there an empty blob looking silly?
Well, I. Well, maybe that's a bug, but. Right. It's because the. The thing appears when you're over the data set.
I know, I know, I know.
I was going to say, Stephen, that there is actually some of these things that we have, like Vandermonde and other things. There is. You can do that on, you know, so formula based, just like what you say with Fs there. And particularly for like, evaluating determinants.
Yep.
You know, so you can have like hypergeometric term structure and things like that that you can take advantage of. We haven't. We haven't added those classes here because they. They need to sort of come up in applications enough, it feels like.
Anyway, I'm suggesting. Think about maybe. Irrelevant. Okay. Jeremy, are you ready to show us something?
Yeah, I mailed you something.
I. I can I have it in Photoshop too. Okay, hold on. You saved that notebook with that bug so I can take a look?
Because I don't think it happens with any data set.
Okay. I like this. Yeah, I like that quite a bit. We need to check what happens when the number. When there are more numbers and things. We maybe could darken the five there, but I think that's pretty nice. Now what's this? This is. That was just a sample. Right. Because that's nothing to do with that. That isn't. That was the first thing we talked about, making the F smaller, whether or.
Not the chevron would show up.
I just changed this at all. It should. It should be. We should go to a thing like this where the F is sitting inside here. Okay. I think it should go here. And I think that forget the chevron and we should tuck the. The. We should have an F kind of as an iconic F. And then we should have the five to the two underneath it shaded by the. The fronds of the F.
Do you.
Want a hover effect or something that knows? Yeah, hover effect. Yeah, yeah, Yeah. I think this is nice. Roger, what do you think of this?
Yeah, I think it's a good idea. Well, and I like that the general theme that they're kind of effectively different types that are kind of very compound inside.
Yeah.
Yes. Well, I'm right. I'm concerned. I'm con. You know, by having it sort of inside the circle instead of just a normal superscript. I'm. I'm worried about the scalability, you know, if there's multiple numbers or if it's just a big number.
Worry about how it's actually implemented. Yes, I agree, but the. I suspect we can do this with. I mean, we need to make sure that magnification works, etc. Etc. Etc. But at least we've got a target here, which I think looks nice.
Okay.
Okay. Wow. Is there a lot of stuff here, in fact, in this N line. Integrate.
It's just exactly the same spec, but the full battery of numerical options to control.
Okay.
Accuracy, Go. Precision, go.
All right. Precision. Does that work, numerical contour integration? Yes, and it doesn't give stupid answers for. And what happens if you're on an infinite contour? Does it work like the. I mean, we were going to have named contours like the Brumage contour and things like this. Right.
Defender.
What's that?
Yes. So you might even have a kind of, you know, like a couple of poles on the X axis, which you want to exclude. We Would try to do the, you know, kind of the limiting case numerically. Yes. So it tries to imitate all of contraintegrate. They'll have the pluses and minuses. But the main point over here is that people already asking us to tech support for the numerical versions because they don't get it. How to use when to use symbolic, when to use numeric. So to answer your question, yes, we've tried to imitate the entire framework for. And we do it for an inverse Laplace transform. Basically.
Yeah.
So okay, so to be very honest, we might even have be using the inverse Laplace transform internally once in a way just to get to the right answer.
Do we have ND yet after all these years? No.
And the end limit and whatever. All pending.
We, we'll probably. What we'll probably do is tackle them in a calculus and algebra team instead of the numeric team.
Makes sense to me because they need some. A bunch of pre processing things, don't they?
Yes, yes. And you have to be pretty clever.
Actually for that to be. I'm sure. So.
And to useful. Yeah.
Okay. All right. So. So my question about named contours, could you answer that?
Yes. So we have done that for the, for the 13th release. We've tried to imitate that for the end case.
By how much? What did we have as name? I mean like the famous concert the Bromwich contour for the. For inverse.
Well, in that case you might need to specify because I don't think we had Brahmach as a name, but we had got other things like in the semicircular contour there's a couple of arcs sticking out of the x axis.
You know, do we have names? Are they string names or what are they?
Yeah, they're string names if you want to look at them.
But yeah.
What on the ref page it, you know, on.
Yeah, exactly.
Contour integrate.
Yeah, they have the full battery of names.
You know, it's in the notes with pictures and everything.
Oh lovely.
Yeah. So we've just emitted the entire. This structure has now been carried over to N contour integrate. And if you have like, you know, things which are in infinitesimal, we try and do water something sensible with the numerical methods.
I mean the contour that one often uses is this vertical contour.
Right.
And then going off to the left.
Right, but that's easy to specify. Right? Because you can just do from C. Is that what you mean? Like from minus infinity to infinity. So like two.
No, no, the, the. The contour for the inverse Laplace transform Yes. I'm not mistaking it. Yeah, yeah.
It's a vertical con.
Vertical line going from C minus I times infinity to C plus I times infinity.
Right. Then with a. With a left hand.
Yes.
Kind of thing. So why don't we have. I mean, isn't that a very famous contour?
Yeah, but we haven't named it over here. I mean, it's available quite easily. So I think naming it because.
Why is it available so easily? I don't understand how I make.
Because you can just say in an infinite line.
Yeah, exactly.
How does it close? How does it know to close to the left?
Well, I mean, it. Because we have an orientation notion. So I think that's okay. I think we'll be going up.
Right.
Yeah. And then the question, should you call it melon or. In Laplace, we got these different things in the system which have got very similar kinds of frameworks. So that's a little harder to.
What, for that contour?
No, I'm just saying that. What do you call it? Is it called what the contour for Bromich. Right. It's also related to the contour for melon. Inverse melon, for example. So we got these different kinds of things in system which essentially are related. So we didn't give them a special name. That's what I'm saying.
Except that if people are looking for the Brahmach contour, which I think they would do in complex analysis.
Okay.
We should let them find it.
Fine. I think I, I. It'd be good to had that condition. Fine. Yes.
Like, I'm sure if I do a search for Bromic, I will completely not find anything which is wrong.
Yeah.
Yes. Well, it might come up with inverse Laplace transform if it looks at our keywords. Look at that.
Amazing.
But now you see, now that there's inverse Laplace and inverse melon both, they're kind of very closely related.
So which one do you what they're still called? It's still called the Bromwich contour in both cases. Right.
That's fine. Yeah, we will do that. No problem. We'll have Bromish agree completely. No problem.
So this is, this is expanding.
That's a good idea.
The input language to take some other things that effectively are differential equations.
Yeah. That's interesting. I've been wondering about that.
Yeah. We've worked with Subha for this. Subha Thomas, and it's quite a bit of effort and thought has gone into it.
Can I, can I ask this question? If I just want the ode out of the state Chase model. How do I get that there's a.
Property for state space model? I think if you, if you want to extract the ode. I can't remember if it's a documented property or.
Well, we need to make sure it is because I mean by the time you've got the solution, you better be able to get the ode as well.
Well, I mean we can we use it here. But I'm just. Obviously I can't remember exactly.
It's. No, but what I'm saying is can.
Can we take, can we take that note down and we'll, we'll check on it. I'll check it right now, actually.
Now why didn't that autocomplete? Why is that not autocompleting?
What is not what is not autocompleting?
This property here, it should autocomplete. Why the heck isn't that autocompleting? Somebody forgot to put that into the autocompletion system.
Well, no, because if it's a head.
It knows how to do it. It does it on millions of other heads.
Yes, but that requires, you know, that requires support in the C, in the front end C code that's not for a specific head.
They have a way of doing it for generic heads. It should work.
So it's the other way around. It it transfer. You know, you can give differential equations, get a state space model, but there is no blessed way to get them out.
So we need that. Right. Just like we can get the solution out, we need to be able to get the equation out.
Sure.
I mean this was lovely. Who needs to feed it to an Arduino when you can just get a formula? That was suspicious. Comment. Right. Well, this is very weird. This is very weird. I don't understand this.
I missed no screen.
I'm not understanding this.
I missed your screen a little bit. Okay, where were you? Which example?
I was over here. Okay, so the problem is if I say dissolve. I can't do that here because this doesn't have variables.
Yes, exactly. Yes. And we couldn't see. So the other point is then if you're going to get all the equations, do everything, then you're kind of handing everything to the user.
No, no, I know. I'm not suggesting we do that. I, I think that this is a good way that is really hang around state space model. Yes, right.
Yes.
I don't understand. What's the sine T doing input. Oh God.
These things, these are not like. Yeah, they need inputs. That's the whole point of these systems.
Why can't we do this in DSolve.
Because dissolve will not allow you. You need to specify your variables very explicitly and you can only solve for the very narrow range of variables which are themselves DISSOLVE value will allow arbitrary expressions. So you can do it over here. So you don't actually need.
Okay, look, look. The problem is the state space model is essentially a left hand side of an ode. Is that true?
It's full system.
No, no.
What's this then? This is a driving function.
Yes, it appears in the ode. Yes.
Right.
So, but this, but, but there is something. There's something that sits in. There might be more than one first of all, and there's some way that they come in and affect the state, which is that B matrix there. And the D matrix. The B matrix is how it affects the state and the D matrix is how it affects the output. This is super simple, one by one system.
Look, I really like the idea of sort of connecting these control system type things to our whole symbolic framework like this. I'm not totally convinced this is the right way to do it.
I'm not 100% either, but I, I wouldn't mind iterating one go with some, something experimental support.
Well, I know, but, but, but we need to cover this another time. But we're, we have. We're running out of time here. So I'm just trying to get some scope here.
Then they got Laplace convolve. So that's just the finite convolution from 0 to T instead of negative 10. So that's the one that interacts well with the Laplace transform. So convolve is on the whole real line, the integration and interacts with the Fourier transform. So what we're lacking was for a long time was a Laplace convol, which does kind of causal convolution.
I'm confused.
Well, the output, you know, a convolution is another way to, to describe what a system does. A filter does. You know, like why is there only.
I mean in this case it's F convolved G with X being the independent variable, right?
Yes. And.
Why is the new independent variable? It's like a matrix multiply type thing.
Okay, so why does this. So this has four arguments as well.
Yeah. The difference is. The difference is that doesn't do the full real line, it does the half line. So that means that.
Why did every orthogonal polynomial get one of these?
Say it again.
Why doesn't every orthogonal polynomial get one of these? Like a Bessel can bolve and a henkel can ball and so on. Or am I missing something?
I think it's just that those are not used exactly. I mean, who uses those?
It's really hard to compute them. It's very hard to compute them.
Who uses them, first of all? I mean, who cares?
Yeah, I'm just asking a question.
This is super used. Okay, so for all, you know, things that you know that have initial value and output, you typically don't want the output to depend on the future. It has to depend on the history.
The one sided integral as opposed to the convol, which is from minus infinity to infinity. Right.
And why do users keep asking for it?
This argument that goes zero to infinity or something, is that useful or not?
We discussed that. It looks like we're changing the kind of what the output means. So it looked like this was required on the continuous side because people would think convolved did what you're saying it went from zero to infinity, but it doesn't. So it's.
Is Laplace convolve the right name for the one that goes from.
Okay, so that's, that's. Actually there's a question there. If we do this, we have to do Z convolve, like for the discrete convolve.
Exactly.
Another potential naming convention could be.
Involved.
Or something causal or unilateral. I think are the two potential.
I mean, then you only need distinction between the discrete and the continuous case somehow.
I mean, I'd call it a one sided convolve, but maybe unilateral. I guess it's another way of saying unilateral.
We didn't call the Laplace transform two sided, we call it bilateral. Right?
Ah, yeah. Okay, so this again is going to need a bit more discussion. I get the point, but I mean, I don't understand why there isn't a fifth argument to convolve anyway that just gives. Or. Or you say it's only computable for the 0 infinity and minus infinity.
No, no, no, it's. It's not. But it's. I think that this is like one of these common utilities. It should be simple.
All right. Okay, fine.
Yeah. And yeah, we're writing a book which uses all the time, so I think it'd be good to have it built in and you know, consistent with the rest of the.
Okay, but is Laplace convolve the right thing? Monsieur Pierre Simon, whatever. What was his name?
Well, it's not a bad name.
Yeah. Okay.
As opposed to causal. I mean, we're going to have a bunch of other functions. All this multi computation stuff that I've been working on is going to have a whole bunch of causal this, that and the other functions.
Yeah, but you know that whole system modeler is acausal.
Yes, I know.
So. Yes. Like project. We'll have Laplace for the continuous case and Z for the discrete case. Then we have clear cut names which suggest what convolution they're good for. I mean like in this case, Laplace in the case zone. So in retrospect, maybe the first one should have been called Fourier convolve.
No, I don't know.
I mean, I'm just. We normally don't.
People.
People usually define the convolution and they call it convolve, but they define it secretly somewhere. So if you read a signal processing book, it's actually this Fourier convolve. Because they use.
Yeah.
Bilateral Z Laplace transform and Fourier transforms in control. And.
And I need to go something else. We. We need a. Another episode of this.
Okay.
All right.
All right.
See you guys soon. Thanks. Okay, bye.
Devendra and Adam, are we still having our meeting?
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






