+inline_cfunc_2p('function',\@cfunc_2p_function);
+inline_cfunc_2p('ex',\@cfunc_2p_ex);
+
+sub inline_function_1p {
+ my ($rettype,$func)=@_;
+ print OUT "inline $rettype $func(basic const & x) {\n";
+ print OUT " return $func(ex(x));\n";
+ print OUT "}\n";
+}
+
+sub inline_single_function_2p {
+ my ($rettype,$func,$t1,$cast1,$t2,$cast2)=@_;
+ print OUT "inline $rettype $func($t1 x, $t2 y) {\n";
+ print OUT " return $func($cast1(x),$cast2(y));\n";
+ print OUT "}\n";
+}
+
+sub inline_single_function_2p_with_defarg {
+ my ($rettype,$func,$t1,$defarg)=@_;
+ print OUT "inline $rettype $func(basic const & x, $t1 y=$defarg) {\n";
+ print OUT " return $func(ex(x),y);\n";
+ print OUT "}\n";
+}
+
+sub inline_single_function_3p {
+ my ($rettype,$func,$t1,$cast1,$t2,$cast2,$t3,$cast3)=@_;
+ print OUT "inline $rettype $func($t1 x, $t2 y, $t3 z) {\n";
+ print OUT " return $func($cast1(x),$cast2(y),$cast3(z));\n";
+ print OUT "}\n";
+}
+
+sub inline_single_function_3p_with_defarg {
+ my ($rettype,$func,$t1,$cast1,$t2,$cast2,$t3,$defarg)=@_;
+ print OUT "inline $rettype $func($t1 x, $t2 y, $t3 z=$defarg) {\n";
+ print OUT " return $func($cast1(x),$cast2(y),z);\n";
+ print OUT "}\n";
+}
+
+sub inline_single_function_4p_with_defarg {
+ my ($rettype,$func,$t1,$cast1,$t2,$cast2,$t3,$cast3,$t4,$defarg)=@_;
+ print OUT "inline $rettype $func($t1 x, $t2 y, $t3 z, $t4 zz=$defarg) {\n";
+ print OUT " return $func($cast1(x),$cast2(y),$cast3(z),zz);\n";
+ print OUT "}\n";
+}
+
+sub inline_single_binop {
+ my ($rettype,$op,$t1,$cast1,$t2,$cast2)=@_;
+ inline_single_function_2p($rettype,'operator'.$op,$t1,$cast1,$t2,$cast2);
+}
+
+sub inline_single_unaryop {
+ my ($rettype,$op)=@_;
+ print OUT "inline $rettype operator$op(basic const & x) {\n";
+ print OUT " return operator$op(ex(x));\n";
+ print OUT "}\n";
+}
+
+sub inline_function_2p {
+ my ($rettype,$func)=@_;
+ print OUT "// fixes for $rettype $func(x,y)\n";
+ inline_single_function_2p($rettype,$func,'ex const &','','basic const &','ex');
+ inline_single_function_2p($rettype,$func,'basic const &','ex','ex const &','');
+ inline_single_function_2p($rettype,$func,'basic const &','ex','basic const &','ex');
+ print OUT "\n";
+}
+
+sub inline_binops {
+ my ($rettype,$opsref)=@_;
+ foreach $op (@$opsref) {
+ inline_function_2p($rettype,'operator'.$op);
+ }
+}
+
+inline_binops('ex',\@binops_ex);
+inline_binops('relational',\@binops_relational);
+foreach $op (@binops_exconstref) {
+ print OUT "// fixes for ex const & operator$op(x,y)\n";
+ inline_single_binop('ex const &',$op,'ex &','','basic const &','ex');
+}
+
+print OUT "// fixes for other operators\n";
+inline_single_unaryop('ex','+');
+inline_single_unaryop('ex','-');
+print OUT "inline ostream & operator<<(ostream & os, basic const & x) {\n";
+print OUT " return operator<<(os,ex(x));\n";
+print OUT "}\n";
+
+print OUT "// fixes for functions\n";
+inline_function_2p('bool','are_ex_trivially_equal');
+inline_function_1p('unsigned','nops');
+inline_function_1p('ex','expand');
+inline_function_2p('bool','has');
+inline_single_function_2p('int','degree','basic const &','ex','symbol const &','');
+inline_single_function_2p('int','ldegree','basic const &','ex','symbol const &','');
+inline_single_function_3p_with_defarg('ex','coeff','basic const &','ex','symbol const &','','int','1');
+inline_function_1p('ex','numer');
+inline_function_1p('ex','denom');
+inline_single_function_2p_with_defarg('ex','normal','int','0');
+inline_single_function_2p('ex','collect','basic const &','ex','symbol const &','');
+inline_single_function_2p_with_defarg('ex','eval','int','0');
+inline_single_function_2p_with_defarg('ex','evalf','int','0');
+inline_single_function_3p_with_defarg('ex','diff','basic const &','ex','symbol const &','','int','1');
+inline_single_function_4p_with_defarg('ex','series','basic const &','ex','symbol const &','','ex const &','','int','6');
+inline_single_function_4p_with_defarg('ex','series','ex const &','ex','symbol const &','','basic const &','ex','int','6');
+inline_single_function_4p_with_defarg('ex','series','basic const &','ex','symbol const &','','basic const &','ex','int','6');
+inline_function_2p('ex','subs');
+inline_single_function_3p('ex','subs','basic const &','ex','lst const &','','lst const &','');
+inline_single_function_2p('ex','op','basic const &','ex','int','');
+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');
+