Cadabra
Computer algebra system for field theory problems
Loading...
Searching...
No Matches
Indices.hh
Go to the documentation of this file.
1
2#pragma once
3
4#include "Props.hh"
5
6namespace cadabra {
7
8 class Indices : public list_property {
9 public:
10 Indices(); //const std::string& parent="");
11 virtual bool parse(Kernel&, std::shared_ptr<Ex>, keyval_t&) override;
12 virtual std::string name() const override;
13 virtual std::string unnamed_argument() const override
14 {
15 return "name";
16 };
17 virtual match_t equals(const property *) const override;
18 virtual void validate(const Kernel&, const Ex&) const override;
19
20 // virtual void display(std::ostream&) const override;
21 virtual void latex(std::ostream&) const override;
22
23 std::string set_name, parent_name;
25
31 const std::vector<Ex>& values(const Properties&, Ex::iterator) const;
32
33 private:
36
37 void collect_index_values(Ex::iterator ind_values);
38
39 // Explicit store of index values;
40 mutable std::vector<Ex> values_;
41 };
42
43 }
Basic storage class for symbolic mathemematical expressions.
Definition Storage.hh:142
Definition Indices.hh:8
std::vector< Ex > values_
Definition Indices.hh:40
enum cadabra::Indices::position_t position_type
Indices()
Definition Indices.cc:13
position_t
Definition Indices.hh:24
@ fixed
Definition Indices.hh:24
@ independent
Definition Indices.hh:24
@ free
Definition Indices.hh:24
virtual std::string unnamed_argument() const override
Definition Indices.hh:13
virtual std::string name() const override
Definition Indices.cc:18
virtual void latex(std::ostream &) const override
Display the property on the stream.
Definition Indices.cc:132
std::string set_name
Definition Indices.hh:23
const std::vector< Ex > & values(const Properties &, Ex::iterator) const
List of possible values that indices of this type can take.
Definition Indices.cc:167
virtual match_t equals(const property *) const override
Definition Indices.cc:23
std::string parent_name
Definition Indices.hh:23
virtual bool parse(Kernel &, std::shared_ptr< Ex >, keyval_t &) override
Definition Indices.cc:38
void collect_index_values(Ex::iterator ind_values)
Given the right-hand side of a 'values={...}' node, generate a list of all index values in index_valu...
Definition Indices.cc:198
virtual void validate(const Kernel &, const Ex &) const override
Definition Indices.cc:187
Definition Kernel.hh:15
Class holding a collection of properties attached to expressions.
Definition Props.hh:237
Arguments to properties get parsed into a keyval_t structure.
Definition Props.hh:68
Something cannot be both a list property and a normal property at the same time, so we can safely inh...
Definition Props.hh:193
Base class for all properties, handling argument parsing and defining the interface.
Definition Props.hh:127
match_t
Definition Props.hh:170
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