Bertini 2 - C++ Core
Software for Numerical Algebraic Geometry
Loading...
Searching...
No Matches
bertini::node::DiffLinear Class Reference

Represents the differential of a single linear. More...

#include <linear_product.hpp>

Inheritance diagram for bertini::node::DiffLinear:
[legend]
Collaboration diagram for bertini::node::DiffLinear:
[legend]

Public Member Functions

int Degree (std::shared_ptr< Variable > const &v=nullptr) const override
 Computes the degree for a particular variable. If that variable is part of the linear product, the degree is equal to the number of factors.
 
int Degree (VariableGroup const &vars) const override
 Computer the degree for a particular group of variables. If one of the variables is a part of the linear product, the degree is equal to the number of factors.
 
std::shared_ptr< Node > Differentiate (std::shared_ptr< Variable > const &v=nullptr) const override
 
void Homogenize (VariableGroup const &vars, std::shared_ptr< Variable > const &homvar) override
 Homogenize a sum, with respect to a variable group, and using a homogenizing variable.
 
bool IsHomogeneous (std::shared_ptr< Variable > const &v=nullptr) const override
 
bool IsHomogeneous (VariableGroup const &vars) const override
 Check for homogeneity, with respect to a variable group. If vars is the same variable group as the one used to create the linear product, and it has been homogenized, then return true.
 
std::vector< int > MultiDegree (VariableGroup const &vars) const override
 Compute the multidegree with respect to a variable group. This is for homogenization, and testing for homogeneity.
 
virtual void precision (unsigned int prec) const override
 
void print (std::ostream &target) const override
 
void Reset () const override
 Reset variable values in this node.
 
- Public Member Functions inherited from bertini::node::Symbol
unsigned EliminateOnes () override
 A transform function, which eliminates nodes from the tree.
 
unsigned EliminateZeros () override
 A transform function, which eliminates nodes from the tree.
 
- Public Member Functions inherited from bertini::node::Node
template<typename T>
T Eval (std::shared_ptr< Variable > const &diff_variable=nullptr) const
 
template<typename T>
void EvalInPlace (T &eval_value, std::shared_ptr< Variable > const &diff_variable=nullptr) const
 
bool IsPolynomial (std::shared_ptr< Variable > const &v=nullptr) const
 
bool IsPolynomial (VariableGroup const &v) const
 
virtual unsigned ReduceDepth ()
 A mutating function which finds ways to reduce the depth of the tree.
 

Protected Member Functions

void FreshEval_d (dbl &evaluation_value, std::shared_ptr< Variable > const &diff_variable) const override
 Evaluation of linear product node IN PLACE. Returns evaluation value.
 
dbl FreshEval_d (std::shared_ptr< Variable > const &diff_variable) const override
 Evaluation of linear product node. Returns evaluation value.
 
void FreshEval_mp (mpfr_complex &evaluation_value, std::shared_ptr< Variable > const &diff_variable) const override
 Evaluation of linear product node IN PLACE. Returns evaluation value.
 
mpfr_complex FreshEval_mp (std::shared_ptr< Variable > const &diff_variable) const override
 Evaluation of linear product node. Returns evaluation value.
 
- Protected Member Functions inherited from bertini::node::Node
void ResetStoredValues () const
 

Additional Inherited Members

- Static Protected Member Functions inherited from bertini::VisitableBase< RetT, CatchAll >
template<typename T>
static VisitReturnType AcceptBase (T &visited, VisitorBase &guest)
 Abstract method for how to accept a visitor.
 

Detailed Description

Represents the differential of a single linear.

This class represents a linear of differentials. This is the result of differentiating a single linear node.

Member Function Documentation

◆ Degree() [1/2]

int bertini::node::DiffLinear::Degree ( std::shared_ptr< Variable > const & v = nullptr) const
inlineoverridevirtual

Computes the degree for a particular variable. If that variable is part of the linear product, the degree is equal to the number of factors.

Parameters
vThe variable we are determining the degree with respect to.
Returns
Degree of polynomial with respect to variable v.

Implements bertini::node::Node.

◆ Degree() [2/2]

int bertini::node::DiffLinear::Degree ( VariableGroup const & vars) const
inlineoverridevirtual

Computer the degree for a particular group of variables. If one of the variables is a part of the linear product, the degree is equal to the number of factors.

