itab.cpp 12 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338
  1. /* Table of integrals
  2. The symbol f is just a dummy symbol for creating a list f(A,B,C,C,...) where
  3. A is the template expression
  4. B is the result expression
  5. C is an optional list of conditional expressions
  6. */
  7. #include "stdafx.h"
  8. #include "defs.h"
  9. const char *itab[] = {
  10. // 1
  11. "f(a,a*x)",
  12. // 9 (need a caveat for 7 so we can put 9 after 7)
  13. "f(1/x,log(x))",
  14. // 7
  15. "f(x^a,x^(a+1)/(a+1))",
  16. // 12
  17. "f(exp(a*x),1/a*exp(a*x))",
  18. "f(exp(a*x+b),1/a*exp(a*x+b))",
  19. "f(x*exp(a*x^2),exp(a*x^2)/(2*a))",
  20. "f(x*exp(a*x^2+b),exp(a*x^2+b)/(2*a))",
  21. // 14
  22. "f(log(a*x),x*log(a*x)-x)",
  23. // 15
  24. "f(a^x,a^x/log(a),or(not(number(a)),a>0))",
  25. // 16
  26. "f(1/(a+x^2),1/sqrt(a)*arctan(x/sqrt(a)),or(not(number(a)),a>0))",
  27. // 17
  28. "f(1/(a-x^2),1/sqrt(a)*arctanh(x/sqrt(a)))",
  29. // 19
  30. "f(1/sqrt(a-x^2),arcsin(x/(sqrt(a))))",
  31. // 20
  32. "f(1/sqrt(a+x^2),log(x+sqrt(a+x^2)))",
  33. // 27
  34. "f(1/(a+b*x),1/b*log(a+b*x))",
  35. // 28
  36. "f(1/(a+b*x)^2,-1/(b*(a+b*x)))",
  37. // 29
  38. "f(1/(a+b*x)^3,-1/(2*b)*1/(a+b*x)^2)",
  39. // 30
  40. "f(x/(a+b*x),x/b-a*log(a+b*x)/b/b)",
  41. // 31
  42. "f(x/(a+b*x)^2,1/b^2*(log(a+b*x)+a/(a+b*x)))",
  43. // 33
  44. "f(x^2/(a+b*x),1/b^2*(1/2*(a+b*x)^2-2*a*(a+b*x)+a^2*log(a+b*x)))",
  45. // 34
  46. "f(x^2/(a+b*x)^2,1/b^3*(a+b*x-2*a*log(a+b*x)-a^2/(a+b*x)))",
  47. // 35
  48. "f(x^2/(a+b*x)^3,1/b^3*(log(a+b*x)+2*a/(a+b*x)-1/2*a^2/(a+b*x)^2))",
  49. // 37
  50. "f(1/x*1/(a+b*x),-1/a*log((a+b*x)/x))",
  51. // 38
  52. "f(1/x*1/(a+b*x)^2,1/a*1/(a+b*x)-1/a^2*log((a+b*x)/x))",
  53. // 39
  54. "f(1/x*1/(a+b*x)^3,1/a^3*(1/2*((2*a+b*x)/(a+b*x))^2+log(x/(a+b*x))))",
  55. // 40
  56. "f(1/x^2*1/(a+b*x),-1/(a*x)+b/a^2*log((a+b*x)/x))",
  57. // 41
  58. "f(1/x^3*1/(a+b*x),(2*b*x-a)/(2*a^2*x^2)+b^2/a^3*log(x/(a+b*x)))",
  59. // 42
  60. "f(1/x^2*1/(a+b*x)^2,-(a+2*b*x)/(a^2*x*(a+b*x))+2*b/a^3*log((a+b*x)/x))",
  61. // 60
  62. "f(1/(a+b*x^2),1/sqrt(a*b)*arctan(x*sqrt(a*b)/a),or(not(number(a*b)),a*b>0))",
  63. // 61
  64. "f(1/(a+b*x^2),1/(2*sqrt(-a*b))*log((a+x*sqrt(-a*b))/(a-x*sqrt(-a*b))),or(not(number(a*b)),a*b<0))",
  65. // 62 is the same as 60
  66. // 63
  67. "f(x/(a+b*x^2),1/2*1/b*log(a+b*x^2))",
  68. //64
  69. "f(x^2/(a+b*x^2),x/b-a/b*integral(1/(a+b*x^2),x))",
  70. //65
  71. "f(1/(a+b*x^2)^2,x/(2*a*(a+b*x^2))+1/2*1/a*integral(1/(a+b*x^2),x))",
  72. //66 is covered by 61
  73. //70
  74. "f(1/x*1/(a+b*x^2),1/2*1/a*log(x^2/(a+b*x^2)))",
  75. //71
  76. "f(1/x^2*1/(a+b*x^2),-1/(a*x)-b/a*integral(1/(a+b*x^2),x))",
  77. //74
  78. "f(1/(a+b*x^3),1/3*1/a*(a/b)^(1/3)*(1/2*log(((a/b)^(1/3)+x)^3/(a+b*x^3))+sqrt(3)*arctan((2*x-(a/b)^(1/3))*(a/b)^(-1/3)/sqrt(3))))",
  79. //76
  80. "f(x^2/(a+b*x^3),1/3*1/b*log(a+b*x^3))",
  81. //77
  82. "f(1/(a+b*x^4),1/2*1/a*(a/b/4)^(1/4)*(1/2*log((x^2+2*(a/b/4)^(1/4)*x+2*(a/b/4)^(1/2))/(x^2-2*(a/b/4)^(1/4)*x+2*(a/b/4)^(1/2)))+arctan(2*(a/b/4)^(1/4)*x/(2*(a/b/4)^(1/2)-x^2))),or(not(number(a*b)),a*b>0))",
  83. //78
  84. "f(1/(a+b*x^4),1/2*(-a/b)^(1/4)/a*(1/2*log((x+(-a/b)^(1/4))/(x-(-a/b)^(1/4)))+arctan(x*(-a/b)^(-1/4))),or(not(number(a*b)),a*b<0))",
  85. //79
  86. "f(x/(a+b*x^4),1/2*sqrt(b/a)/b*arctan(x^2*sqrt(b/a)),or(not(number(a*b)),a*b>0))",
  87. //80
  88. "f(x/(a+b*x^4),1/4*sqrt(-b/a)/b*log((x^2-sqrt(-a/b))/(x^2+sqrt(-a/b))),or(not(number(a*b)),a*b<0))",
  89. //81
  90. "f(x^2/(a+b*x^4),1/4*1/b*(a/b/4)^(-1/4)*(1/2*log((x^2-2*(a/b/4)^(1/4)*x+2*sqrt(a/b/4))/(x^2+2*(a/b/4)^(1/4)*x+2*sqrt(a/b/4)))+arctan(2*(a/b/4)^(1/4)*x/(2*sqrt(a/b/4)-x^2))),or(not(number(a*b)),a*b>0))",
  91. //82
  92. "f(x^2/(a+b*x^4),1/4*1/b*(-a/b)^(-1/4)*(log((x-(-a/b)^(1/4))/(x+(-a/b)^(1/4)))+2*arctan(x*(-a/b)^(-1/4))),or(not(number(a*b)),a*b<0))",
  93. //83
  94. "f(x^3/(a+b*x^4),1/4*1/b*log(a+b*x^4))",
  95. //124
  96. "f(sqrt(a+b*x),2/3*1/b*sqrt((a+b*x)^3))",
  97. //125
  98. "f(x*sqrt(a+b*x),-2*(2*a-3*b*x)*sqrt((a+b*x)^3)/15/b^2)",
  99. //126
  100. "f(x^2*sqrt(a+b*x),2*(8*a^2-12*a*b*x+15*b^2*x^2)*sqrt((a+b*x)^3)/105/b^3)",
  101. //128
  102. "f(sqrt(a+b*x)/x,2*sqrt(a+b*x)+a*integral(1/x*1/sqrt(a+b*x),x))",
  103. //129
  104. "f(sqrt(a+b*x)/x^2,-sqrt(a+b*x)/x+b/2*integral(1/x*1/sqrt(a+b*x),x))",
  105. //131
  106. "f(1/sqrt(a+b*x),2*sqrt(a+b*x)/b)",
  107. //132
  108. "f(x/sqrt(a+b*x),-2/3*(2*a-b*x)*sqrt(a+b*x)/b^2)",
  109. //133
  110. "f(x^2/sqrt(a+b*x),2/15*(8*a^2-4*a*b*x+3*b^2*x^2)*sqrt(a+b*x)/b^3)",
  111. //135
  112. "f(1/x*1/sqrt(a+b*x),1/sqrt(a)*log((sqrt(a+b*x)-sqrt(a))/(sqrt(a+b*x)+sqrt(a))),or(not(number(a)),a>0))",
  113. //136
  114. "f(1/x*1/sqrt(a+b*x),2/sqrt(-a)*arctan(sqrt(-(a+b*x)/a)),or(not(number(a)),a<0))",
  115. //137
  116. "f(1/x^2*1/sqrt(a+b*x),-sqrt(a+b*x)/a/x-1/2*b/a*integral(1/x*1/sqrt(a+b*x),x))",
  117. //156
  118. "f(sqrt(x^2+a),1/2*(x*sqrt(x^2+a)+a*log(x+sqrt(x^2+a))))",
  119. //157
  120. "f(1/sqrt(x^2+a),log(x+sqrt(x^2+a)))",
  121. //158
  122. "f(1/x*1/sqrt(x^2+a),arcsec(x/sqrt(-a))/sqrt(-a),or(not(number(a)),a<0))",
  123. //159
  124. "f(1/x*1/sqrt(x^2+a),-1/sqrt(a)*log((sqrt(a)+sqrt(x^2+a))/x),or(not(number(a)),a>0))",
  125. //160
  126. "f(sqrt(x^2+a)/x,sqrt(x^2+a)-sqrt(a)*log((sqrt(a)+sqrt(x^2+a))/x),or(not(number(a)),a>0))",
  127. //161
  128. "f(sqrt(x^2+a)/x,sqrt(x^2+a)-sqrt(-a)*arcsec(x/sqrt(-a)),or(not(number(a)),a<0))",
  129. //162
  130. "f(x/sqrt(x^2+a),sqrt(x^2+a))",
  131. //163
  132. "f(x*sqrt(x^2+a),1/3*sqrt((x^2+a)^3))",
  133. //164 need an unexpanded version?
  134. "f(sqrt(a+x^6+3*a^(1/3)*x^4+3*a^(2/3)*x^2),1/4*(x*sqrt((x^2+a^(1/3))^3)+3/2*a^(1/3)*x*sqrt(x^2+a^(1/3))+3/2*a^(2/3)*log(x+sqrt(x^2+a^(1/3)))))",
  135. // match doesn't work for the following
  136. "f(sqrt(-a+x^6-3*a^(1/3)*x^4+3*a^(2/3)*x^2),1/4*(x*sqrt((x^2-a^(1/3))^3)-3/2*a^(1/3)*x*sqrt(x^2-a^(1/3))+3/2*a^(2/3)*log(x+sqrt(x^2-a^(1/3)))))",
  137. //165
  138. "f(1/sqrt(a+x^6+3*a^(1/3)*x^4+3*a^(2/3)*x^2),x/a^(1/3)/sqrt(x^2+a^(1/3)))",
  139. //166
  140. "f(x/sqrt(a+x^6+3*a^(1/3)*x^4+3*a^(2/3)*x^2),-1/sqrt(x^2+a^(1/3)))",
  141. //167
  142. "f(x*sqrt(a+x^6+3*a^(1/3)*x^4+3*a^(2/3)*x^2),1/5*sqrt((x^2+a^(1/3))^5))",
  143. //168
  144. "f(x^2*sqrt(x^2+a),1/4*x*sqrt((x^2+a)^3)-1/8*a*x*sqrt(x^2+a)-1/8*a^2*log(x+sqrt(x^2+a)))",
  145. //169
  146. "f(x^3*sqrt(x^2+a),(1/5*x^2-2/15*a)*sqrt((x^2+a)^3),and(number(a),a>0))",
  147. //170
  148. "f(x^3*sqrt(x^2+a),sqrt((x^2+a)^5)/5-a*sqrt((x^2+a)^3)/3,and(number(a),a<0))",
  149. //171
  150. "f(x^2/sqrt(x^2+a),1/2*x*sqrt(x^2+a)-1/2*a*log(x+sqrt(x^2+a)))",
  151. //172
  152. "f(x^3/sqrt(x^2+a),1/3*sqrt((x^2+a)^3)-a*sqrt(x^2+a))",
  153. //173
  154. "f(1/x^2*1/sqrt(x^2+a),-sqrt(x^2+a)/a/x)",
  155. //174
  156. "f(1/x^3*1/sqrt(x^2+a),-1/2*sqrt(x^2+a)/a/x^2+1/2*log((sqrt(a)+sqrt(x^2+a))/x)/a^(3/2),or(not(number(a)),a>0))",
  157. //175
  158. "f(1/x^3*1/sqrt(x^2-a),1/2*sqrt(x^2-a)/a/x^2+1/2*1/(a^(3/2))*arcsec(x/(a^(1/2))),or(not(number(a)),a>0))",
  159. //176+
  160. "f(x^2*sqrt(a+x^6+3*a^(1/3)*x^4+3*a^(2/3)*x^2),1/6*x*sqrt((x^2+a^(1/3))^5)-1/24*a^(1/3)*x*sqrt((x^2+a^(1/3))^3)-1/16*a^(2/3)*x*sqrt(x^2+a^(1/3))-1/16*a*log(x+sqrt(x^2+a^(1/3))),or(not(number(a)),a>0))",
  161. //176-
  162. "f(x^2*sqrt(-a-3*a^(1/3)*x^4+3*a^(2/3)*x^2+x^6),1/6*x*sqrt((x^2-a^(1/3))^5)+1/24*a^(1/3)*x*sqrt((x^2-a^(1/3))^3)-1/16*a^(2/3)*x*sqrt(x^2-a^(1/3))+1/16*a*log(x+sqrt(x^2-a^(1/3))),or(not(number(a)),a>0))",
  163. //177+
  164. "f(x^3*sqrt(a+x^6+3*a^(1/3)*x^4+3*a^(2/3)*x^2),1/7*sqrt((x^2+a^(1/3))^7)-1/5*a^(1/3)*sqrt((x^2+a^(1/3))^5),or(not(number(a)),a>0))",
  165. //177-
  166. "f(x^3*sqrt(-a-3*a^(1/3)*x^4+3*a^(2/3)*x^2+x^6),1/7*sqrt((x^2-a^(1/3))^7)+1/5*a^(1/3)*sqrt((x^2-a^(1/3))^5),or(not(number(a)),a>0))",
  167. //196
  168. "f(1/(x-a)/sqrt(x^2-a^2),-sqrt(x^2-a^2)/a/(x-a))",
  169. //197
  170. "f(1/(x+a)/sqrt(x^2-a^2),sqrt(x^2-a^2)/a/(x+a))",
  171. //200+
  172. "f(sqrt(a-x^2),1/2*(x*sqrt(a-x^2)+a*arcsin(x/sqrt(abs(a)))))",
  173. //201 (seems to be handled somewhere else)
  174. //202
  175. "f(1/x*1/sqrt(a-x^2),-1/sqrt(a)*log((sqrt(a)+sqrt(a-x^2))/x),or(not(number(a)),a>0))",
  176. //203
  177. "f(sqrt(a-x^2)/x,sqrt(a-x^2)-sqrt(a)*log((sqrt(a)+sqrt(a-x^2))/x),or(not(number(a)),a>0))",
  178. //204
  179. "f(x/sqrt(a-x^2),-sqrt(a-x^2))",
  180. //205
  181. "f(x*sqrt(a-x^2),-1/3*sqrt((a-x^2)^3))",
  182. //210
  183. "f(x^2*sqrt(a-x^2),-x/4*sqrt((a-x^2)^3)+1/8*a*(x*sqrt(a-x^2)+a*arcsin(x/sqrt(a))),or(not(number(a)),a>0))",
  184. //211
  185. "f(x^3*sqrt(a-x^2),(-1/5*x^2-2/15*a)*sqrt((a-x^2)^3),or(not(number(a)),a>0))",
  186. //214
  187. "f(x^2/sqrt(a-x^2),-x/2*sqrt(a-x^2)+a/2*arcsin(x/sqrt(a)),or(not(number(a)),a>0))",
  188. //215
  189. "f(1/x^2*1/sqrt(a-x^2),-sqrt(a-x^2)/a/x,or(not(number(a)),a>0))",
  190. //216
  191. "f(sqrt(a-x^2)/x^2,-sqrt(a-x^2)/x-arcsin(x/sqrt(a)),or(not(number(a)),a>0))",
  192. //217
  193. "f(sqrt(a-x^2)/x^3,-1/2*sqrt(a-x^2)/x^2+1/2*log((sqrt(a)+sqrt(a-x^2))/x)/sqrt(a),or(not(number(a)),a>0))",
  194. //218
  195. "f(sqrt(a-x^2)/x^4,-1/3*sqrt((a-x^2)^3)/a/x^3,or(not(number(a)),a>0))",
  196. // 273
  197. "f(sqrt(a*x^2+b),x*sqrt(a*x^2+b)/2+b*log(x*sqrt(a)+sqrt(a*x^2+b))/2/sqrt(a),and(number(a),a>0))",
  198. // 274
  199. "f(sqrt(a*x^2+b),x*sqrt(a*x^2+b)/2+b*arcsin(x*sqrt(-a/b))/2/sqrt(-a),and(number(a),a<0))",
  200. // 290
  201. "f(sin(a*x),-cos(a*x)/a)",
  202. // 291
  203. "f(cos(a*x),sin(a*x)/a)",
  204. // 292
  205. "f(tan(a*x),-log(cos(a*x))/a)",
  206. // 293
  207. "f(1/tan(a*x),log(sin(a*x))/a)",
  208. // 294
  209. "f(1/cos(a*x),log(tan(pi/4+a*x/2))/a)",
  210. // 295
  211. "f(1/sin(a*x),log(tan(a*x/2))/a)",
  212. // 296
  213. "f(sin(a*x)^2,x/2-sin(2*a*x)/(4*a))",
  214. // 297
  215. "f(sin(a*x)^3,-cos(a*x)*(sin(a*x)^2+2)/(3*a))",
  216. // 298
  217. "f(sin(a*x)^4,3/8*x-sin(2*a*x)/(4*a)+sin(4*a*x)/(32*a))",
  218. // 302
  219. "f(cos(a*x)^2,x/2+sin(2*a*x)/(4*a))",
  220. // 303
  221. "f(cos(a*x)^3,sin(a*x)*(cos(a*x)^2+2)/(3*a))",
  222. // 304
  223. "f(cos(a*x)^4,3/8*x+sin(2*a*x)/(4*a)+sin(4*a*x)/(32*a))",
  224. // 308
  225. "f(1/sin(a*x)^2,-1/(a*tan(a*x)))",
  226. // 312
  227. "f(1/cos(a*x)^2,tan(a*x)/a)",
  228. // 318
  229. "f(sin(a*x)*cos(a*x),sin(a*x)^2/(2*a))",
  230. // 320
  231. "f(sin(a*x)^2*cos(a*x)^2,-sin(4*a*x)/(32*a)+x/8)",
  232. // 326
  233. "f(sin(a*x)/cos(a*x)^2,1/(a*cos(a*x)))",
  234. // 327
  235. "f(sin(a*x)^2/cos(a*x),(log(tan(pi/4+a*x/2))-sin(a*x))/a)",
  236. // 328
  237. "f(cos(a*x)/sin(a*x)^2,-1/(a*sin(a*x)))",
  238. // 329
  239. "f(1/(sin(a*x)*cos(a*x)),log(tan(a*x))/a)",
  240. // 330
  241. "f(1/(sin(a*x)*cos(a*x)^2),(1/cos(a*x)+log(tan(a*x/2)))/a)",
  242. // 331
  243. "f(1/(sin(a*x)^2*cos(a*x)),(log(tan(pi/4+a*x/2))-1/sin(a*x))/a)",
  244. // 333
  245. "f(1/(sin(a*x)^2*cos(a*x)^2),-2/(a*tan(2*a*x)))",
  246. // 335
  247. "f(sin(a+b*x),-cos(a+b*x)/b)",
  248. // 336
  249. "f(cos(a+b*x),sin(a+b*x)/b)",
  250. // 337+ (with the addition of b)
  251. "f(1/(b+b*sin(a*x)),-tan(pi/4-a*x/2)/a/b)",
  252. // 337- (with the addition of b)
  253. "f(1/(b-b*sin(a*x)),tan(pi/4+a*x/2)/a/b)",
  254. // 338 (with the addition of b)
  255. "f(1/(b+b*cos(a*x)),tan(a*x/2)/a/b)",
  256. // 339 (with the addition of b)
  257. "f(1/(b-b*cos(a*x)),-1/tan(a*x/2)/a/b)",
  258. // 340
  259. "f(1/(a+b*sin(x)),1/sqrt(b^2-a^2)*log((a*tan(x/2)+b-sqrt(b^2-a^2))/(a*tan(x/2)+b+sqrt(b^2-a^2))),b^2-a^2)", // check that b^2-a^2 is not zero
  260. // 341
  261. "f(1/(a+b*cos(x)),1/sqrt(b^2-a^2)*log((sqrt(b^2-a^2)*tan(x/2)+a+b)/(sqrt(b^2-a^2)*tan(x/2)-a-b)),b^2-a^2)", // check that b^2-a^2 is not zero
  262. // 389
  263. "f(x*sin(a*x),sin(a*x)/a^2-x*cos(a*x)/a)",
  264. // 390
  265. "f(x^2*sin(a*x),2*x*sin(a*x)/a^2-(a^2*x^2-2)*cos(a*x)/a^3)",
  266. // 393
  267. "f(x*cos(a*x),cos(a*x)/a^2+x*sin(a*x)/a)",
  268. // 394
  269. "f(x^2*cos(a*x),2*x*cos(a*x)/a^2+(a^2*x^2-2)*sin(a*x)/a^3)",
  270. // 441
  271. "f(arcsin(a*x),x*arcsin(a*x)+sqrt(1-a^2*x^2)/a)",
  272. // 442
  273. "f(arccos(a*x),x*arccos(a*x)+sqrt(1-a^2*x^2)/a)",
  274. // 443
  275. "f(arctan(a*x),x*arctan(a*x)-1/2*log(1+a^2*x^2)/a)",
  276. // 485 (with addition of a)
  277. "f(log(a*x),x*log(a*x)-x)",
  278. // 486 (with addition of a)
  279. "f(x*log(a*x),x^2*log(a*x)/2-x^2/4)",
  280. // 487 (with addition of a)
  281. "f(x^2*log(a*x),x^3*log(a*x)/3-1/9*x^3)",
  282. // 489
  283. "f(log(x)^2,x*log(x)^2-2*x*log(x)+2*x)",
  284. // 493 (with addition of a)
  285. "f(1/x*1/(a+log(x)),log(a+log(x)))",
  286. // 499
  287. "f(log(a*x+b),(a*x+b)*log(a*x+b)/a-x)",
  288. // 500
  289. "f(log(a*x+b)/x^2,a/b*log(x)-(a*x+b)*log(a*x+b)/b/x)",
  290. // 554
  291. "f(sinh(x),cosh(x))",
  292. // 555
  293. "f(cosh(x),sinh(x))",
  294. // 556
  295. "f(tanh(x),log(cosh(x)))",
  296. // 560
  297. "f(x*sinh(x),x*cosh(x)-sinh(x))",
  298. // 562
  299. "f(x*cosh(x),x*sinh(x)-cosh(x))",
  300. // 566
  301. "f(sinh(x)^2,sinh(2*x)/4-x/2)",
  302. // 569
  303. "f(tanh(x)^2,x-tanh(x))",
  304. // 572
  305. "f(cosh(x)^2,sinh(2*x)/4+x/2)",
  306. // ?
  307. "f(x^3*exp(a*x^2),exp(a*x^2)*(x^2/a-1/(a^2))/2)",
  308. // ?
  309. "f(x^3*exp(a*x^2+b),exp(a*x^2)*exp(b)*(x^2/a-1/(a^2))/2)",
  310. // ?
  311. "f(exp(a*x^2),-i*sqrt(pi)*erf(i*sqrt(a)*x)/sqrt(a)/2)",
  312. // ?
  313. "f(erf(a*x),x*erf(a*x)+exp(-a^2*x^2)/a/sqrt(pi))",
  314. // these are needed for the surface integral in the manual
  315. "f(x^2*(1-x^2)^(3/2),(x*sqrt(1-x^2)*(-8*x^4+14*x^2-3)+3*arcsin(x))/48)",
  316. "f(x^2*(1-x^2)^(5/2),(x*sqrt(1-x^2)*(48*x^6-136*x^4+118*x^2-15)+15*arcsin(x))/384)",
  317. "f(x^4*(1-x^2)^(3/2),(-x*sqrt(1-x^2)*(16*x^6-24*x^4+2*x^2+3)+3*arcsin(x))/128)",
  318. "f(x*exp(a*x),exp(a*x)*(a*x-1)/(a^2))",
  319. "f(x*exp(a*x+b),exp(a*x+b)*(a*x-1)/(a^2))",
  320. "f(x^2*exp(a*x),exp(a*x)*(a^2*x^2-2*a*x+2)/(a^3))",
  321. "f(x^2*exp(a*x+b),exp(a*x+b)*(a^2*x^2-2*a*x+2)/(a^3))",
  322. "f(x^3*exp(a*x),exp(a*x)*x^3/a-3/a*integral(x^2*exp(a*x),x))",
  323. "f(x^3*exp(a*x+b),exp(a*x+b)*x^3/a-3/a*integral(x^2*exp(a*x+b),x))",
  324. NULL,
  325. };