X-Git-Url: https://www.ginac.de/ginac.git//ginac.git?p=ginac.git;a=blobdiff_plain;f=ginac%2Findexed.h;h=21fe777dd73b6b0b507d85332be9a4253cee0961;hp=ba7382857bb2f16ed8c88bac8a96ec6387af3805;hb=HEAD;hpb=cca88b51436e4b654d16a4d60cd0d1c66fcf5dd6 diff --git a/ginac/indexed.h b/ginac/indexed.h index ba738285..c66bcea6 100644 --- a/ginac/indexed.h +++ b/ginac/indexed.h @@ -3,7 +3,7 @@ * Interface to GiNaC's indexed expressions. */ /* - * GiNaC Copyright (C) 1999-2014 Johannes Gutenberg University Mainz, Germany + * GiNaC Copyright (C) 1999-2024 Johannes Gutenberg University Mainz, Germany * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -48,23 +48,20 @@ class indexed : public exprseq public: /** Construct indexed object with no index. * - * @param b Base expression - * @return newly constructed indexed object */ + * @param b Base expression */ indexed(const ex & b); /** Construct indexed object with one index. The index must be of class idx. * * @param b Base expression - * @param i1 The index - * @return newly constructed indexed object */ + * @param i1 The index */ indexed(const ex & b, const ex & i1); /** Construct indexed object with two indices. The indices must be of class idx. * * @param b Base expression * @param i1 First index - * @param i2 Second index - * @return newly constructed indexed object */ + * @param i2 Second index */ indexed(const ex & b, const ex & i1, const ex & i2); /** Construct indexed object with three indices. The indices must be of class idx. @@ -72,8 +69,7 @@ public: * @param b Base expression * @param i1 First index * @param i2 Second index - * @param i3 Third index - * @return newly constructed indexed object */ + * @param i3 Third index */ indexed(const ex & b, const ex & i1, const ex & i2, const ex & i3); /** Construct indexed object with four indices. The indices must be of class idx. @@ -82,8 +78,7 @@ public: * @param i1 First index * @param i2 Second index * @param i3 Third index - * @param i4 Fourth index - * @return newly constructed indexed object */ + * @param i4 Fourth index */ indexed(const ex & b, const ex & i1, const ex & i2, const ex & i3, const ex & i4); /** Construct indexed object with two indices and a specified symmetry. The @@ -92,8 +87,7 @@ public: * @param b Base expression * @param symm Symmetry of indices * @param i1 First index - * @param i2 Second index - * @return newly constructed indexed object */ + * @param i2 Second index */ indexed(const ex & b, const symmetry & symm, const ex & i1, const ex & i2); /** Construct indexed object with three indices and a specified symmetry. @@ -103,8 +97,7 @@ public: * @param symm Symmetry of indices * @param i1 First index * @param i2 Second index - * @param i3 Third index - * @return newly constructed indexed object */ + * @param i3 Third index */ indexed(const ex & b, const symmetry & symm, const ex & i1, const ex & i2, const ex & i3); /** Construct indexed object with four indices and a specified symmetry. The @@ -115,16 +108,14 @@ public: * @param i1 First index * @param i2 Second index * @param i3 Third index - * @param i4 Fourth index - * @return newly constructed indexed object */ + * @param i4 Fourth index */ indexed(const ex & b, const symmetry & symm, const ex & i1, const ex & i2, const ex & i3, const ex & i4); /** Construct indexed object with a specified vector of indices. The indices * must be of class idx. * * @param b Base expression - * @param iv Vector of indices - * @return newly constructed indexed object */ + * @param iv Vector of indices */ indexed(const ex & b, const exvector & iv); /** Construct indexed object with a specified vector of indices and @@ -132,35 +123,34 @@ public: * * @param b Base expression * @param symm Symmetry of indices - * @param iv Vector of indices - * @return newly constructed indexed object */ + * @param iv Vector of indices */ indexed(const ex & b, const symmetry & symm, const exvector & iv); // internal constructors indexed(const symmetry & symm, const exprseq & es); - indexed(const symmetry & symm, const exvector & v, bool discardable = false); - indexed(const symmetry & symm, std::auto_ptr vp); + indexed(const symmetry & symm, const exvector & v); + indexed(const symmetry & symm, exvector && v); // functions overriding virtual functions from base classes public: - unsigned precedence() const {return 55;} - bool info(unsigned inf) const; - ex eval(int level = 0) const; - ex real_part() const; - ex imag_part() const; - exvector get_free_indices() const; + unsigned precedence() const override {return 55;} + bool info(unsigned inf) const override; + ex eval() const override; + ex real_part() const override; + ex imag_part() const override; + exvector get_free_indices() const override; /** Save (a.k.a. serialize) indexed object into archive. */ - void archive(archive_node& n) const; + void archive(archive_node& n) const override; /** Read (a.k.a. deserialize) indexed object from archive. */ - void read_archive(const archive_node& n, lst& syms); + void read_archive(const archive_node& n, lst& syms) override; protected: - ex derivative(const symbol & s) const; - ex thiscontainer(const exvector & v) const; - ex thiscontainer(std::auto_ptr vp) const; - unsigned return_type() const; - return_type_t return_type_tinfo() const { return op(0).return_type_tinfo(); } - ex expand(unsigned options = 0) const; + ex derivative(const symbol & s) const override; + ex thiscontainer(const exvector & v) const override; + ex thiscontainer(exvector && v) const override; + unsigned return_type() const override; + return_type_t return_type_tinfo() const override { return op(0).return_type_tinfo(); } + ex expand(unsigned options = 0) const override; // new virtual functions which can be overridden by derived classes // none @@ -255,7 +245,7 @@ protected: exvector get_all_dummy_indices(const ex & e); /** More reliable version of the form. The former assumes that e is an - * expanded epxression. */ + * expanded expression. */ exvector get_all_dummy_indices_safely(const ex & e); /** Returns b with all dummy indices, which are listed in va, renamed @@ -279,7 +269,7 @@ lst rename_dummy_indices_uniquely(const exvector & va, const exvector & vb); * indices with the corresponding numeric values without variance. * * @param e the given expression - * @param subs_idx indicates if variance of dummy indixes should be neglected + * @param subs_idx indicates if variance of dummy indices should be neglected */ ex expand_dummy_sum(const ex & e, bool subs_idx = false);