|
Bertini 2 d882924 (2026-10-06 19:56 UTC)
Numerical algebraic geometry library (C++ core)
|
A System evaluation block whose functions are linear forms: f(x) = M x + b. More...
#include <stdexcept>#include <string>#include <tuple>#include "bertini2/num_traits.hpp"#include "bertini2/eigen_extensions.hpp"#include "bertini2/system/blocks/describe.hpp"Go to the source code of this file.
Classes | |
| class | bertini::blocks::LinearFormsBlock |
| A block of system functions, each an affine linear form f_i(x) = c_i . More... | |
Namespaces | |
| namespace | bertini |
| namespace | bertini::blocks |
A System evaluation block whose functions are linear forms: f(x) = M x + b.
This is the linear-algebra workhorse for the block-composed System: a stack of affine linear forms evaluated as one matrix-vector product, rather than as expanded scalar function-tree expressions. It is the natural home for linear slices, randomization / linear projections, and the linear conditions emitted by the bertini.linalg layer when the coefficients are concrete (multiprecision) numbers rather than symbolic.
Each function is
f_i(x) = ( c_{i} . [x ; 1] )
i.e. a single linear form whose last coefficient (the column past the variables) carries the constant term, so x is evaluated augmented with a trailing 1 – exactly the augmented convention of ProductsOfLinearsBlock, but with one factor per function instead of a product. Evaluation is a single matrix-vector multiply; the Jacobian is the constant coefficient matrix (its variable columns).
Mirrors the multiprecision-coefficient pattern of ProductsOfLinearsBlock: an mpfr master plus per-type working copies, with Precision() recasting the mpfr copy. bertini::Slice (system/slice.hpp) is a thin wrapper around this block.