<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
"http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head><meta http-equiv="content-type" content="text/html; charset=utf-8" />
<title>[114209] trunk/dports/math/GiNaC</title>
</head>
<body>

<style type="text/css"><!--
#msg dl.meta { border: 1px #006 solid; background: #369; padding: 6px; color: #fff; }
#msg dl.meta dt { float: left; width: 6em; font-weight: bold; }
#msg dt:after { content:':';}
#msg dl, #msg dt, #msg ul, #msg li, #header, #footer, #logmsg { font-family: verdana,arial,helvetica,sans-serif; font-size: 10pt;  }
#msg dl a { font-weight: bold}
#msg dl a:link    { color:#fc3; }
#msg dl a:active  { color:#ff0; }
#msg dl a:visited { color:#cc6; }
h3 { font-family: verdana,arial,helvetica,sans-serif; font-size: 10pt; font-weight: bold; }
#msg pre { overflow: auto; background: #ffc; border: 1px #fa0 solid; padding: 6px; }
#logmsg { background: #ffc; border: 1px #fa0 solid; padding: 1em 1em 0 1em; }
#logmsg p, #logmsg pre, #logmsg blockquote { margin: 0 0 1em 0; }
#logmsg p, #logmsg li, #logmsg dt, #logmsg dd { line-height: 14pt; }
#logmsg h1, #logmsg h2, #logmsg h3, #logmsg h4, #logmsg h5, #logmsg h6 { margin: .5em 0; }
#logmsg h1:first-child, #logmsg h2:first-child, #logmsg h3:first-child, #logmsg h4:first-child, #logmsg h5:first-child, #logmsg h6:first-child { margin-top: 0; }
#logmsg ul, #logmsg ol { padding: 0; list-style-position: inside; margin: 0 0 0 1em; }
#logmsg ul { text-indent: -1em; padding-left: 1em; }#logmsg ol { text-indent: -1.5em; padding-left: 1.5em; }
#logmsg > ul, #logmsg > ol { margin: 0 0 1em 0; }
#logmsg pre { background: #eee; padding: 1em; }
#logmsg blockquote { border: 1px solid #fa0; border-left-width: 10px; padding: 1em 1em 0 1em; background: white;}
#logmsg dl { margin: 0; }
#logmsg dt { font-weight: bold; }
#logmsg dd { margin: 0; padding: 0 0 0.5em 0; }
#logmsg dd:before { content:'\00bb';}
#logmsg table { border-spacing: 0px; border-collapse: collapse; border-top: 4px solid #fa0; border-bottom: 1px solid #fa0; background: #fff; }
#logmsg table th { text-align: left; font-weight: normal; padding: 0.2em 0.5em; border-top: 1px dotted #fa0; }
#logmsg table td { text-align: right; border-top: 1px dotted #fa0; padding: 0.2em 0.5em; }
#logmsg table thead th { text-align: center; border-bottom: 1px solid #fa0; }
#logmsg table th.Corner { text-align: left; }
#logmsg hr { border: none 0; border-top: 2px dashed #fa0; height: 1px; }
#header, #footer { color: #fff; background: #636; border: 1px #300 solid; padding: 6px; }
#patch { width: 100%; }
#patch h4 {font-family: verdana,arial,helvetica,sans-serif;font-size:10pt;padding:8px;background:#369;color:#fff;margin:0;}
#patch .propset h4, #patch .binary h4 {margin:0;}
#patch pre {padding:0;line-height:1.2em;margin:0;}
#patch .diff {width:100%;background:#eee;padding: 0 0 10px 0;overflow:auto;}
#patch .propset .diff, #patch .binary .diff  {padding:10px 0;}
#patch span {display:block;padding:0 10px;}
#patch .modfile, #patch .addfile, #patch .delfile, #patch .propset, #patch .binary, #patch .copfile {border:1px solid #ccc;margin:10px 0;}
#patch ins {background:#dfd;text-decoration:none;display:block;padding:0 10px;}
#patch del {background:#fdd;text-decoration:none;display:block;padding:0 10px;}
#patch .lines, .info {color:#888;background:#fff;}
--></style>
<div id="msg">
<dl class="meta">
<dt>Revision</dt> <dd><a href="https://trac.macports.org/changeset/114209">114209</a></dd>
<dt>Author</dt> <dd>michaelld@macports.org</dd>
<dt>Date</dt> <dd>2013-12-02 09:37:44 -0800 (Mon, 02 Dec 2013)</dd>
</dl>

