X-Git-Url: https://www.ginac.de/ginac.git//ginac.git?a=blobdiff_plain;ds=sidebyside;f=ginac%2Fflags.h;h=ea4fa3adfd2c050b06bdd5c099da64282e12ef44;hb=2c7d26f82ab2938ccc42372459a6640137a910a1;hp=0ea0fd9fd2f5dbd4082dbb93320a6ab1e34a2001;hpb=a377cee53b71348235ec36f83afeced7e10288a8;p=ginac.git diff --git a/ginac/flags.h b/ginac/flags.h index 0ea0fd9f..ea4fa3ad 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-2008 Johannes Gutenberg University Mainz, Germany + * GiNaC Copyright (C) 1999-2014 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 @@ -20,8 +20,8 @@ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA */ -#ifndef __GINAC_FLAGS_H__ -#define __GINAC_FLAGS_H__ +#ifndef GINAC_FLAGS_H +#define GINAC_FLAGS_H namespace GiNaC { @@ -31,7 +31,8 @@ public: enum { expand_indexed = 0x0001, ///< expands (a+b).i to a.i+b.i expand_function_args = 0x0002, ///< expands the arguments of functions - expand_rename_idx = 0x0004 ///< used internally by mul::expand() + expand_rename_idx = 0x0004, ///< used internally by mul::expand() + expand_transcendental = 0x0008 ///< expands trancendental functions like log and exp }; }; @@ -196,7 +197,10 @@ public: hash_calculated = 0x0008, ///< .calchash() has already done its job not_shareable = 0x0010, ///< don't share instances of this object between different expressions unless explicitly asked to (used by ex::compare()) has_indices = 0x0020, - has_no_indices = 0x0040 // ! (has_indices || has_no_indices) means "don't know" + has_no_indices = 0x0040, // ! (has_indices || has_no_indices) means "don't know" + is_positive = 0x0080, + is_negative = 0x0100, + purely_indefinite = 0x0200 // If set in a mul, then it does not contains any terms with determined signs, used in power::expand() }; }; @@ -204,7 +208,7 @@ public: class info_flags { public: enum { - // answered by class numeric and symbols/constants in particular domains + // answered by class numeric, add, mul, function and symbols/constants in particular domains numeric, real, rational, @@ -256,7 +260,10 @@ public: idx, // answered by classes numeric, symbol, add, mul, power - expanded + expanded, + + // is meaningful for mul only + indefinite }; }; @@ -285,10 +292,11 @@ public: class factor_options { public: enum { - all = 0x0001 ///< factor all polynomial subexpressions + polynomial = 0x0000, ///< factor only expressions that are polynomials + all = 0x0001 ///< factor all polynomial subexpressions }; }; } // namespace GiNaC -#endif // ndef __GINAC_FLAGS_H__ +#endif // ndef GINAC_FLAGS_H