Macaulay2 Engine
Loading...
Searching...
No Matches

◆ make() [2/2]

template<class Field>
SLP< Field > * SLP< Field >::make ( const PolyRing * R,
ring_elem e )
static

Definition at line 289 of file NAG.cpp.

318 {
320 res->node_index.push_back(prog.size());
321 prog.push_back(slpMULTIsum);
322 prog.push_back(0); // sum with zero summands
323 }
324
325 // make program
327 prog.size() + 2 /* accounts for lines +2,+3 */ + SLP_HEADER_LEN);
328 res->program->array[0] = res->num_consts =
329 static_cast<int>(consts.size());
330 prog.push_back(slpEND);
331 prog.push_back(out + res->num_consts +
332 res->num_inputs); // position of the output
333
334 res->program->array[1] = res->num_inputs;
335 res->program->array[2] = res->rows_out;
336 res->program->array[3] = res->cols_out;
338 prog.data(),
339 sizeof(int) * prog.size());
340
341 // make nodes: [constants, inputs, operations]
344 for (int i = 0; i < res->num_consts; i++)
345 {
346 res->nodes[i] = consts[i];
347 }
348 }
349 return res;
350}
int rows_out
Definition NAG.hpp:502
int cols_out
Definition NAG.hpp:502
int num_operations
Definition NAG.hpp:502
M2_arrayint program
Definition NAG.hpp:498
static void make_nodes(element_type *&, int size)
Definition NAG.cpp:162
int num_inputs
Definition NAG.hpp:502
element_type * nodes
Definition NAG.hpp:499
int num_consts
Definition NAG.hpp:502
gc_vector< int > node_index
Definition NAG.hpp:500
Definition NAG.hpp:485
M2_arrayint M2_makearrayint(int n)
Definition m2-types.cpp:6

References C, cast_to_CCC(), cols_out, Ring::copy(), ERROR, ring_elem::get_poly(), is_relative_position, M2_makearrayint(), make_nodes(), MAX_NUM_SLPs, monomials_to_conventional_expvectors(), node_index, nodes, num_consts, num_inputs, num_operations, num_slps, poly_to_horner_slp(), program, FreeModule::R, rows_out, SLP(), SLP_HEADER_LEN, slpEND, slpMULTIsum, and ZERO_CONST.

Referenced by StraightLineProgram::make(), and StraightLineProgram::make().