Bertini 2 d882924 (2026-10-06 19:56 UTC)
Numerical algebraic geometry library (C++ core)
Loading...
Searching...
No Matches
polynomial_block.hpp File Reference

The evaluation block holding the classic polynomial path: function-tree functions (and their derivatives) and/or the compiled straight-line program. More...

#include <vector>
#include <memory>
#include <boost/serialization/access.hpp>
#include <boost/serialization/vector.hpp>
#include <boost/serialization/shared_ptr.hpp>
#include "bertini2/num_traits.hpp"
#include "bertini2/eigen_extensions.hpp"
#include "bertini2/function_tree.hpp"
#include "bertini2/function_tree/reintern.hpp"
#include "bertini2/system/straight_line_program.hpp"
Include dependency graph for polynomial_block.hpp:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

class  bertini::blocks::PolynomialBlock
 The polynomial evaluation block: function trees + derivatives + SLP. More...

Namespaces

namespace  bertini
namespace  bertini::blocks

Detailed Description

The evaluation block holding the classic polynomial path: function-tree functions (and their derivatives) and/or the compiled straight-line program.

This is the fold of System's historical functions_ / slp_ / eval_method_ machinery into a first-class block, so a System becomes a uniform loop over blocks ("everything is a block"). It owns the function trees, their differentiation, and the SLP, and it carries the system's variable ordering + path variable (the function-tree Jacobian/time-derivative evaluate node trees through them). It is value-in: each Eval/Jacobian/TimeDeriv sets the variables (and path value) from its arguments, then evaluates.

The SLP it can compile itself: SLPCompiler reads exactly the variable ordering, path variable, functions, and derivatives this block owns (see SLPCompiler::Compile).