Next: Constructors
Up: Straight-line Programs
Previous: Straight-line Programs
An instance f of the data type Slp is an SLP with type
SLP and a representation which contains the following information :
- Operator. This is one of NOP_FE,NOP_VAR,ADD,SUB, MULT, DIV, EXP,
DIFF. The NOP_FE operator implies that the Slp has no operator, i.e.
is a leaf in the d.a.g., representing a number. The NOP_VAR operator
also represents a leaf node, but containing a variable. The EXP
operator corresponds to the operation
^
, that is, the
operation (n of type int ) is represented by an EXP node with
left child the Slp node corresponding to a and right child a
node corresponding to the integer value n . The DIFF operator will
be explained below. - Pointers to the Slp's for the left and right child (i.e. the
operands).
- Pointer to a Field_element which stores the current value of the node after
an evaluation.
- An int value which represents the the last time the node was
evaluated. This is compared to the global value Slp::Eval_level
to check if the value is current.
- An array of derivatives of the Slp node w.r.t. the variables over
which the Slp is defined.
- An array of int flags which indicate which derivatives have
been computed.
- The anti-derivative of the current Slp (required for avoiding
exponential growth during the differentiation process)
- An int representing the degree of the Slp in a given variable.
- An int value representing the last time the degree was evaluated.
(This works similar to the evaluation process described above, except
we are interested in computing the degree of the Slp in a given variable.)
Ashu Rege
Fri May 9 17:57:21 PDT 1997