-
Notifications
You must be signed in to change notification settings - Fork 26
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Move Expr's Deriv
into DisplayExpr
#2628
Comments
Started work on this, and I'm noticing that |
Wrapper to. Or strict super-set. And it might indeed have 2 extra parts, new expressions and defines. |
I just wanted to give a quick update about this ticket. Moving
Hopefully with this large change, it will be easier to move the integration and continuous intervals into DisplayExpr. |
Adding @cd155 to the discussion. My thought was that most differential equations would end up in But I guess that the issue is that we define some quantities by using derivatives? i.e. acceleration as derivative of velocity? We really do want that in our expressions, and not just for display. Maybe we need The other possibility is to move from recursive representations (like |
Great idea! That's a good connection I overlooked. The majority of the non-function-related
Yes, for the ones that were of the form
Yes! I agree. I think that we will also need to push the
Thanks, I will read this paper. I will follow up here after. |
This ticket will need to be split up into multiple PRs so that it's not too ridiculous to review. Approximately,
|
We have some DataDefinitions that currently contain |
We want to maximize re-usability, which for the new organization means using |
Small update after today's meeting: @smiths brought up some great points that I believed cleared up some things for me here.
Regarding (1),
Should we still make |
@balacij thank you for the summary of our meeting discussion and the material you have extrapolated from the discussion. You are correct that I said that The example we discussed was for a simple rigid body motion problem. For this example, we can think of the problem in 1D. We have the following theory: T1. F = ma Associated with this, we have the data definitions: D1. a = dv/dt From this information, we find a refined theory model, what we have been calling the instance model: T2. d^2s/dt^2 = F/m, together with initial conditions We then have requirements: R1. Input F, m, the initial position and the initial velocity The requirement actually tell us what code we need to generate -- code to collect the inputs, code to solve the ODE and code to output the results. This is why I suggested that we only need to worry about instance model for code generation. However, as we discussed further, I realized there could be another requirement: R4. Output v To calculate v we need D2, so data definitions do sometimes turn into code. I'm sure as we think further about it, we will see further examples. I think GlassBR also has examples that turn into code. I think some of the data definitions become code. For GlassBR we could probably recharacterize those definitions as theories. What we need to do is really solidify what we mean by theory and definition. I'd like to add to that that we should understand requirements and the connection between the SRS pieces and generated code. |
@smiths My apologies for the misunderstanding. I think I will need to spend a bit of time going through GlassBR's DDs and understand how this is handled. Thank you for the clarification! |
@balacij there is nothing to apologize for. I did say what you remembered hearing, but I changed my mind. 😄 Our understanding on this topic is going to continue to evolve. |
In many ways, there is very little difference between a "data definition" and a "quantity definition" (i.e. type So the first thing to do would be to look at the "payload" of both of these things, i.e. all the fields (recursively) of both. We should then make sure that the fields they have in common mean the same thing, and then explain the differences in the other fields. That will let us know how to move forward. There will still be some sort of difference between them, but it might be slight. |
We might need to convert DisplayExpr from the existing style of wrapping things into a 1-1 clone of Expr.
The text was updated successfully, but these errors were encountered: