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

◆ specialize() [1/2]

template<typename RT>
SLEvaluator * SLEvaluatorConcrete< RT >::specialize ( const MutableMat< DMat< RT > > * parameters) const

Definition at line 162 of file SLP-imp.hpp.

164{
165 size_t nNewParams = parameters->n_rows();
166 if (parameters->n_cols() != 1 || nNewParams > nInputs)
167 throw exc::engine_error("1-column matrix expected; or #parameters > #vars");
169 if (isCompiled) {
171 e->nInputs -= nNewParams;
172 delete[] e->parametersAndInputs;
175 for (int i = 0; i < nNewParams; ++i)
176 ring().set(e->parametersAndInputs[nParams+i], parameters->getMat().entry(i, 0));
177 }
178 else {
179 for (int i = 0; i < nNewParams; ++i)
180 ring().set(e->values[varsPos[i]], parameters->getMat().entry(i, 0));
181 e->varsPos.erase(e->varsPos.begin(), e->varsPos.begin() + nNewParams);
182 e->nInputs = e->varsPos.size();
184 }
185 return e;
186}
std::vector< SLProgram::GATE_POSITION > varsPos
!! can we make it a reference???
Definition SLP-defs.hpp:283
const RT & ring() const
Definition SLP-defs.hpp:319
std::vector< ElementType > values
Definition SLP-defs.hpp:337
ElementType * parametersAndInputs
Definition SLP-defs.hpp:344
SLEvaluatorConcrete(const SLEvaluatorConcrete< RT > &)
Definition SLP-imp.hpp:103
typename RT::ElementType ElementType
Definition SLP-defs.hpp:328

References isCompiled, nInputs, nParams, parametersAndInputs, ring(), SLEvaluatorConcrete(), values, and SLEvaluator::varsPos.