<h3>Log Message</h3>
<pre>GiNaC: maintainer timeout: add patches for clang++/libc++; do not seem to hurt on g++/libstdc++; addresses ticket #40851.</pre>

<h3>Modified Paths</h3>
<ul>
<li><a href="#trunkdportsmathGiNaCPortfile">trunk/dports/math/GiNaC/Portfile</a></li>
</ul>

<h3>Added Paths</h3>
<ul>
<li>trunk/dports/math/GiNaC/files/</li>
<li><a href="#trunkdportsmathGiNaCfilespatchcheck_exam_cliffordcppdiff">trunk/dports/math/GiNaC/files/patch-check_exam_clifford.cpp.diff</a></li>
<li><a href="#trunkdportsmathGiNaCfilespatchcheck_exam_inifcns_nstdsumscppdiff">trunk/dports/math/GiNaC/files/patch-check_exam_inifcns_nstdsums.cpp.diff</a></li>
<li><a href="#trunkdportsmathGiNaCfilespatchginac_inifcns_nstdsumscppdiff">trunk/dports/math/GiNaC/files/patch-ginac_inifcns_nstdsums.cpp.diff</a></li>
</ul>

</div>
<div id="patch">
<h3>Diff</h3>
<a id="trunkdportsmathGiNaCPortfile"></a>
<div class="modfile"><h4>Modified: trunk/dports/math/GiNaC/Portfile (114208 => 114209)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/dports/math/GiNaC/Portfile        2013-12-02 16:53:58 UTC (rev 114208)
+++ trunk/dports/math/GiNaC/Portfile        2013-12-02 17:37:44 UTC (rev 114209)
</span><span class="lines">@@ -43,5 +43,11 @@
</span><span class="cx"> depends_lib        port:readline        \
</span><span class="cx">                 port:cln
</span><span class="cx"> 
</span><ins>+#patches for clang++/libc++; do not seem to hurt on g++/libstdc++
+
+patchfiles        patch-check_exam_clifford.cpp.diff \
+                patch-check_exam_inifcns_nstdsums.cpp.diff \
+                patch-ginac_inifcns_nstdsums.cpp.diff
+
</ins><span class="cx"> test.run            yes
</span><span class="cx"> test.target         check
</span></span></pre></div>
<a id="trunkdportsmathGiNaCfilespatchcheck_exam_cliffordcppdiff"></a>
<div class="addfile"><h4>Added: trunk/dports/math/GiNaC/files/patch-check_exam_clifford.cpp.diff (0 => 114209)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/dports/math/GiNaC/files/patch-check_exam_clifford.cpp.diff                                (rev 0)
+++ trunk/dports/math/GiNaC/files/patch-check_exam_clifford.cpp.diff        2013-12-02 17:37:44 UTC (rev 114209)
</span><span class="lines">@@ -0,0 +1,11 @@
</span><ins>+--- check/exam_clifford.cpp.orig        2013-12-02 12:05:05.000000000 -0500
++++ check/exam_clifford.cpp        2013-12-02 12:05:20.000000000 -0500
+@@ -546,7 +546,7 @@
+         realsymbol a(&quot;a&quot;);
+         varidx mu(symbol(&quot;mu&quot;, &quot;\\mu&quot;), 1);

+-        ex e = clifford_unit(mu, diag_matrix(lst(-1))), e0 = e.subs(mu==0);
++        ex e = clifford_unit(mu, diag_matrix(lst(ex(-1)))), e0 = e.subs(mu==0);
+         result += ( exp(a*e0)*e0*e0 == -exp(e0*a) ) ? 0 : 1;

