next | previous | forward | backward | up | top | index | toc | Macaulay2 website
SLPexpressions :: makeSLProgram

makeSLProgram -- create a straight-line program

Synopsis

Description

This method returns an object of type SLProgram, which encodes a method for evaluating an algebraic circuit.

i1 : declareVariable X; declareVariable C;
i3 : XpC = X+C

o3 = (X + C)

o3 : SumGate
i4 : XXC = productGate{X,X,C}

o4 = (X * X * C)

o4 : ProductGate
i5 : detXCCX = detGate{{X,C},{C,X}}

o5 = det| X C |
        | C X |

o5 : DetGate
i6 : XoC = X/C

     X
o6 = -
     C

o6 : DivideGate
i7 : slp = makeSLProgram(matrix{{C,X}},matrix{{XXC,detXCCX,XoC,XpC+2}})

o7 = SLProgram{cache => CacheTable{}              }
               constant positions => {-3}
               constants => | 2 |
               number of inputs => 2
               number of outputs => 4
               RawSLProgram => SLProgram (
                                 consts+vars: 3
                                 noninput nodes: 5
                                 output nodes: 4
                                 )

               variable positions => {-1, -2}

o7 : SLProgram

See also

Ways to use makeSLProgram :

For the programmer

The object makeSLProgram is a method function.