X-Git-Url: https://www.ginac.de/ginac.git//ginac.git?p=ginac.git;a=blobdiff_plain;f=ginac%2Ffunction.pl;h=7167d984a20a45d41c9b66f0fcf6dec2b3f641d8;hp=1a1fcbaaf073dac967107b31cf929ab2431755f0;hb=9eab44408b9213d8909b7a9e525f404ad06064dd;hpb=66c0f31c678e6c1938d637636b230ea376c157c1 diff --git a/ginac/function.pl b/ginac/function.pl index 1a1fcbaa..7167d984 100755 --- a/ginac/function.pl +++ b/ginac/function.pl @@ -32,11 +32,11 @@ sub generate { } $declare_function_macro=generate( - <<'END_OF_DECLARE_FUNCTION_MACRO','ex const & p${N}','p${N}'); + <<'END_OF_DECLARE_FUNCTION_MACRO','GiNaC::ex const & p${N}','p${N}'); #define DECLARE_FUNCTION_${N}P(NAME) \\ extern unsigned function_index_##NAME; \\ -inline function NAME(${SEQ1}) { \\ - return function(function_index_##NAME, ${SEQ2}); \\ +inline GiNaC::function NAME(${SEQ1}) { \\ + return GiNaC::function(function_index_##NAME, ${SEQ2}); \\ } END_OF_DECLARE_FUNCTION_MACRO @@ -119,8 +119,9 @@ END_OF_REGISTER_NEW_IMPLEMENTATION $interface=< #include -class function; - // the following lines have been generated for max. ${maxargs} parameters $declare_function_macro // end of generated lines #define REGISTER_FUNCTION(NAME,E,EF,D,S) \\ -unsigned function_index_##NAME=function::register_new(#NAME,E,EF,D,S); +unsigned function_index_##NAME=GiNaC::function::register_new(#NAME,E,EF,D,S); #define BEGIN_TYPECHECK \\ bool automatic_typecheck=true; @@ -167,7 +166,7 @@ if (!is_ex_exactly_of_type(VAR,TYPE)) { \\ } else #define TYPECHECK_INTEGER(VAR) \\ -if (!(VAR).info(info_flags::integer)) { \\ +if (!(VAR).info(GiNaC::info_flags::integer)) { \\ automatic_typecheck=false; \\ } else @@ -177,6 +176,10 @@ if (!automatic_typecheck) { \\ return RV.hold(); \\ } +namespace GiNaC { + +class function; + typedef ex (* eval_funcp)(); typedef ex (* evalf_funcp)(); typedef ex (* diff_funcp)(); @@ -269,13 +272,15 @@ protected: // utility macros #define is_ex_the_function(OBJ, FUNCNAME) \\ - (is_ex_exactly_of_type(OBJ, function) && static_cast(OBJ.bp)->getserial() == function_index_##FUNCNAME) + (is_ex_exactly_of_type(OBJ, function) && static_cast(OBJ.bp)->getserial() == function_index_##FUNCNAME) // global constants extern const function some_function; extern type_info const & typeid_function; +} // namespace GiNaC + #endif // ndef __GINAC_FUNCTION_H__ END_OF_INTERFACE @@ -283,8 +288,9 @@ END_OF_INTERFACE $implementation=<