axiom-developer
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Axiom-developer] Re: More AxiomUI


From: Bob McElrath
Subject: [Axiom-developer] Re: More AxiomUI
Date: Tue, 21 Jun 2005 14:05:11 -0700
User-agent: Mutt/1.5.6+20040523i

Kai Oliver Kaminski address@hidden wrote:
> What kind of dependency tracking would you need? Just within a single 
> page? For multiple pages? Send me use cases, tell me what you need.

I've been thinking about this a lot lately.

Mathematica seems to keep an array of input and output.  (In[] and
Out[]).  If we treat these as simple variables, dependency tracking
would be as simple as keeping a linked list among variables.  (e.g.
a "has" or "indeterminants" function)  In addition to that each variable
would need a "modified" flag.  Any time a "modified" flag is toggled,
axiom could traverse the dependency tree and mark outputs with a
"recompute" flag.

For example:

    (1) -> integrate(x+y^2*z, x)

               2    1  2
       (1)  x y z + - x
                    2
                                                Type: Polynomial Fraction 
Integer
Here (pseudo-code):
    in[1] = {
        value: "integrate(x+y^2*z,x)"
        indets: "y,z"
        modified: false
        recompute: false
    }
    out[1] = {
        value: "x*y^2*z+1/2*x^2"
        indets: in[1]
        modified: false
        recompute: false
    }

    (2) -> y:=3

       (2)  3
                                                            Type: 
PositiveInteger

Upon executing this, the code would search the dependency tree for
anything with "y" in "indets".  The "recompute" flag for in[1] would be
toggled, followed by the same flag for out[1].  Traversing the tree,
axiom should know to recompute in[1] (which puts its result in out[1]
and changes its recompute flag).  A user interface could choose to
highlight out[1] as needs-recomputing, or just go ahead and do it.
(spreadsheet-style)

--
Cheers,
Bob McElrath [Univ. of California at Davis, Department of Physics]

    "One of the best ways to get yourself a reputation as a dangerous citizen
    these days is to go about repeating the very phrases which our founding
    fathers used in the great struggle for independence." --Charles A. Beard

Attachment: signature.asc
Description: Digital signature


reply via email to

[Prev in Thread] Current Thread [Next in Thread]