X-Git-Url: https://www.ginac.de/ginac.git//ginac.git?p=ginac.git;a=blobdiff_plain;f=ginac%2Fflags.h;h=93506f107d9adb125db7231d664143653727b4a2;hp=41a890b11c34aa14c86cf13535d69bea5b824b7a;hb=4e3a4ac2bcb0837611ea31bc8fc05d84a20c33ac;hpb=9df145c8bfa8ce9f2cbe6c05673481b6ca4c4c22 diff --git a/ginac/flags.h b/ginac/flags.h index 41a890b1..93506f10 100644 --- a/ginac/flags.h +++ b/ginac/flags.h @@ -3,7 +3,7 @@ * Collection of all flags used through the GiNaC framework. */ /* - * GiNaC Copyright (C) 1999-2000 Johannes Gutenberg University Mainz, Germany + * GiNaC Copyright (C) 1999-2001 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 @@ -23,106 +23,128 @@ #ifndef __GINAC_FLAGS_H__ #define __GINAC_FLAGS_H__ -#ifndef NO_NAMESPACE_GINAC namespace GiNaC { -#endif // ndef NO_NAMESPACE_GINAC class expand_options { public: - enum { expand_trigonometric = 0x0001 - }; + enum { + expand_trigonometric = 0x0001 + }; }; +/** Flags to control series expansion. */ class series_options { public: - enum { suppress_branchcut = 0x0001 - }; + enum { + suppress_branchcut = 0x0001 + }; }; +/** Switch to control algorithm for determinant computation. */ class determinant_algo { public: - enum { automatic, - gauss, - laplace, - bareiss - }; + enum { + automatic, ///< Let the system choose + gauss, ///< Gauss elimiation + divfree, ///< Division-free elimination + laplace, ///< Laplace (or minor) elimination + bareiss ///< Bareiss fraction-free elimination + }; +}; + +/** Switch to control algorithm for linear system solving. */ +class solve_algo { +public: + enum { + automatic, ///< Let the system choose + gauss, ///< Gauss elimiation + divfree, ///< Division-free elimination + bareiss ///< Bareiss fraction-free elimination + }; }; +/** Flags to store information about the state of an object. + * @see basic::flags */ class status_flags { public: - enum { dynallocated = 0x0001, - evaluated = 0x0002, - expanded = 0x0004, - hash_calculated = 0x0008 - }; + enum { + dynallocated = 0x0001, ///< Heap-allocated (i.e. created by new if we want to be clever and bypass the stack) + evaluated = 0x0002, ///< .eval() has already done its job + expanded = 0x0004, ///< .expand() has already done its job + hash_calculated = 0x0008 ///< .calchash() has already done its job + }; }; /** Possible attributes an object can have. */ class info_flags { public: - enum { - // answered by class numeric - numeric, - real, - rational, - integer, - crational, - cinteger, - positive, - negative, - nonnegative, - posint, - negint, - nonnegint, - even, - odd, - prime, - - // answered by class relation - relation, - relation_equal, - relation_not_equal, - relation_less, - relation_less_or_equal, - relation_greater, - relation_greater_or_equal, - - // answered by class symbol - symbol, - - // answered by class lst - list, - - // answered by class exprseq - exprseq, - - // answered by classes numeric, symbol, add, mul, power - polynomial, - integer_polynomial, - cinteger_polynomial, - rational_polynomial, - crational_polynomial, - rational_function, - algebraic, - - // answered by class indexed - indexed, // class can carry indices - has_indices, // object has at least one index - - // answered by class idx - idx, - - // answered by class coloridx - coloridx, - - // answered by class lorentzidx - lorentzidx - }; + enum { + // answered by class numeric + numeric, + real, + rational, + integer, + crational, + cinteger, + positive, + negative, + nonnegative, + posint, + negint, + nonnegint, + even, + odd, + prime, + + // answered by class relation + relation, + relation_equal, + relation_not_equal, + relation_less, + relation_less_or_equal, + relation_greater, + relation_greater_or_equal, + + // answered by class symbol + symbol, + + // answered by class lst + list, + + // answered by class exprseq + exprseq, + + // answered by classes numeric, symbol, add, mul, power + polynomial, + integer_polynomial, + cinteger_polynomial, + rational_polynomial, + crational_polynomial, + rational_function, + algebraic, + + // answered by class indexed + indexed, // class can carry indices + has_indices, // object has at least one index + + // answered by class idx + idx, + + // answered by class coloridx + coloridx, + + // answered by class lorentzidx + lorentzidx + }; }; class return_types { public: - enum { commutative, noncommutative, noncommutative_composite}; + enum { + commutative, + noncommutative, + noncommutative_composite + }; }; class csrc_types { @@ -134,17 +156,18 @@ public: }; }; +/** Strategies how to clean up the function remember cache. + * @see remember_table */ class remember_strategies { public: - enum { delete_never, // let table grow undefinitely, not recommmended, but currently default - delete_lru, // least recently used - delete_lfu, // least frequently used - delete_cyclic // first (oldest) one in list - }; + enum { + delete_never, ///< Let table grow undefinitely + delete_lru, ///< Least recently used + delete_lfu, ///< Least frequently used + delete_cyclic ///< First (oldest) one in list + }; }; -#ifndef NO_NAMESPACE_GINAC } // namespace GiNaC -#endif // ndef NO_NAMESPACE_GINAC #endif // ndef __GINAC_FLAGS_H__