Logo Search packages:      
Sourcecode: cadabra version File versions

decompose Class Reference

#include <linear.hh>

Inheritance diagram for decompose:


List of all members.

Detailed Description

Decompose a tensor monomial on a basis of monomials constructed before.

Definition at line 44 of file linear.hh.

Public Types

enum  global_success_t {
  g_not_yet_started = 0, g_arguments_accepted = 1, g_operand_determined = 2, g_applied = 4,
  g_apply_failed = 6
typedef exptree::iterator iterator
enum  result_t { l_no_action, l_applied, l_error }
typedef exptree::sibling_iterator sibling_iterator

Public Member Functions

void apply (unsigned int last_used_equation_number, bool multiple, bool until_nochange, bool make_copy, int act_at_level=-1, bool called_by_manipulator=false)
virtual result_t apply (sibling_iterator &, sibling_iterator &)
virtual result_t apply (iterator &)
bool apply_recursive (iterator &, bool check_consistency=true, int act_at_level=-1, bool called_by_manipulator=false, bool until_nochange=false)
sibling_iterator args_begin () const
sibling_iterator args_end () const
virtual bool can_apply (sibling_iterator, sibling_iterator)
virtual bool can_apply (iterator)
bool check_consistency (iterator) const
bool check_index_consistency (iterator) const
 decompose (exptree &, iterator)
virtual void description () const
bool has_argument (const std::string &) const
unsigned int number_of_args () const
void report_progress (const std::string &, int todo, int done, int count=2)

Public Attributes

bool discard_command_node
unsigned int equation_number
bool expression_modified
global_success_t global_success
unsigned int number_of_calls
unsigned int number_of_modifications
exptree_output::output_format_t output_format
stopwatch report_progress_stopwatch
iterator subtree
bool suppress_normal_output
iterator this_command

Static Public Attributes

static stopwatch get_dummy_sw
static stopwatch index_sw

Protected Types

typedef std::multimap< exptree,
tree_exact_less_no_wildcards_mod_prel_obj > 
 A map from a pattern to the position where it occurs in the tree.
typedef std::map
< exptree::iterator, int,
 A map from the position of each index to the sequential index.
typedef std::pair
< sibling_iterator,
 Finding objects in sets.
typedef std::vector< range_t > range_vector_t

Protected Member Functions

void add_element_to_basis (exptree &, exptree::iterator)
void classify_add_index (iterator it, index_map_t &ind_free, index_map_t &ind_dummy) const
void classify_indices (iterator, index_map_t &ind_free, index_map_t &ind_dummy) const
void classify_indices_up (iterator, index_map_t &ind_free, index_map_t &ind_dummy) const
bool contains (sibling_iterator from, sibling_iterator to, sibling_iterator arg)
void determine_intersection (index_map_t &one, index_map_t &two, index_map_t &target, bool move_out=false) const
void fill_index_position_map (iterator, const index_map_t &, index_position_map_t &) const
void fill_map (index_map_t &, sibling_iterator, sibling_iterator) const
range_vector_t::iterator find_arg_superset (range_vector_t &, sibling_iterator it)
template<class Iter>
range_vector_t::iterator find_arg_superset (range_vector_t &, Iter st, Iter nd)
void find_argument_lists (range_vector_t &, bool only_comma_lists=true) const
exptree get_dummy (const list_property *, iterator, iterator) const
exptree get_dummy (const list_property *, iterator) const
exptree get_dummy (const list_property *, const index_map_t *m1, const index_map_t *m2=0, const index_map_t *m3=0, const index_map_t *m4=0, const index_map_t *m5=0) const
int index_parity (iterator) const
template<class BinaryPredicate>
unsigned int intersection_number (sibling_iterator, sibling_iterator, sibling_iterator, sibling_iterator, BinaryPredicate) const
bool is_single_term (iterator)
int max_numbered_name (const std::string &, const index_map_t *m1, const index_map_t *m2=0, const index_map_t *m3=0, const index_map_t *m4=0, const index_map_t *m5=0) const
int max_numbered_name_one (const std::string &nm, const index_map_t *one) const
void node_integer (iterator, int)
void node_one (iterator)
void node_zero (iterator)
void print_classify_indices (iterator) const
bool prod_unwrap_single_term (iterator &)
bool prod_wrap_single_term (iterator &)
void pushup_multiplier (iterator)
bool rename_replacement_dummies (iterator, bool still_inside_algo=false)

Static Protected Member Functions

static bool equal_without_numbers (nset_t::iterator, nset_t::iterator)
static bool less_without_numbers (nset_t::iterator, nset_t::iterator)

Protected Attributes

sibling_iterator args_begin_
sibling_iterator args_end_
std::vector< std::vector
< multiplier_t > > 
bool dont_iterate
unsigned int last_used_equation_number
std::vector< std::pair
< sibling_iterator,
sibling_iterator > > 
iterator previous_expression
std::vector< exptree > terms_from_yp
exptree & tr

The documentation for this class was generated from the following files:

Generated by  Doxygen 1.6.0   Back to index