Bertini 2 d882924 (2026-10-06 19:56 UTC)
Numerical algebraic geometry library (C++ core)
Loading...
Searching...
No Matches
function_tree.hpp
Go to the documentation of this file.
1//This file is part of Bertini 2.
2//
3//function_tree.hpp is free software: you can redistribute it and/or modify
4//it under the terms of the GNU General Public License as published by
5//the Free Software Foundation, either version 3 of the License, or
6//(at your option) any later version.
7//
8//function_tree.hpp is distributed in the hope that it will be useful,
9//but WITHOUT ANY WARRANTY; without even the implied warranty of
10//MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11//GNU General Public License for more details.
12//
13//You should have received a copy of the GNU General Public License
14//along with function_tree.hpp. If not, see <http://www.gnu.org/licenses/>.
15//
16// Copyright(C) Bertini2 Development Team
17//
18// See <http://www.gnu.org/licenses/> for a copy of the license,
19// as well as COPYING. Bertini2 is provided with permitted
20// additional terms in the b2/licenses/ directory.
21
27
28
29#ifndef BERTINI_FUNCTION_TREE_HPP
30#define BERTINI_FUNCTION_TREE_HPP
31
33
35
38
39
44
46
48
50
51
52
53
54BOOST_CLASS_EXPORT_KEY(bertini::node::Node)
55
56BOOST_SERIALIZATION_ASSUME_ABSTRACT(bertini::node::Node)
57
58
59BOOST_CLASS_EXPORT_KEY(bertini::node::Symbol)
60BOOST_CLASS_EXPORT_KEY(bertini::node::NamedSymbol)
61BOOST_CLASS_EXPORT_KEY(bertini::node::Number)
62
63
64BOOST_SERIALIZATION_ASSUME_ABSTRACT(bertini::node::Symbol)
65BOOST_SERIALIZATION_ASSUME_ABSTRACT(bertini::node::NamedSymbol)
66BOOST_SERIALIZATION_ASSUME_ABSTRACT(bertini::node::Number)
67
68
69BOOST_CLASS_EXPORT_KEY(bertini::node::Variable)
70BOOST_CLASS_EXPORT_KEY(bertini::node::Differential)
71
72BOOST_CLASS_EXPORT_KEY(bertini::node::Complex)
73BOOST_CLASS_EXPORT_KEY(bertini::node::Integer)
74BOOST_CLASS_EXPORT_KEY(bertini::node::Rational)
75
76BOOST_CLASS_EXPORT_KEY(bertini::node::special_number::Pi)
77BOOST_CLASS_EXPORT_KEY(bertini::node::special_number::E)
78
79BOOST_CLASS_EXPORT_KEY(bertini::node::NamedExpression)
80
81BOOST_CLASS_EXPORT_KEY(bertini::node::SinOperator)
82BOOST_CLASS_EXPORT_KEY(bertini::node::ArcSinOperator)
83BOOST_CLASS_EXPORT_KEY(bertini::node::CosOperator)
84BOOST_CLASS_EXPORT_KEY(bertini::node::ArcCosOperator)
85BOOST_CLASS_EXPORT_KEY(bertini::node::TanOperator)
86BOOST_CLASS_EXPORT_KEY(bertini::node::ArcTanOperator)
87
88
89BOOST_CLASS_EXPORT_KEY(bertini::node::SumOperator)
90BOOST_CLASS_EXPORT_KEY(bertini::node::NegateOperator)
91BOOST_CLASS_EXPORT_KEY(bertini::node::MultOperator)
92BOOST_CLASS_EXPORT_KEY(bertini::node::PowerOperator)
93BOOST_CLASS_EXPORT_KEY(bertini::node::IntegerPowerOperator)
94BOOST_CLASS_EXPORT_KEY(bertini::node::SqrtOperator)
95BOOST_CLASS_EXPORT_KEY(bertini::node::ExpOperator)
96BOOST_CLASS_EXPORT_KEY(bertini::node::LogOperator)
97
98
99
100
101
102
103BOOST_CLASS_TRACKING(bertini::node::Node, track_always)
104
105BOOST_CLASS_TRACKING(bertini::node::Symbol, boost::serialization::track_always)
106BOOST_CLASS_TRACKING(bertini::node::NamedSymbol, boost::serialization::track_always)
107BOOST_CLASS_TRACKING(bertini::node::Number, boost::serialization::track_always)
108
109
110BOOST_CLASS_TRACKING(bertini::node::Variable, boost::serialization::track_always)
111BOOST_CLASS_TRACKING(bertini::node::Differential, boost::serialization::track_always)
112
113BOOST_CLASS_TRACKING(bertini::node::Complex, boost::serialization::track_always)
114BOOST_CLASS_TRACKING(bertini::node::Integer, boost::serialization::track_always)
115BOOST_CLASS_TRACKING(bertini::node::Rational, boost::serialization::track_always)
116
117BOOST_CLASS_TRACKING(bertini::node::special_number::Pi, boost::serialization::track_always)
118BOOST_CLASS_TRACKING(bertini::node::special_number::E, boost::serialization::track_always)
119
120BOOST_CLASS_TRACKING(bertini::node::NamedExpression, boost::serialization::track_always)
121
122BOOST_CLASS_TRACKING(bertini::node::SinOperator, boost::serialization::track_always)
123BOOST_CLASS_TRACKING(bertini::node::ArcSinOperator, boost::serialization::track_always)
124BOOST_CLASS_TRACKING(bertini::node::CosOperator, boost::serialization::track_always)
125BOOST_CLASS_TRACKING(bertini::node::ArcCosOperator, boost::serialization::track_always)
126BOOST_CLASS_TRACKING(bertini::node::TanOperator, boost::serialization::track_always)
127BOOST_CLASS_TRACKING(bertini::node::ArcTanOperator, boost::serialization::track_always)
128
129
130BOOST_CLASS_TRACKING(bertini::node::SumOperator, boost::serialization::track_always)
131BOOST_CLASS_TRACKING(bertini::node::NegateOperator, boost::serialization::track_always)
132BOOST_CLASS_TRACKING(bertini::node::MultOperator, boost::serialization::track_always)
133BOOST_CLASS_TRACKING(bertini::node::PowerOperator, boost::serialization::track_always)
134BOOST_CLASS_TRACKING(bertini::node::IntegerPowerOperator, boost::serialization::track_always)
135BOOST_CLASS_TRACKING(bertini::node::SqrtOperator, boost::serialization::track_always)
136BOOST_CLASS_TRACKING(bertini::node::ExpOperator, boost::serialization::track_always)
137
138
139
140
141
142#endif
Provides the artithmetic Node types, such as Sum and Power.
Provides the arc cosine Operator.
Definition trig.hpp:264
Provides the inverse sine Operator.
Definition trig.hpp:139
Provides the inverse tangent Operator.
Definition trig.hpp:391
A complex-number literal node in an expression tree.
Definition number.hpp:254
Provides the cosine Operator.
Definition trig.hpp:202
Provides the differential type for differentiation of expression trees.
Definition differential.hpp:52
represents the exponential function
Definition arithmetic.hpp:914
This class represents the exponentiation Operator.
Definition arithmetic.hpp:709
Signed real Integer storage in an expression tree.
Definition number.hpp:143
represents the natural logarithm function
Definition arithmetic.hpp:971
Multiplication and division Operator.
Definition arithmetic.hpp:379
A user-named expression — the surviving, immutable entry point into a subtree.
Definition named_expression.hpp:50
Symbols which have names are named symbols.
Definition symbol.hpp:121
The negation Operator.
Definition arithmetic.hpp:271
An interface for all nodes in a function tree, and for a function object as well.
Definition node.hpp:114
Abstract Number type from which other Numbers derive.
Definition number.hpp:50
Operator for power functions with arbitrary expressions in the exponent and base.
Definition arithmetic.hpp:559
The Rational number type for Bertini2 expression trees.
Definition number.hpp:379
Provides the sine Operator.
Definition trig.hpp:80
Represents the square root Operator.
Definition arithmetic.hpp:847
Represents summation and difference Operator.
Definition arithmetic.hpp:70
Abstract symbol class.
Definition symbol.hpp:47
Provides the tangent Operator.
Definition trig.hpp:332
Represents variable leaves in the function tree.
Definition variable.hpp:48
The number .
Definition special_number.hpp:115
The number .
Definition special_number.hpp:55
Free functions for discovering the variables appearing in a function tree.
A user-named expression node: prints as its name, evaluates to its expression.
Defines the abstract Node base class.
Provides the Number Node types, including Rational, Complex, and Integer.
Provides the abstract Operator Node type.
simplification methods for nodal functions
Provides the special numbers , , 1, 2, 0, as Nodes.
Defines the abstract Symbol and NamedSymbol classes,.
Provides the abstract TrigOperator, and the concrete types such as SinOperator.
Provides the Variable Node class.