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

Abstract Number type from which other Numbers derive. More...

#include <number.hpp>

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

Public Member Functions

int Degree (std::shared_ptr< Variable > const &v=nullptr) const override
 Get the degree of this node.
 
int Degree (VariableGroup const &vars) const override
 Get the degree of this node.
 
std::shared_ptr< Node > Differentiate (std::shared_ptr< Variable > const &v=nullptr) const override
 Differentiate a number.
 
void Homogenize (VariableGroup const &vars, std::shared_ptr< Variable > const &homvar) override
 Homogenize this node.
 
bool IsHomogeneous (std::shared_ptr< Variable > const &v=nullptr) const override
 Is this node homogeneous?
 
bool IsHomogeneous (VariableGroup const &vars) const override
 
std::vector< int > MultiDegree (VariableGroup const &vars) const override
 Get the multidegree of this node.
 
void precision (unsigned int prec) const override
 
void Reset () const override
 
- 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 void print (std::ostream &target) const =0
 
virtual unsigned ReduceDepth ()
 A mutating function which finds ways to reduce the depth of the tree.
 

Additional Inherited Members

- Protected Member Functions inherited from bertini::node::Node
virtual void FreshEval_d (dbl &evaluation_value, std::shared_ptr< Variable > const &) const =0
 
virtual dbl FreshEval_d (std::shared_ptr< Variable > const &) const =0
 
virtual void FreshEval_mp (mpfr_complex &evaluation_value, std::shared_ptr< Variable > const &) const =0
 
virtual mpfr_complex FreshEval_mp (std::shared_ptr< Variable > const &) const =0
 
void ResetStoredValues () const
 
- 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

Abstract Number type from which other Numbers derive.

This class represents constant leaves to a function tree. FreshEval simply returns the value of the constant.

Member Function Documentation

◆ Degree() [1/2]

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

Get the degree of this node.

The degree of a number is always 0. It's a number.

Implements bertini::node::Node.

◆ Degree() [2/2]

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

Get the degree of this node.

The degree of a number is always 0. It's a number.

Implements bertini::node::Node.

◆ Differentiate()

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

Differentiate a number.

Implements bertini::node::Node.

◆ Homogenize()

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

Homogenize this node.

Homogenization of a number is a trivial operation. Don't do anything.

Implements bertini::node::Node.

◆ IsHomogeneous() [1/2]

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

Is this node homogeneous?

Numbers are always homogeneous

Implements bertini::node::Node.

◆ IsHomogeneous() [2/2]

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

Check for homogeneity, with respect to a variable group.

Implements bertini::node::Node.

◆ MultiDegree()

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

Get the multidegree of this node.

The degree of a number is always 0. It's a number.

Implements bertini::node::Node.

◆ precision()

void bertini::node::Number::precision ( unsigned int prec) const
overridevirtual

Change the precision of this variable-precision tree node.

Parameters
precthe number of digits to change precision to.

Implements bertini::node::Node.

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

◆ Reset()

void bertini::node::Number::Reset ( ) const
overridevirtual

Tells code to run a fresh eval on node next time.

Implements bertini::node::Node.


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