Parameters
varsThe group of variables we are determing the degree with respect to.
Returns
Degree of polynomial with respect to variable group.

Implements bertini::node::Node.

◆ Differentiate()

std::shared_ptr< Node > bertini::node::DiffLinear::Differentiate ( std::shared_ptr< Variable > const & v = nullptr) const
inlineoverridevirtual

Return SumOperator whose children are derivatives of children_

Implements bertini::node::Node.

◆ FreshEval_d() [1/2]

void bertini::node::DiffLinear::FreshEval_d ( dbl & evaluation_value,
std::shared_ptr< Variable > const & diff_variable ) const
inlineoverrideprotectedvirtual

Evaluation of linear product node IN PLACE. Returns evaluation value.

Parameters
evaluation_valueThe in place variable that stores the evaluation.
diff_variableVariable that we are differentiating with respect to. Only for evaluating Jacobians.

Implements bertini::node::Node.

◆ FreshEval_d() [2/2]

dbl bertini::node::DiffLinear::FreshEval_d ( std::shared_ptr< Variable > const & diff_variable) const
inlineoverrideprotectedvirtual

Evaluation of linear product node. Returns evaluation value.

Parameters
diff_variableVariable that we are differentiating with respect to. Only for evaluating Jacobians.

Implements bertini::node::Node.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ FreshEval_mp() [1/2]

void bertini::node::DiffLinear::FreshEval_mp ( mpfr_complex & evaluation_value,
std::shared_ptr< Variable > const & diff_variable ) const
inlineoverrideprotectedvirtual

Evaluation of linear product node IN PLACE. Returns evaluation value.

Parameters
evaluation_valueThe in place variable that stores the evaluation.
diff_variableVariable that we are differentiating with respect to. Only for evaluating Jacobians.

Implements bertini::node::Node.

◆ FreshEval_mp() [2/2]

mpfr_complex bertini::node::DiffLinear::FreshEval_mp ( std::shared_ptr< Variable > const & diff_variable) const
inlineoverrideprotectedvirtual

Evaluation of linear product node. Returns evaluation value.

Parameters
diff_variableVariable that we are differentiating with respect to. Only for evaluating Jacobians.

Implements bertini::node::Node.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ Homogenize()

void bertini::node::DiffLinear::Homogenize ( VariableGroup const & vars,
std::shared_ptr< Variable > const & homvar )
inlineoverridevirtual

Homogenize a sum, with respect to a variable group, and using a homogenizing variable.

Parameters
varsVariable group to homogenize with respect to.
homvarHomogenization variable.

Implements bertini::node::Node.

◆ IsHomogeneous() [1/2]

bool bertini::node::DiffLinear::IsHomogeneous ( std::shared_ptr< Variable > const & v = nullptr) const
inlineoverridevirtual

Check for homogeneity, absolutely with respect to all variables, including path variables and all other variable types, or with respect to a single varaible, if passed.

Returns
True if it is homogeneous, false if not.

Implements bertini::node::Node.

◆ IsHomogeneous() [2/2]

bool bertini::node::DiffLinear::IsHomogeneous ( VariableGroup const & vars) const
inlineoverridevirtual

Check for homogeneity, with respect to a variable group. If vars is the same variable group as the one used to create the linear product, and it has been homogenized, then return true.

Parameters
varsVariable group to check if homogenous with respect to.
Returns
boolean.

Implements bertini::node::Node.

◆ MultiDegree()

std::vector< int > bertini::node::DiffLinear::MultiDegree ( VariableGroup const & vars) const
inlineoverridevirtual

Compute the multidegree with respect to a variable group. This is for homogenization, and testing for homogeneity.

Parameters
varsThe variable group computing degree with respect to.
Returns
Multidegree vector of polynomial with repect to variable group.

Implements bertini::node::Node.

◆ precision()

virtual void bertini::node::DiffLinear::precision ( unsigned int prec) const
inlineoverridevirtual

Change the precision of this variable-precision tree node.

Parameters
precthe number of digits to change precision to.

Implements bertini::node::Node.

◆ print()

void bertini::node::DiffLinear::print ( std::ostream & target) const
overridevirtual

Method for printing to output stream

Implements bertini::node::Node.

◆ Reset()

void bertini::node::DiffLinear::Reset ( ) const
inlineoverridevirtual

Reset variable values in this node.

Implements bertini::node::Node.

Here is the call graph for this function:

The documentation for this class was generated from the following files: