<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<style type="text/css" style="display:none;"> P {margin-top:0;margin-bottom:0;} </style>
</head>
<body dir="ltr">
<div style="font-family: Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
Hi all,</div>
<div style="font-family: Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
<br>
</div>
<div style="font-family: Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
I come across an issue about the series on an expression involving positive symbol, i.e., possymbol in GiNaC.</div>
<div style="font-family: Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
the problem can be reproduced by the following program (test.cpp), for example, we compile the test.cpp to test<span style="color: rgb(0, 0, 0); font-family: Calibri, Helvetica, sans-serif; font-size: 12pt; background: var(--white);">, </span></div>
<div style="font-family: Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
<span style="color: rgb(0, 0, 0); font-family: Calibri, Helvetica, sans-serif; font-size: 12pt; background: var(--white);">and then run the test program several times, we will see different outputs.</span></div>
<div style="font-family: Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
<span style="color: rgb(0, 0, 0); font-family: Calibri, Helvetica, sans-serif; font-size: 12pt; background: var(--white);"><br>
</span></div>
<div style="font-family: Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
<span style="color: rgb(0, 0, 0); font-family: Calibri, Helvetica, sans-serif; font-size: 12pt; background: var(--white);">for example, we can run the bash script in the terminal:</span></div>
<div style="font-family: Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
<span style="color: rgb(0, 0, 0); font-family: Calibri, Helvetica, sans-serif; font-size: 12pt; background: var(--white);">for n in {1..20}; do ./test; done</span></div>
<div style="font-family: Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
<span style="color: rgb(0, 0, 0); font-family: Calibri, Helvetica, sans-serif; font-size: 12pt; background: var(--white);"><br>
</span></div>
<div style="font-family: Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
PS: if we change the possymbol to symbol in the test.cpp, we will always get correct result.</div>
<div style="font-family: Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
<br>
</div>
<div style="font-family: Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
Best regards!</div>
<div style="font-family: Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
Feng</div>
<div style="font-family: Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
<br>
</div>
<div style="font-family: Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
---</div>
<div style="font-family: Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
#include "ginac/ginac.h"
<div><br>
</div>
<div>using namespace std;</div>
<div>using namespace GiNaC;</div>
<div><br>
</div>
<div>int main() {</div>
<div>    possymbol t("t");</div>
<div>    symbol m("m"), ep("ep");</div>
<div>    symtab table;</div>
<div>    table["ep"] = ep;</div>
<div>    table["t"] = t;</div>
<div>    table["m"] = m;</div>
<div>    parser reader(table);</div>
<div>    </div>
<div>    ex in1 = reader("(-3/2*t^2*(2*t*m^2-3*m^2*(-1+t))^(-1)*(-1+t)^(-1))");</div>
<div>    ex in2 = reader("((3*pow(m,-2)*pow(-3+t,-1)*pow(-1+t,-1)*pow(t,2))/2)");</div>
<div>    </div>
<div>    cout << "in1-in2 = " << normal(in1-in2) << endl;</div>
<div>    </div>
<div>    in1 = pow(in1,-1+ep)*tgamma(ep);</div>
<div>    in2 = pow(in2,-1+ep)*tgamma(ep);</div>
<div>    </div>
<div>    ex diff = series_to_poly(series(in1-in2,ep,1));</div>
<div>    lst repl = lst{ep==2,m==1,t==1/ex(3)};</div>
<div>    cout << "diff = " << normal(diff.subs(repl)) << endl;</div>
<div>    return 0;</div>
}<br>
</div>
<div style="font-family: Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
<br>
</div>
</body>
</html>