]> www.ginac.de Git - ginac.git/blobdiff - ginac/flags.h
Happy New Year!
[ginac.git] / ginac / flags.h
index e38d9c58b0949703616e6b0e92eec9b7817062e4..02a114b34837131a3300dec2b750ecb5a67ced9f 100644 (file)
@@ -3,7 +3,7 @@
  *  Collection of all flags used through the GiNaC framework. */
 
 /*
- *  GiNaC Copyright (C) 1999-2011 Johannes Gutenberg University Mainz, Germany
+ *  GiNaC Copyright (C) 1999-2019 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
@@ -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 transcendental functions like log and exp
        };
 };
 
@@ -54,7 +55,7 @@ public:
                pattern_is_product = 0x0004,     ///< used internally by expairseq::subschildren()
                pattern_is_not_product = 0x0008, ///< used internally by expairseq::subschildren()
                no_index_renaming = 0x0010,
-               // To indicate that we want to substitue an index by something that is
+               // To indicate that we want to substitute an index by something that
                // is not an index. Without this flag the index value would be
                // substituted in that case.
                really_subs_idx = 0x0020
@@ -181,7 +182,15 @@ public:
                 *  linear systems.  In contrast to division-free elimination it only
                 *  has a linear expression swell.  For two-dimensional systems, the
                 *  two algorithms are equivalent, however. */
-               bareiss
+               bareiss,
+               /** Markowitz-ordered Gaussian elimination. Same as the usual
+                *  Gaussian elimination, but with additional effort spent on
+                *  selecting pivots that minimize fill-in. Faster than the
+                *  methods above for large sparse matrices (particularly with
+                *  symbolic coefficients), otherwise slightly slower than
+                *  Gaussian elimination.
+                */
+               markowitz
        };
 };
 
@@ -207,7 +216,7 @@ public:
 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,
@@ -249,7 +258,6 @@ public:
                rational_polynomial,
                crational_polynomial,
                rational_function,
-               algebraic,
 
                // answered by class indexed
                indexed,      // class can carry indices