+         return result;
</ins></span></pre></div>
<a id="trunkdportsmathGiNaCfilespatchcheck_exam_inifcns_nstdsumscppdiff"></a>
<div class="addfile"><h4>Added: trunk/dports/math/GiNaC/files/patch-check_exam_inifcns_nstdsums.cpp.diff (0 => 114209)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/dports/math/GiNaC/files/patch-check_exam_inifcns_nstdsums.cpp.diff                                (rev 0)
+++ trunk/dports/math/GiNaC/files/patch-check_exam_inifcns_nstdsums.cpp.diff        2013-12-02 17:37:44 UTC (rev 114209)
</span><span class="lines">@@ -0,0 +1,86 @@
</span><ins>+--- check/exam_inifcns_nstdsums.cpp.orig        2013-12-02 11:55:47.000000000 -0500
++++ check/exam_inifcns_nstdsums.cpp        2013-12-02 12:03:09.000000000 -0500
+@@ -192,10 +192,10 @@
+         res.append(zeta(lst(4,2,3)) - (-zeta(9)*59 + zeta(2)*zeta(7)*28 + pow(zeta(2),2)*zeta(5)*4 -
+                                        pow(zeta(3),3)/3 + pow(zeta(2),3)*zeta(3)*8/21));
+         res.append(zeta(lst(3,1,3,1,3,1,3,1)) - (2*pow(Pi,16)/factorial(18)));
+-        res.append(zeta(lst(2),lst(-1)) - -zeta(2)/2);
+-        res.append(zeta(lst(1,2),lst(-1,1)) - (-zeta(3)/4 - zeta(lst(1),lst(-1))*zeta(2)/2));
+-        res.append(zeta(lst(2,1,1),lst(-1,-1,1)) - (-pow(zeta(2),2)*23/40 - pow(zeta(lst(1),lst(-1)),2)*zeta(2)*3/4
+-                                                    - zeta(lst(3,1),lst(-1,1))*3/2 - zeta(lst(1),lst(-1))*zeta(3)*21/8));
++        res.append(zeta(lst(ex(2)),lst(ex(-1))) - -zeta(2)/2);
++        res.append(zeta(lst(1,2),lst(-1,1)) - (-zeta(3)/4 - zeta(lst(ex(1)),lst(ex(-1)))*zeta(2)/2));
++        res.append(zeta(lst(2,1,1),lst(-1,-1,1)) - (-pow(zeta(2),2)*23/40 - pow(zeta(lst(ex(1)),lst(ex(-1))),2)*zeta(2)*3/4
++                                                    - zeta(lst(3,1),lst(-1,1))*3/2 - zeta(lst(ex(1)),lst(ex(-1)))*zeta(3)*21/8));
+         
+         for (lst::const_iterator it = res.begin(); it != res.end(); it++) {
+                 Digits = 17;
+@@ -241,7 +241,7 @@

+         lst res;
+         
+-        res.append(Li(lst(4), lst(6)).hold() - Li(4, 6.0));
++        res.append(Li(lst(ex(4)), lst(ex(6))).hold() - Li(4, 6.0));
+         res.append(G(lst(0,0,5.0,0,2.0,0,0,0,3.0),0.5).hold()
+                    + Li(lst(3,2,4), lst(numeric(1,10), numeric(5,2), numeric(2,3))));
+         res.append(Li(lst(2,1,1), lst(almostone, almostone, almostone)) - zeta(lst(2,1,1)));
+@@ -258,20 +258,20 @@
+         res.append(s1.subs(lst(x==2, y==numeric(4)/5)) - s2.subs(lst(x==2, y==numeric(4)/5)));

+         // shuffle and quasi-shuffle identities
+-        res.append(G(lst(0,0.2),1).hold() * G(lst(0.5),1).hold() - G(lst(0.5,0,0.2),1).hold()
+-                        - G(lst(0,0.5,0.2),1).hold() - G(lst(0,0.2,0.5),1).hold());
+-        res.append(G(lst(0,0.5),1).hold() * G(lst(0.6),1).hold() - G(lst(0,0.5,0.5*0.6),1).hold()
++        res.append(G(lst(ex(0),0.2),1).hold() * G(lst(ex(0.5)),1).hold() - G(lst(ex(0.5),0,0.2),1).hold()
++                        - G(lst(ex(0),0.5,0.2),1).hold() - G(lst(ex(0),0.2,0.5),1).hold());
++        res.append(G(lst(ex(0),0.5),1).hold() * G(lst(ex(0.6)),1).hold() - G(lst(0,0.5,0.5*0.6),1).hold()
+                         - G(lst(0.6,0,0.5*0.6),1).hold() + G(lst(0,0,0.5*0.6),1).hold());
+-        res.append(Li(lst(2),lst(numeric(1,5))).hold() * Li(lst(3),lst(7)).hold() - Li(lst(2,3),lst(numeric(1,5),7)).hold()
+-                        - Li(lst(3,2),lst(7,numeric(1,5))).hold() - Li(lst(5),lst(numeric(7,5))).hold());
++        res.append(Li(lst(ex(2)),lst(numeric(1,5))).hold() * Li(lst(ex(3)),lst(ex(7))).hold() - Li(lst(2,3),lst(numeric(1,5),7)).hold()
++                        - Li(lst(ex(3),2),lst(ex(7),numeric(1,5))).hold() - Li(lst(ex(5)),lst(numeric(7,5))).hold());
+         symbol a1, a2, a3, a4;
+         res.append((G(lst(a1,a2),1) * G(lst(a3,a4),1) - G(lst(a1,a2,a3,a4),1)
+                         - G(lst(a1,a3,a2,a4),1) - G(lst(a3,a1,a2,a4),1)
+                         - G(lst(a1,a3,a4,a2),1) - G(lst(a3,a1,a4,a2),1) - G(lst(a3,a4,a1,a2),1))
+                                 .subs(lst(a1==numeric(1)/10, a2==numeric(3)/10, a3==numeric(7)/10, a4==5)));
+-        res.append(G(lst(-0.009),1).hold() * G(lst(-8,1.4999),1).hold() - G(lst(-0.009,-8,1.4999),1).hold()
++        res.append(G(lst(ex(-0.009)),1).hold() * G(lst(ex(-8),1.4999),1).hold() - G(lst(-0.009,-8,1.4999),1).hold()
+                         - G(lst(-8,-0.009,1.4999),1).hold() - G(lst(-8,1.4999,-0.009),1).hold());
+-        res.append(G(lst(sqrt(numeric(1)/2)+I*sqrt(numeric(1)/2)),1).hold() * G(lst(1.51,-0.999),1).hold()
++        res.append(G(lst(sqrt(numeric(1)/2)+I*sqrt(numeric(1)/2)),1).hold() * G(lst(ex(1.51),-0.999),1).hold()
+                         - G(lst(sqrt(numeric(1)/2)+I*sqrt(numeric(1)/2),1.51,-0.999),1).hold()
+                         - G(lst(1.51,sqrt(numeric(1)/2)+I*sqrt(numeric(1)/2),-0.999),1).hold()
+                         - G(lst(1.51,-0.999,sqrt(numeric(1)/2)+I*sqrt(numeric(1)/2)),1).hold());
+@@ -313,15 +313,15 @@

+         ex x1 = exp(2*Pi*I/13).evalf();
+         ex x2 = exp(24*Pi*I/13).evalf();
+-          ex r2 = Li(lst(2),lst(x1)).hold().evalf();
+-        ex r3 = Li(lst(2),lst(x2)).hold().evalf();
++          ex r2 = Li(lst(ex(2)),lst(x1)).hold().evalf();
++        ex r3 = Li(lst(ex(2)),lst(x2)).hold().evalf();
+         if ( abs(r2-conjugate(r3)) &gt; prec ) {
+                 clog &lt;&lt; &quot;Legacy test 2 seems to be wrong.&quot; &lt;&lt; endl;
+                 result++;
+         }

+           ex x3 = exp(5*Pi*I/3).evalf();
+-        ex r4 = Li(lst(3),lst(x3)).hold().evalf();
++        ex r4 = Li(lst(ex(3)),lst(x3)).hold().evalf();
+         if ( abs(r4 - numeric(&quot;0.40068563438653142847-0.95698384815740185713*I&quot;)) &gt; prec ) {
+                 clog &lt;&lt; &quot;Legacy test 3 seems to be wrong.&quot; &lt;&lt; endl;
+                 result++;
+@@ -353,10 +353,10 @@
+                 +Li(lst(1,1,1,1),lst(x2,x4,x3,x0)).hold().evalf()
+                 +Li(lst(1,1,1,1),lst(x2,x3,x4,x0)).hold().evalf()
+                 +Li(lst(1,1,1,1),lst(x2,x3,x0,x4)).hold().evalf()
+-                +Li(lst(2,2),lst(x5,x4)).hold().evalf()
++                +Li(lst(ex(2),2),lst(x5,x4)).hold().evalf()
+                 +Li(lst(2,1,1),lst(x5,x0,x4)).hold().evalf()
+                 +Li(lst(2,1,1),lst(x5,x4,x0)).hold().evalf()
+-                -Li(lst(1,1),lst(x3,x0)).hold().evalf()*Li(lst(1,1),lst(x2,x4)).hold().evalf();
++                -Li(lst(ex(1),1),lst(x3,x0)).hold().evalf()*Li(lst(ex(1),1),lst(x2,x4)).hold().evalf();
+         if ( abs(r7) &gt; prec ) {
+                 clog &lt;&lt; &quot;Legacy test 5 seems to be wrong.&quot; &lt;&lt; endl;
+                 result++;
</ins></span></pre></div>
<a id="trunkdportsmathGiNaCfilespatchginac_inifcns_nstdsumscppdiff"></a>
<div class="addfile"><h4>Added: trunk/dports/math/GiNaC/files/patch-ginac_inifcns_nstdsums.cpp.diff (0 => 114209)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/dports/math/GiNaC/files/patch-ginac_inifcns_nstdsums.cpp.diff                                (rev 0)
+++ trunk/dports/math/GiNaC/files/patch-ginac_inifcns_nstdsums.cpp.diff        2013-12-02 17:37:44 UTC (rev 114209)
</span><span class="lines">@@ -0,0 +1,121 @@
</span><ins>+--- ginac/inifcns_nstdsums.cpp.orig        2013-12-02 11:35:34.000000000 -0500
++++ ginac/inifcns_nstdsums.cpp        2013-12-02 11:42:19.000000000 -0500
+@@ -2601,7 +2601,7 @@
+                 ex addzeta = convert_H_to_zeta(newparameter);
+                 return e.subs(h == (addzeta-H(newparameter, h.op(1)).hold())).expand();
+         } else {
+-                return e * (-H(lst(0),1/arg).hold());
++                return e * (-H(lst(ex(0)),1/arg).hold());
+         }
+ }

+@@ -2632,7 +2632,7 @@
+                 newparameter.prepend(1);
+                 return e.subs(h == H(newparameter, h.op(1)).hold());
+         } else {
+-                return e * H(lst(1),1-arg).hold();
++                return e * H(lst(ex(1)),1-arg).hold();
+         }
+ }

+@@ -2664,8 +2664,8 @@
+                 ex addzeta = convert_H_to_zeta(newparameter);
+                 return e.subs(h == (addzeta-H(newparameter, h.op(1)).hold())).expand();
+         } else {
+-                ex addzeta = convert_H_to_zeta(lst(-1));
+-                return (e * (addzeta - H(lst(-1),1/arg).hold())).expand();
++                ex addzeta = convert_H_to_zeta(lst(ex(-1)));
++                return (e * (addzeta - H(lst(ex(-1)),1/arg).hold())).expand();
+         }
+ }

