|
GiNaC
1.6.2
|
00001 00006 /* 00007 * GiNaC Copyright (C) 1999-2011 Johannes Gutenberg University Mainz, Germany 00008 * 00009 * This program is free software; you can redistribute it and/or modify 00010 * it under the terms of the GNU General Public License as published by 00011 * the Free Software Foundation; either version 2 of the License, or 00012 * (at your option) any later version. 00013 * 00014 * This program is distributed in the hope that it will be useful, 00015 * but WITHOUT ANY WARRANTY; without even the implied warranty of 00016 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 00017 * GNU General Public License for more details. 00018 * 00019 * You should have received a copy of the GNU General Public License 00020 * along with this program; if not, write to the Free Software 00021 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA 00022 */ 00023 00024 #ifndef GINAC_EXCOMPILER_H 00025 #define GINAC_EXCOMPILER_H 00026 00027 #include "lst.h" 00028 00029 #include <string> 00030 00031 namespace GiNaC { 00032 00033 class ex; 00034 class symbol; 00035 00039 typedef double (*FUNCP_1P) (double); 00040 00044 typedef double (*FUNCP_2P) (double, double); 00045 00049 typedef void (*FUNCP_CUBA) (const int*, const double[], const int*, double[]); 00050 00061 void compile_ex(const ex& expr, const symbol& sym, FUNCP_1P& fp, const std::string filename = ""); 00062 00073 void compile_ex(const ex& expr, const symbol& sym1, const symbol& sym2, FUNCP_2P& fp, const std::string filename = ""); 00074 00085 void compile_ex(const lst& exprs, const lst& syms, FUNCP_CUBA& fp, const std::string filename = ""); 00086 00095 void link_ex(const std::string filename, FUNCP_1P& fp); 00096 00105 void link_ex(const std::string filename, FUNCP_2P& fp); 00106 00115 void link_ex(const std::string filename, FUNCP_CUBA& fp); 00116 00122 void unlink_ex(const std::string filename); 00123 00124 } // namespace GiNaC 00125 00126 #endif // ndef GINAC_EXCOMPILER_H