Cadabra
Computer algebra system for field theory problems
Indices.hh
Go to the documentation of this file.
1 
2 #pragma once
3 
4 #include "Props.hh"
5 
6 namespace 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;
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 
26  // List of possible values that indices of this type can take.
27  std::vector<Ex> values;
28 
29  private:
32 
33  void collect_index_values(Ex::iterator ind_values);
34  };
35 
36  }
cadabra::Indices::fixed
Definition: Indices.hh:24
cadabra::list_property
Something cannot be both a list property and a normal property at the same time, so we can safely inh...
Definition: Props.hh:192
cadabra::Indices::collect_index_values
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:123
cadabra::Kernel
Definition: Kernel.hh:15
cadabra::Indices::parent_name
std::string parent_name
Definition: Indices.hh:23
cadabra::Indices
Definition: Indices.hh:8
cadabra::Indices::latex
virtual void latex(std::ostream &) const override
Display the property on the stream.
Definition: Indices.cc:96
cadabra::Indices::unnamed_argument
virtual std::string unnamed_argument() const override
Definition: Indices.hh:13
cadabra::Indices::validate
virtual void validate(const Kernel &, const Ex &) const
Definition: Indices.cc:112
cadabra::Indices::position_t
position_t
Definition: Indices.hh:24
cadabra::Indices::Indices
Indices()
Definition: Indices.cc:11
cadabra::Indices::independent
Definition: Indices.hh:24
cadabra::Indices::parse
virtual bool parse(Kernel &, std::shared_ptr< Ex >, keyval_t &) override
Definition: Indices.cc:36
cadabra::property
FIXME: the above two need to be merged, because parse may need access to the actual pattern tree,...
Definition: Props.hh:126
cadabra::Indices::free
Definition: Indices.hh:24
Props.hh
cadabra::Indices::values
std::vector< Ex > values
Definition: Indices.hh:27
cadabra
Functions to handle the exchange properties of two or more symbols in a product.
Definition: Adjform.cc:83
cadabra::Ex
Definition: Storage.hh:140
cadabra::Indices::position_type
enum cadabra::Indices::position_t position_type
cadabra::keyval_t
Arguments to properties get parsed into a keyval_t structure.
Definition: Props.hh:67
cadabra::Indices::equals
virtual match_t equals(const property *) const override
Definition: Indices.cc:21
cadabra::Indices::name
virtual std::string name() const override
Definition: Indices.cc:16
cadabra::Indices::set_name
std::string set_name
Definition: Indices.hh:23
cadabra::property::match_t
match_t
Definition: Props.hh:169