+@@ -2696,7 +2696,7 @@
+                 newparameter.prepend(-1);
+                 return e.subs(h == H(newparameter, h.op(1)).hold()).expand();
+         } else {
+-                return (e * H(lst(-1),(1-arg)/(1+arg)).hold()).expand();
++                return (e * H(lst(ex(-1)),(1-arg)/(1+arg)).hold()).expand();
+         }
+ }

+@@ -2727,7 +2727,7 @@
+                 newparameter.prepend(1);
+                 return e.subs(h == H(newparameter, h.op(1)).hold()).expand();
+         } else {
+-                return (e * H(lst(1),(1-arg)/(1+arg)).hold()).expand();
++                return (e * H(lst(ex(1)),(1-arg)/(1+arg)).hold()).expand();
+         }
+ }

+@@ -2806,7 +2806,7 @@
+                                         // leading one
+                                         map_trafo_H_1mx recursion;
+                                         map_trafo_H_mult unify;
+-                                        ex res = H(lst(1), arg).hold() * H(newparameter, arg).hold();
++                                        ex res = H(lst(ex(1)), arg).hold() * H(newparameter, arg).hold();
+                                         std::size_t firstzero = 0;
+                                         while (parameter.op(firstzero) == 1) {
+                                                 firstzero++;
+@@ -2870,7 +2870,7 @@
+                                         }
+                                         if (allthesame) {
+                                                 map_trafo_H_mult unify;
+-                                                return unify((pow(H(lst(-1),1/arg).hold() - H(lst(0),1/arg).hold(), parameter.nops())
++                                                return unify((pow(H(lst(ex(-1)),1/arg).hold() - H(lst(ex(0)),1/arg).hold(), parameter.nops())
+                                                        / factorial(parameter.nops())).expand());
+                                         }
+                                 } else {
+@@ -2882,7 +2882,7 @@
+                                         }
+                                         if (allthesame) {
+                                                 map_trafo_H_mult unify;
+-                                                return unify((pow(H(lst(1),1/arg).hold() + H(lst(0),1/arg).hold() + H_polesign, parameter.nops())
++                                                return unify((pow(H(lst(ex(1)),1/arg).hold() + H(lst(ex(0)),1/arg).hold() + H_polesign, parameter.nops())
+                                                        / factorial(parameter.nops())).expand());
+                                         }
+                                 }
+@@ -2925,7 +2925,7 @@
+                                         // leading one
+                                         map_trafo_H_1overx recursion;
+                                         map_trafo_H_mult unify;
+-                                        ex res = H(lst(1), arg).hold() * H(newparameter, arg).hold();
++                                        ex res = H(lst(ex(1)), arg).hold() * H(newparameter, arg).hold();
+                                         std::size_t firstzero = 0;
+                                         while (parameter.op(firstzero) == 1) {
+                                                 firstzero++;
+@@ -2981,7 +2981,7 @@
+                                         }
+                                         if (allthesame) {
+                                                 map_trafo_H_mult unify;
+-                                                return unify((pow(-H(lst(1),(1-arg)/(1+arg)).hold() - H(lst(-1),(1-arg)/(1+arg)).hold(), parameter.nops())
++                                                return unify((pow(-H(lst(ex(1)),(1-arg)/(1+arg)).hold() - H(lst(ex(-1)),(1-arg)/(1+arg)).hold(), parameter.nops())
+                                                        / factorial(parameter.nops())).expand());
+                                         }
+                                 } else if (parameter.op(0) == -1) {
+@@ -2993,7 +2993,7 @@
+                                         }
+                                         if (allthesame) {
+                                                 map_trafo_H_mult unify;
+-                                                return unify((pow(log(2) - H(lst(-1),(1-arg)/(1+arg)).hold(), parameter.nops())
++                                                return unify((pow(log(2) - H(lst(ex(-1)),(1-arg)/(1+arg)).hold(), parameter.nops())
+                                                        / factorial(parameter.nops())).expand());
+                                         }
+                                 } else {
+@@ -3005,7 +3005,7 @@
+                                         }
+                                         if (allthesame) {
+                                                 map_trafo_H_mult unify;
+-                                                return unify((pow(-log(2) - H(lst(0),(1-arg)/(1+arg)).hold() + H(lst(-1),(1-arg)/(1+arg)).hold(), parameter.nops())
++                                                return unify((pow(-log(2) - H(lst(ex(0)),(1-arg)/(1+arg)).hold() + H(lst(ex(-1)),(1-arg)/(1+arg)).hold(), parameter.nops())
+                                                        / factorial(parameter.nops())).expand());
+                                         }
+                                 }
+@@ -3048,7 +3048,7 @@
+                                         // leading one
+                                         map_trafo_H_1mxt1px recursion;
+                                         map_trafo_H_mult unify;
+-                                        ex res = H(lst(1), arg).hold() * H(newparameter, arg).hold();
++                                        ex res = H(lst(ex(1)), arg).hold() * H(newparameter, arg).hold();
+                                         std::size_t firstzero = 0;
+                                         while (parameter.op(firstzero) == 1) {
+                                                 firstzero++;
</ins></span></pre>
</div>
</div>

</body>
</html>