Cadabra
Computer algebra system for field theory problems
Loading...
Searching...
No Matches
NEvaluator.hh
Go to the documentation of this file.
1
2#pragma once
3
4#include "Storage.hh"
5#include "NTensor.hh"
6#include "Compare.hh"
7
8namespace cadabra {
9
25
26 class NEvaluator {
27 public:
28 NEvaluator(const Ex&);
29
32 std::map<Ex::iterator, NTensor, Ex::iterator_base_less> subtree_values;
33
38 std::map<Ex::iterator, Ex::iterator, Ex::iterator_base_less> subtree_equalities;
39
44 public:
47 std::vector<Ex::iterator> locations;
48 };
49 std::vector<VariableValues> variable_values;
50 std::map<Ex, size_t, tree_exact_less_no_wildcards_obj> variable_values_locs;
51
54 void set_variable(const Ex&, const NTensor& val);
55
59
61
63
64 private:
66 };
67
68};
Basic storage class for symbolic mathemematical expressions.
Definition Storage.hh:142
The expression will get evaluated for a range of values for each unknown sub-expression (variable).
Definition NEvaluator.hh:43
Ex variable
Definition NEvaluator.hh:45
std::vector< Ex::iterator > locations
Definition NEvaluator.hh:47
NTensor values
Definition NEvaluator.hh:46
Functionality to numerically evaluate a scalar expression, give the values of its building blocks.
Definition NEvaluator.hh:26
std::vector< VariableValues > variable_values
Definition NEvaluator.hh:49
std::map< Ex::iterator, NTensor, Ex::iterator_base_less > subtree_values
If we know the value of a subtree explicitly as a number, it is stored in this map.
Definition NEvaluator.hh:32
Ex ex
Definition NEvaluator.hh:65
void find_variable_locations()
PRIVATE:
Definition NEvaluator.cc:240
std::map< Ex::iterator, Ex::iterator, Ex::iterator_base_less > subtree_equalities
If we know the value of a subtree is equal to another subtree (either in the same expression or anoth...
Definition NEvaluator.hh:38
std::map< Ex, size_t, tree_exact_less_no_wildcards_obj > variable_values_locs
Definition NEvaluator.hh:50
NTensor evaluate()
Evaluate the expression, using the variable values set in set_variable.
Definition NEvaluator.cc:21
void set_variable(const Ex &, const NTensor &val)
Set the range of values which we want to insert into the indicated variable.
Definition NEvaluator.cc:223
Definition NTensor.hh:14
Functions to handle the exchange properties of two or more symbols in a product.
Definition Adjform.cc:83
void set(rset_t::iterator &num, multiplier_t fac)
Definition Storage.cc:1064