several more workarounds to make cint work with ginac
authorAlexander Frink <Alexander.Frink@uni-mainz.de>
Mon, 21 Feb 2000 23:04:07 +0000 (23:04 +0000)
committerAlexander Frink <Alexander.Frink@uni-mainz.de>
Mon, 21 Feb 2000 23:04:07 +0000 (23:04 +0000)
recognize constants as a return value

cint/dummies.h
cint/dummies.pl
cint/ginaccint.bin.cpp

index a616740d5caa05629f2b5217d513c3b3b805eb0d..08095215956720c3bfb3794e9dea6ee8683d4b1e 100644 (file)
@@ -822,3 +822,17 @@ inline ex rhs(basic const & x) {
 inline bool is_zero(basic const & x) {
     return is_zero(ex(x));
 }
+// fixes for simp_lor lor_g(x,y)
+inline simp_lor lor_g(ex const & x, basic const & y) {
+    return lor_g((x),ex(y));
+}
+inline simp_lor lor_g(basic const & x, ex const & y) {
+    return lor_g(ex(x),(y));
+}
+inline simp_lor lor_g(basic const & x, basic const & y) {
+    return lor_g(ex(x),ex(y));
+}
+
+inline simp_lor lor_vec(const string & x, const basic & y) {
+    return lor_vec((x),ex(y));
+}
index 8557032c341c15bd54bcf376e55e078ed1f0ac2b..69828728c8003d0e11701170eb84e6bf0222326b 100644 (file)
@@ -198,6 +198,10 @@ inline_function_1p('ex','lhs');
 inline_function_1p('ex','rhs');
 inline_function_1p('bool','is_zero');
 
+# fixes for simp_lor.h
+inline_function_2p('simp_lor','lor_g');
+inline_single_function_2p('simp_lor','lor_vec','const string &','','const basic &','ex');
+
 close OUT;
 
 # Create a file containing stubs that may be necessary because Cint always
index b903ca68c483a37a85d4c566b46cc9d9f23a48a2..38d3daee07949c848bf46c780c2a1340bf8d881d 100644 (file)
@@ -115,6 +115,7 @@ void process_tempfile(string const & command)
 {
 #ifdef OBSCURE_CINT_HACK
     static G__value ref_symbol = exec_tempfile("symbol ginac_cint_internal_symbol; ginac_cint_internal_symbol;");
+    static G__value ref_constant = exec_tempfile("constant ginac_cint_internal_constant; ginac_cint_internal_constant;");
     static G__value ref_function = exec_tempfile("sin(ginac_cint_internal_symbol);");
     static G__value ref_power = exec_tempfile("power(ex(ginac_cint_internal_symbol),ex(ginac_cint_internal_symbol));");
     static G__value ref_numeric = exec_tempfile("numeric ginac_cint_internal_numeric; ginac_cint_internal_numeric;");
@@ -151,12 +152,14 @@ void process_tempfile(string const & command)
                       +"LAST="+varname+";\n"
                       +"cout << \""+varname+" = \" << "+varname+" << endl << endl;");
     } else if (TYPES_EQUAL(retval,ref_symbol)||
+               TYPES_EQUAL(retval,ref_constant)||
                TYPES_EQUAL(retval,ref_function)||
                TYPES_EQUAL(retval,ref_power)||
                TYPES_EQUAL(retval,ref_numeric)) {
         if (!basic_type_warning_already_displayed) {
-            cout << "WARNING: The return value of the last expression you entered was a symbol," << endl
-                 << "function, power or numeric, which cannot be safely displayed." << endl
+           cout << endl
+                 <<"WARNING: The return value of the last expression you entered was a symbol," << endl
+                 << "constant, function, power or numeric, which cannot be safely displayed." << endl
                  << "To force the output, cast it explicitly to type 'ex' or use 'cout'," << endl
                  << "for example (assume 'x' is a symbol):" << endl
                  << PROMPT "ex(x);" << endl