]> www.ginac.de Git - ginac.git/blobdiff - ginac/ex.cpp
[DOC] Fix some Doxygen references.
[ginac.git] / ginac / ex.cpp
index c403c7f6899f191e6db24f3da83b2af60a5da981..eeb7e076fcff0ec33808248d90359612a38e32fd 100644 (file)
@@ -3,7 +3,7 @@
  *  Implementation of GiNaC's light-weight expression handles. */
 
 /*
- *  GiNaC Copyright (C) 1999-2015 Johannes Gutenberg University Mainz, Germany
+ *  GiNaC Copyright (C) 1999-2023 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
@@ -70,6 +70,8 @@ void ex::dbgprinttree() const
        bp->dbgprinttree();
 }
 
+/** Expand an expression.
+ *  @param options  see GiNaC::expand_options */
 ex ex::expand(unsigned options) const
 {
        if (options == 0 && (bp->flags & status_flags::expanded)) // The "expanded" flag only covers the standard options; someone might want to re-expand with different options
@@ -123,7 +125,7 @@ ex ex::subs(const lst & ls, const lst & lr, unsigned options) const
 
        // Convert the lists to a map
        exmap m;
-       for (lst::const_iterator its = ls.begin(), itr = lr.begin(); its != ls.end(); ++its, ++itr) {
+       for (auto its = ls.begin(), itr = lr.begin(); its != ls.end(); ++its, ++itr) {
                m.insert(std::make_pair(*its, *itr));
 
                // Search for products and powers in the expressions to be substituted
@@ -530,7 +532,25 @@ basic & ex::construct_from_ulong(unsigned long i)
                return dynallocate<numeric>(i);
        }
 }
-       
+
+basic & ex::construct_from_longlong(long long i)
+{
+       if (i >= -12 && i <= 12) {
+               return construct_from_int(static_cast<int>(i));
+       } else {
+               return dynallocate<numeric>(i);
+       }
+}
+
+basic & ex::construct_from_ulonglong(unsigned long long i)
+{
+       if (i <= 12) {
+               return construct_from_uint(static_cast<unsigned>(i));
+       } else {
+               return dynallocate<numeric>(i);
+       }
+}
+
 basic & ex::construct_from_double(double d)
 {
        return dynallocate<numeric>(d);