Bertini 2 d882924 (2026-10-06 19:56 UTC)
Numerical algebraic geometry library (C++ core)
Loading...
Searching...
No Matches
forward_declares.hpp
Go to the documentation of this file.
1//This file is part of Bertini 2.
2//
3//include/bertini2/function_tree/forward_declares.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//include/bertini2/function_tree/forward_declares.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 include/bertini2/function_tree/forward_declares.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#pragma once
29
30namespace bertini {
31 namespace node{
32 class Node;
33 }
34
35 namespace node{
36 class Variable;
37 class Integer;
38 class Complex;
39 class Rational;
40 class NamedExpression;
41 class Differential;
42 }
43
44
45 namespace node{
46 class Operator;
47
48 class UnaryOperator;
49 class NaryOperator;
50
51 class SumOperator;
52 class MultOperator;
54 class PowerOperator;
55 class ExpOperator;
56 class LogOperator;
57 class NegateOperator;
58 class SqrtOperator;
59
60 }
61
62 namespace node{
63 class TrigOperator;
64
65 class SinOperator;
66 class ArcSinOperator;
67 class CosOperator;
68 class ArcCosOperator;
69 class TanOperator;
70 class ArcTanOperator;
71 }
72
73 namespace node{
74 namespace special_number{
75 class Pi;
76 class E;
77 }
78 }
79
80
81 namespace node{
83 template <typename Archive>
85 {
86 ar.template register_type<bertini::node::Variable>();
87 ar.template register_type<bertini::node::Integer>();
88 ar.template register_type<bertini::node::Complex>();
89 ar.template register_type<bertini::node::Rational>();
90 ar.template register_type<bertini::node::NamedExpression>();
91 ar.template register_type<bertini::node::Differential>();
92 // ar.template register_type<bertini::node::Operator>(); // abstract type
93 // ar.template register_type<bertini::node::UnaryOperator>(); // abstract type
94 // ar.template register_type<bertini::node::NaryOperator>(); // abstract type
95 ar.template register_type<bertini::node::SumOperator>();
96 ar.template register_type<bertini::node::MultOperator>();
97 ar.template register_type<bertini::node::IntegerPowerOperator>();
98 ar.template register_type<bertini::node::PowerOperator>();
99 ar.template register_type<bertini::node::ExpOperator>();
100 ar.template register_type<bertini::node::LogOperator>();
101 ar.template register_type<bertini::node::NegateOperator>();
102 ar.template register_type<bertini::node::SqrtOperator>();
103 // ar.template register_type<bertini::node::TrigOperator>(); // abstract type
104 ar.template register_type<bertini::node::SinOperator>();
105 ar.template register_type<bertini::node::ArcSinOperator>();
106 ar.template register_type<bertini::node::CosOperator>();
107 ar.template register_type<bertini::node::ArcCosOperator>();
108 ar.template register_type<bertini::node::TanOperator>();
109 ar.template register_type<bertini::node::ArcTanOperator>();
110 ar.template register_type<bertini::node::special_number::Pi>();
111 ar.template register_type<bertini::node::special_number::E>();
112 }
113 }
114}// namespace bertini
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
Abstract interface for n-ary Operator types.
Definition operator.hpp:159
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 Node type from which all Operators inherit.
Definition operator.hpp:48
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
Provides the tangent Operator.
Definition trig.hpp:332
Abstract class for trigonometric Operator types.
Definition trig.hpp:47
Interface for all unary Operator types.
Definition operator.hpp:74
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
Definition forward_declares.hpp:74
Definition canonical.hpp:56
void register_derived_node_types(Archive &ar)
Register all concrete Node types with a Boost.Serialization archive.
Definition forward_declares.hpp:84
Definition algorithm_builder.hpp:36