Bertini 2 - C++ Core
Software for Numerical Algebraic Geometry
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) 2016 - 2021 by 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
22// individual authors of this file include:
23// silviana amethyst, university of wisconsin-eau claire
24
25
31
32#pragma once
33
34namespace bertini {
35 namespace node{
36 class Node;
37 }
38
39 namespace node{
40 class Variable;
41 class Integer;
42 class Float;
43 class Rational;
44 class Function;
45 class Jacobian;
46 class Differential;
47 }
48
49
50 namespace node{
51 class Operator;
52
53 class UnaryOperator;
54 class NaryOperator;
55
56 class SumOperator;
57 class MultOperator;
59 class PowerOperator;
60 class ExpOperator;
61 class LogOperator;
62 class NegateOperator;
63 class SqrtOperator;
64
65 class LinearProduct;
66 class DiffLinear;
67
68 }
69
70 namespace node{
71 class TrigOperator;
72
73 class SinOperator;
74 class ArcSinOperator;
75 class CosOperator;
76 class ArcCosOperator;
77 class TanOperator;
78 class ArcTanOperator;
79 }
80
81 namespace node{
82 namespace special_number{
83 class Pi;
84 class E;
85 }
86 }
87
88
89 namespace node{
90 template <typename Archive>
91 void register_derived_node_types(Archive& ar)
92 {
93 ar.template register_type<bertini::node::Variable>();
94 ar.template register_type<bertini::node::Integer>();
95 ar.template register_type<bertini::node::Float>();
96 ar.template register_type<bertini::node::Rational>();
97 ar.template register_type<bertini::node::Function>();
98 ar.template register_type<bertini::node::Jacobian>();
99 ar.template register_type<bertini::node::Differential>();
100 // ar.template register_type<bertini::node::Operator>(); // abstract type
101 // ar.template register_type<bertini::node::UnaryOperator>(); // abstract type
102 // ar.template register_type<bertini::node::NaryOperator>(); // abstract type
103 ar.template register_type<bertini::node::SumOperator>();
104 ar.template register_type<bertini::node::MultOperator>();
105 ar.template register_type<bertini::node::IntegerPowerOperator>();
106 ar.template register_type<bertini::node::PowerOperator>();
107 ar.template register_type<bertini::node::ExpOperator>();
108 ar.template register_type<bertini::node::LogOperator>();
109 ar.template register_type<bertini::node::NegateOperator>();
110 ar.template register_type<bertini::node::SqrtOperator>();
111 ar.template register_type<bertini::node::LinearProduct>();
112 // ar.template register_type<bertini::node::TrigOperator>(); // abstract type
113 ar.template register_type<bertini::node::SinOperator>();
114 ar.template register_type<bertini::node::ArcSinOperator>();
115 ar.template register_type<bertini::node::CosOperator>();
116 ar.template register_type<bertini::node::ArcCosOperator>();
117 ar.template register_type<bertini::node::TanOperator>();
118 ar.template register_type<bertini::node::ArcTanOperator>();
119 ar.template register_type<bertini::node::special_number::Pi>();
120 ar.template register_type<bertini::node::special_number::E>();
121 }
122 }
123}// namespace bertini
124
125
126
127
128
Provides the arc cosine Operator.
Definition trig.hpp:291
Provides the inverse sine Operator.
Definition trig.hpp:158
Provides the inverse tangent Operator.
Definition trig.hpp:426
Provides the cosine Operator.
Definition trig.hpp:225
Represents the differential of a single linear.
Definition linear_product.hpp:780
Provides the differential type for differentiation of expression trees.
Definition differential.hpp:62
represents the exponential function
Definition arithmetic.hpp:911
Number type for storing floating point numbers within an expression tree.
Definition number.hpp:250
Formal entry point into an expression tree.
Definition function.hpp:218
Signed real Integer storage in an expression tree.
Definition number.hpp:173
This class represents the exponentiation Operator.
Definition arithmetic.hpp:690
Defines the entry point into a Jacobian tree.
Definition jacobian.hpp:65
Represents a product of linears as leaves in the function tree.
Definition linear_product.hpp:60
represents the natural logarithm function
Definition arithmetic.hpp:977
Multiplication and division Operator.
Definition arithmetic.hpp:372
Abstract interface for n-ary Operator types.
Definition operator.hpp:169
The negation Operator.
Definition arithmetic.hpp:281
Abstract base class for the Bertini hybrid-precision (double-multiple) expression tree.
Definition node.hpp:142
Abstract Node type from which all Operators inherit.
Definition operator.hpp:58
Operator for power functions with arbitrary expressions in the exponent and base.
Definition arithmetic.hpp:539
The Rational number type for Bertini2 expression trees.
Definition number.hpp:323
Provides the sine Operator.
Definition trig.hpp:95
Represents the square root Operator.
Definition arithmetic.hpp:835
Represents summation and difference Operator.
Definition arithmetic.hpp:80
Provides the tangent Operator.
Definition trig.hpp:363
Abstract class for trigonometric Operator types.
Definition trig.hpp:56
Interface for all unary Operator types.
Definition operator.hpp:84
Represents variable leaves in the function tree.
Definition variable.hpp:59
The number .
Definition special_number.hpp:113
The number .
Definition special_number.hpp:67