* Collection of all flags used through the GiNaC framework. */
/*
- * GiNaC Copyright (C) 1999-2010 Johannes Gutenberg University Mainz, Germany
+ * GiNaC Copyright (C) 1999-2015 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
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
};
};
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()
};
};
class info_flags {
public:
enum {
- // answered by class numeric, add, mul and symbols/constants in particular domains
+ // answered by class numeric, add, mul, function and symbols/constants in particular domains
numeric,
real,
rational,
idx,
// answered by classes numeric, symbol, add, mul, power
- expanded
+ expanded,
+
+ // is meaningful for mul only
+ indefinite
};
};