Initial import.
This commit is contained in:
parent
7cd30fd8ae
commit
8d6f9f081f
|
@ -0,0 +1 @@
|
|||
/qepcad-B.1.69.tar.gz
|
|
@ -0,0 +1,387 @@
|
|||
--- ./extensions/rend/rend.h.orig 2012-03-16 06:49:31.000000000 -0600
|
||||
+++ ./extensions/rend/rend.h 2013-08-28 11:34:57.057516390 -0600
|
||||
@@ -34,7 +34,7 @@ extern "C" {
|
||||
|
||||
#include <iostream>
|
||||
#include <sstream>
|
||||
-istream& qein(); // fetches the current qepcad istream object
|
||||
+istream& qein() __pure; // fetches the current qepcad istream object
|
||||
|
||||
class singlelinestream : public istringstream
|
||||
{
|
||||
--- ./extensions/rend/Rend_Cell.h.orig 2012-03-16 06:49:31.000000000 -0600
|
||||
+++ ./extensions/rend/Rend_Cell.h 2013-08-30 14:37:28.376780785 -0600
|
||||
@@ -49,8 +49,8 @@ public:
|
||||
Rend_Cell& operator[](int i); /* gives child from index */
|
||||
Rend_Cell* neighbor_l(); /* returns left neighbor cell */
|
||||
Rend_Cell* neighbor_r(); /* returns right neighbor cell */
|
||||
- int array_index(); /* returns i such that
|
||||
- parent->child[i] is the cell */
|
||||
+ int array_index() __pure; /* returns i such that
|
||||
+ parent->child[i] is the cell */
|
||||
void set_extents(Word J);
|
||||
void out_descrip(Rend_Win &W, ostream &out, Mapper &M);
|
||||
void out_descrip_ps(Rend_Win &W, ostream &out, Mapper &M);
|
||||
--- ./extensions/adj2d/truthbytop/truthbytop.h.orig 2012-03-16 06:49:32.000000000 -0600
|
||||
+++ ./extensions/adj2d/truthbytop/truthbytop.h 2013-08-30 09:41:55.321108153 -0600
|
||||
@@ -4,13 +4,13 @@
|
||||
#include "adj2D.h"
|
||||
|
||||
void GADDVERTEX(Word v, Word l, Word *G_);
|
||||
-Word GSTACKHANDLE(Word i, Word G_);
|
||||
+Word GSTACKHANDLE(Word i, Word G_) __pure;
|
||||
Word GVERTEXHANDLE(Word v, Word G_);
|
||||
Word GVERTEXLABEL(Word v, Word G_);
|
||||
void GNEWLABEL(Word v, Word l, Word G_);
|
||||
void GADDEDGE(Word e, Word G_);
|
||||
Word GSUCCLIST(Word v, Word G_);
|
||||
-Word vert2dim(Word v);
|
||||
+Word vert2dim(Word v) __pure;
|
||||
Word GPREDLIST(Word v, Word G_);
|
||||
|
||||
#endif
|
||||
--- ./extensions/adj2d/adj2D.h.orig 2012-03-16 06:49:32.000000000 -0600
|
||||
+++ ./extensions/adj2d/adj2D.h 2013-08-30 14:35:45.336575945 -0600
|
||||
@@ -25,7 +25,7 @@ Word ADJ_2D1P2(Word U, Word V, Word w_l,
|
||||
Word ADJ_2D1P3(Word U, Word w_l, Word B);
|
||||
Word ADJ_2D1_COMPLETE(Word c, Word c_l, Word c_r, Word P, Word J);
|
||||
Word ADJ_2D1_SIMPLE(Word U, Word V, Word w_l, Word B);
|
||||
-Word CWD_VECTOR_Q(Word u, Word v);
|
||||
+Word CWD_VECTOR_Q(Word u, Word v) __pure;
|
||||
Word EQUAL_ON_ONES(Word u, Word v);
|
||||
Word LDCOEFMASK(Word c, Word P, Word J);
|
||||
Word LDCOEFMASK(Word c, Word P, Word J);
|
||||
@@ -34,13 +34,13 @@ Word P1(Word U, Word V, Word W, Word v_l
|
||||
Word P2(Word x_l, Word x_r, Word U, Word V, Word W, Word v_l, Word B);
|
||||
Word P3(Word U, Word V, Word W, Word v_l, Word B);
|
||||
Word P4(Word U, Word V, Word W, Word v_l, Word B);
|
||||
-Word SUM_NORM_SP(Word v);
|
||||
+Word SUM_NORM_SP(Word v) __pure;
|
||||
Word VECTOR_DIF(Word u, Word v);
|
||||
Word VECTOR_DIF_S(Word u, Word v, Word *f);
|
||||
-Word VECTOR_LTEQ(Word u, Word v);
|
||||
+Word VECTOR_LTEQ(Word u, Word v) __pure;
|
||||
Word VECTOR_NEG(Word u);
|
||||
-Word VECTOR_ODD_E(Word v_);
|
||||
-Word VECTOR_SEMI_COMP(Word u, Word v);
|
||||
+Word VECTOR_ODD_E(Word v_) __pure;
|
||||
+Word VECTOR_SEMI_COMP(Word u, Word v) __pure;
|
||||
Word VECTOR_SUM(Word u, Word v);
|
||||
Word VECTOR_S_PROD(Word s, Word v);
|
||||
Word ZERO_VECTOR(Word n);
|
||||
@@ -55,7 +55,7 @@ Word RIIFACMA(Word I, Word A, Word t, Wo
|
||||
Word RIIFACMABR(Word P, Word J, Word K, Word *H, Word *I);
|
||||
Word SPRLC(Word c);
|
||||
Word ADJ2DITOEL(Word L, Word c1, Word c0);
|
||||
-Word CCTV(Word C);
|
||||
+Word CCTV(Word C) __pure;
|
||||
void CTVPROPUP(Word C, Word t, Word N, Word by);
|
||||
void TVCLOSURE1D(Word D, Word P, Word J, Word k, Word t);
|
||||
void TVCLOSURE1DS(Word D, Word P, Word J, Word k, Word t);
|
||||
--- ./extensions/sfext/minhit/MINHITSETSRDR.c.orig 2012-03-16 06:49:31.000000000 -0600
|
||||
+++ ./extensions/sfext/minhit/MINHITSETSRDR.c 2013-08-30 09:28:39.624633978 -0600
|
||||
@@ -24,6 +24,8 @@ Note: The point is that not only sortin
|
||||
#define BDCOMP(a,b) ((a) > (b) ? 1 : ((a) < (b) ? -1 : 0))
|
||||
#define MC_FAIL 0
|
||||
|
||||
+static Word comp(Word a, Word b) __pure;
|
||||
+
|
||||
static Word comp(Word a, Word b) {
|
||||
Word ap,bp,t,q;
|
||||
ap = a; bp = b;
|
||||
--- ./extensions/sfext/extlang/CLOSESTINDEX.c.orig 2012-03-16 06:49:31.000000000 -0600
|
||||
+++ ./extensions/sfext/extlang/CLOSESTINDEX.c 2013-08-30 09:20:44.193946578 -0600
|
||||
@@ -10,6 +10,8 @@ cp: the ESCAD cell in L with index close
|
||||
|
||||
#include "extlang.h"
|
||||
|
||||
+static Word comp(Word u, Word v) __pure;
|
||||
+
|
||||
static Word comp(Word u, Word v)
|
||||
{
|
||||
Word r,t,U,V,A,B,a,b;
|
||||
--- ./extensions/sfext/sfcons/ESPCADDOPFSUFF.c.orig 2012-03-16 06:49:31.000000000 -0600
|
||||
+++ ./extensions/sfext/sfcons/ESPCADDOPFSUFF.c 2013-08-30 09:32:29.048483014 -0600
|
||||
@@ -17,7 +17,7 @@ outputs
|
||||
#include "qepcad.h"
|
||||
#include "espcad.h"
|
||||
|
||||
-static Word comp(Word A, Word B);
|
||||
+static Word comp(Word A, Word B) __pure;
|
||||
#define BDCOMP(a,b) ((a) > (b) ? 1 : ((a) < (b) ? -1 : 0))
|
||||
|
||||
Word ESPCADDOPFSUFF(Word P, Word K)
|
||||
--- ./extensions/sfext/sort/BVCI1.c.orig 2012-03-16 06:49:31.000000000 -0600
|
||||
+++ ./extensions/sfext/sort/BVCI1.c 2013-08-28 13:12:30.385244306 -0600
|
||||
@@ -12,9 +12,9 @@ b : -1 if u < v in lex order, 0 if u = v
|
||||
======================================================================*/
|
||||
#include "qepcad.h"
|
||||
|
||||
-Word BVCI1(Word *u_, Word *v_, Word n)
|
||||
+Word BVCI1(const Word *u_, const Word *v_, Word n)
|
||||
{
|
||||
- Word *w,*u,*v;
|
||||
+ const Word *w,*u,*v;
|
||||
u = u_+1;
|
||||
v = v_+1;
|
||||
w = u + n;
|
||||
--- ./extensions/sfext/sort/BVC.c.orig 2012-03-16 06:49:31.000000000 -0600
|
||||
+++ ./extensions/sfext/sort/BVC.c 2013-08-28 13:12:21.033150320 -0600
|
||||
@@ -12,9 +12,9 @@ b : -1 if u < v in lex order, 0 if u = v
|
||||
======================================================================*/
|
||||
#include "mysort.h"
|
||||
|
||||
-Word BVC(Word *u_, Word *v_, Word n)
|
||||
+Word BVC(const Word *u_, const Word *v_, Word n)
|
||||
{
|
||||
- Word *w,*u,*v;
|
||||
+ const Word *w,*u,*v;
|
||||
u = u_;
|
||||
v = v_;
|
||||
w = u + n;
|
||||
--- ./extensions/sfext/addpol/MINPFSETNSC.c.orig 2012-03-16 06:49:31.000000000 -0600
|
||||
+++ ./extensions/sfext/addpol/MINPFSETNSC.c 2013-08-28 16:29:15.985921210 -0600
|
||||
@@ -25,6 +25,8 @@ outputs
|
||||
#define BDCOMP(a,b) ((a) > (b) ? 1 : ((a) < (b) ? -1 : 0))
|
||||
#define CFLCT 5
|
||||
|
||||
+static Word comp1(Word a, Word b) __pure;
|
||||
+
|
||||
static Word comp1(Word a,Word b) {
|
||||
Word A,B,t;
|
||||
A = RED(a); B = RED(b); t = 0;
|
||||
--- ./extensions/sfext/mysort.h.orig 2012-03-16 06:49:31.000000000 -0600
|
||||
+++ ./extensions/sfext/mysort.h 2013-08-28 11:29:59.907828961 -0600
|
||||
@@ -52,7 +52,7 @@ Side Effects
|
||||
Word GMSDS(Word *A, Word m, Word (*C)(Word,Word));
|
||||
|
||||
|
||||
-extern Word BVC(Word *u_,Word *v_,Word n);
|
||||
+extern Word BVC(const Word *u_,const Word *v_,Word n) __pure;
|
||||
extern void BVIS(Word **A,Word m,Word n);
|
||||
-extern Word BVCI1(Word *u_,Word *v_,Word n);
|
||||
+extern Word BVCI1(const Word *u_,const Word *v_,Word n) __pure;
|
||||
extern void BVISI1(Word **A,Word m,Word n);
|
||||
--- ./extensions/newadj/HATEST.c.orig 2012-03-16 06:49:31.000000000 -0600
|
||||
+++ ./extensions/newadj/HATEST.c 2013-08-30 13:26:52.518542789 -0600
|
||||
@@ -1,5 +1,5 @@
|
||||
#include "newadj2D.h"
|
||||
-Word ISSECTOR(Word C) { return LAST(LELTI(C,INDX)) % 2; }
|
||||
+static Word __pure ISSECTOR(Word C) { return LAST(LELTI(C,INDX)) % 2; }
|
||||
void SAMPLECWR(Word c);
|
||||
void strippedAFLWR(Word M,Word I,Word N,Word a,Word A);
|
||||
void ANDWRITExx(Word M,Word I,Word n);
|
||||
--- ./source/qepcad.h.orig 2012-03-16 06:49:30.000000000 -0600
|
||||
+++ ./source/qepcad.h 2013-08-30 14:39:10.225632400 -0600
|
||||
@@ -134,10 +134,10 @@ void IPLLDWRMOD(Word V, Word A);
|
||||
void IPLSRP(Word A, Word *s_, Word *P_);
|
||||
Word IPRESPRS(Word r, Word A, Word B);
|
||||
Word IPRNEVAL(BDigit r, Word P, BDigit t, Word b);
|
||||
-Word ISATOMF(Word F);
|
||||
+Word ISATOMF(Word F) __pure;
|
||||
Word ISDESIRED(Word c, Word C);
|
||||
Word ISNULL(Word L);
|
||||
-Word ISPRIMIT(Word s);
|
||||
+Word ISPRIMIT(Word s) __pure;
|
||||
void IUPRWR(Word v, Word A, Word I);
|
||||
Word IXCOMP(Word c1, Word c2);
|
||||
void LABELWR(Word N, Word I);
|
||||
@@ -148,7 +148,7 @@ Word LOAR(Word k, Word Q, Word F);
|
||||
Word LPFTOLRLP(Word r, Word L);
|
||||
Word LPFZCALL(Word c, Word P, Word D);
|
||||
Word LUNION(Word L1, Word L2);
|
||||
-Word LVCOMP(Word c1, Word c2);
|
||||
+Word LVCOMP(Word c1, Word c2) __pure;
|
||||
Word MAFDIF(Word p,Word a,Word b);
|
||||
Word MAFHOM(Word p,Word M,Word a);
|
||||
Word MAFINV(Word p,Word M,Word a);
|
||||
@@ -158,7 +158,7 @@ Word MAFUPEPROD(Word p,Word M,Word a,Wor
|
||||
Word MAFUPGCD(Word p,Word M,Word A,Word B);
|
||||
Word MAFUPMON(Word p, Word M, Word A);
|
||||
Word MAFUPNR(Word p, Word M, Word A, Word B);
|
||||
-Word MATCHWORD(Word A, Word B);
|
||||
+Word MATCHWORD(Word A, Word B) __pure;
|
||||
Word MBPROD(Word A, Word B);
|
||||
Word MCELL(Word a1, Word a2, Word a3, Word a4, Word a5, Word a6, Word a7, Word a8, Word a9, Word a10);
|
||||
Word MKMUL(Word E, Word k);
|
||||
@@ -169,7 +169,7 @@ Word MPOLY(Word a1, Word a2, Word a3, Wo
|
||||
Word MUPNR(Word p,Word A,Word B);
|
||||
Word MVLMA(Word H_t, Word H_f);
|
||||
Word MVLMASF(Word H_t, Word H_f);
|
||||
-Word NEGRLOP(Word T);
|
||||
+Word NEGRLOP(Word T) __constfunc;
|
||||
void NEXTCELL(Word D, Word c, Word *cp_, Word *t_);
|
||||
void NEXTCOMB(Word n, Word r, Word Rs, Word *R_, Word *q_);
|
||||
void NEXTLEXI(Word l, Word Rs, Word *R_, Word *q_);
|
||||
@@ -188,12 +188,12 @@ void PARENTWR(Word P);
|
||||
void PCADWR(Word c);
|
||||
void PCADSWR(Word c);
|
||||
Word PFCOICQ(Word r, Word A, Word c, Word P, Word D);
|
||||
-Word PFPRDQ(Word P);
|
||||
+Word PFPRDQ(Word P) __pure;
|
||||
void PIMPTBLWR(Word C, Word R, Word V);
|
||||
void PLABELWR(Word P);
|
||||
Word PLDEG(Word P);
|
||||
Word PLPOS(Word P, Word i);
|
||||
-Word PPPRDQ(Word P);
|
||||
+Word PPPRDQ(Word P) __pure;
|
||||
void PQFF(Word F, Word L, Word *Lp_);
|
||||
void PRDADJINFO();
|
||||
void PRDCC();
|
||||
@@ -209,7 +209,7 @@ void PRLDB();
|
||||
void PRODWR(Word v);
|
||||
void PROMPT();
|
||||
void PROPAGATE(Word D, Word c, Word k, Word f, Word Q);
|
||||
-void PRQUIT();
|
||||
+void PRQUIT() __noreturn;
|
||||
void PRTRACEA();
|
||||
void PRTRACED();
|
||||
void PRUDB();
|
||||
@@ -217,7 +217,7 @@ void PRWHATIS();
|
||||
void PSIGTBL(Word c, Word f, Word T_t, Word T_f, Word *Tp_t_, Word *Tp_f_);
|
||||
void PSIMREP(Word r, Word P, Word *rs_, Word *Ps_);
|
||||
void QEGLOBALS();
|
||||
-const char* QEPCADBVersion();
|
||||
+const char* QEPCADBVersion() __constfunc;
|
||||
Word QFFFSOP(Word H, Word P, Word f);
|
||||
void QFFLPWR(Word N, Word V, Word F);
|
||||
void QFFLWR(Word N, Word V, Word F);
|
||||
@@ -239,7 +239,7 @@ Word RMMPF(Word P, Word k);
|
||||
Word RMMPJ(Word J, Word k);
|
||||
Word RMNOTOP(Word F);
|
||||
Word RMNOTOPN(Word F);
|
||||
-Word RNFAF(Word a);
|
||||
+Word RNFAF(Word a) __pure;
|
||||
Word RVSPTSVSP(BDigit r, Word P, BDigit s);
|
||||
void SALGF(Word f, Word F, Word *G_, Word *H_);
|
||||
void SAMPLEWR(Word r, Word s, Word PCNUMDEC);
|
||||
@@ -263,7 +263,7 @@ Word SOPFST(Word T);
|
||||
Word SOSRSUBS(Word L);
|
||||
Word SOSRSUPS(Word L);
|
||||
void SPFRPSFT(Word P, Word c, Word k, Word *R_, Word *F_);
|
||||
-Word SSCOMP(Word c1, Word c2);
|
||||
+Word SSCOMP(Word c1, Word c2) __pure;
|
||||
Word STACKMULT(Word C);
|
||||
void STACKMWR(Word M);
|
||||
Word STFSOP(Word H);
|
||||
@@ -630,9 +630,9 @@ Word NEWDERIV(Word KT, Word P, Word Pb,
|
||||
void STRIPPED_BIGLOOP(Word Jb, Word Pb, Word P0, Word D0, Word N, Word *P_, Word *D_);
|
||||
Word CADSCL(Word C, Word i);
|
||||
Word CELLFINDEX(Word D, Word I);
|
||||
-Word CRCELL(Word d);
|
||||
+Word CRCELL(Word d) __pure;
|
||||
void CSN(Word c, Word D, Word *b_, Word *d_);
|
||||
-Word BZWAZ(Word a, Word b);
|
||||
+Word BZWAZ(Word a, Word b) __pure;
|
||||
void LISTOFCWTV(Word C, Word *Lt_, Word *Lf_);
|
||||
BDigit NUMSOLPOINTS(Word D, BDigit k);
|
||||
Word LPFOWCS(Word C, Word B, Word P);
|
||||
@@ -669,7 +669,7 @@ void LTFOCWTVMARK(Word C, Word *Lt_, Wor
|
||||
Word OPARTLIST(Word n);
|
||||
Word PARTLIST(Word n);
|
||||
Word SCAD2ESCAD(Word P, Word Ps, Word Ds, Word A);
|
||||
-Word SCCONFLICTQ(Word L1, Word L2);
|
||||
+Word SCCONFLICTQ(Word L1, Word L2) __pure;
|
||||
Word SCFILTER(Word c, Word d);
|
||||
void SETCADTV2MARK(Word D);
|
||||
void SETMARK2FMA(Word D, Word F, Word P);
|
||||
@@ -693,7 +693,7 @@ void CSORTSS(Word **A, Word a, Word L);
|
||||
Word ICSIGDIFFL(Word **A, Word a, Word k);
|
||||
Word MINPFSET(Word P, Word S, Word D, Word N);
|
||||
Word PWUDSCWCP(Word D, Word P, Word N);
|
||||
-Word SIGEQUALOL(Word *A, Word *B, Word L);
|
||||
+Word SIGEQUALOL(Word *A, Word *B, Word L) __pure;
|
||||
void TDTOD(Word P, Word N, Word ***P2_, Word *P1_, Word *k_);
|
||||
Word FMA2DNF(Word F);
|
||||
Word FMA2QUNF(Word F, Word P);
|
||||
@@ -705,8 +705,8 @@ Word FMADMQ(Word F,Word C,Word k,Word P)
|
||||
Word singleFMADMQ(Word F,Word C,Word k,Word P);
|
||||
void FMAIWRITE(Word F);
|
||||
Word FMALEVEL(Word F);
|
||||
-Word FMAOPCOMBINE(Word F);
|
||||
-Word FMAQEXTAF(Word F) ;
|
||||
+Word FMAOPCOMBINE(Word F) __pure;
|
||||
+Word FMAQEXTAF(Word F) __pure;
|
||||
Word FMAPOLLIST(Word F, Word P);
|
||||
void FMAREAD(Word P,Word V, Word *F_,Word *t_);
|
||||
Word FMASMOOTH(Word F);
|
||||
@@ -723,9 +723,9 @@ void FMAWRITENEWLINEp(Word F, Word P, Wo
|
||||
void FMAWRITEQEIN(Word F, Word P, Word V);
|
||||
void FMAWRITEp(Word F, Word P, Word V, Word flag);
|
||||
Word FMA_REMCONST(Word F);
|
||||
-Word FTYPEINFO(Word A);
|
||||
+Word FTYPEINFO(Word A) __pure;
|
||||
void IPDWRITELATEX(Word r, Word A, Word V);
|
||||
-Word POLINDEX2SIGINDEX(Word P_i, Word j);
|
||||
+Word POLINDEX2SIGINDEX(Word P_i, Word j) __pure;
|
||||
void SETTV2FMA(Word D, Word P, Word F, Word k);
|
||||
void SETORDERfromFMA(Word D,Word P,Word F,Word o);
|
||||
void SETORDER(Word D,Word P,Word V);
|
||||
@@ -739,7 +739,7 @@ Word RSFHSP(Word A, Word *Ab_);
|
||||
Word CADCL(Word C, Word i);
|
||||
Word CADFPCAD(Word D, Word P, Word S, Word I, Word Pb);
|
||||
Word CADFPCADWI(Word D, Word P, Word S, Word I, Word Pb);
|
||||
-Word CATV(Word c);
|
||||
+Word CATV(Word c) __pure;
|
||||
void CCADCON(Word n, Word P, Word C, Word *Ps_, Word *Cs_);
|
||||
void CCADCONEXT(Word n, Word P, Word C, Word *Ps_, Word *Cs_, Word *N_);
|
||||
void CCADCONFPFS(Word n, Word P, Word C, Word N, Word *Ps_, Word *Cs_);
|
||||
@@ -749,7 +749,7 @@ Word CHTVQ(Word cs, Word b);
|
||||
Word CTSEQ(Word as, Word bs);
|
||||
void LTFOCALWTV(Word C, Word n, Word *Lt_, Word *Lf_);
|
||||
void LTFOCWTV(Word C, Word *Lt_, Word *Lf_);
|
||||
-Word PCADCFCADC(Word c, Word Cs);
|
||||
+Word PCADCFCADC(Word c, Word Cs) __pure;
|
||||
Word PCADCINDEX(Word c);
|
||||
Word PCADCL(Word Cs, Word i);
|
||||
Word PCADCSV(Word cs, Word Ps);
|
||||
@@ -792,7 +792,7 @@ Word DOPFSUFF(Word P, Word K);
|
||||
Word ESPCADDOPFSUFF(Word P, Word K);
|
||||
Word GEOPARTII(Word F, Word S, Word P, Word Fs);
|
||||
Word GEODATA(Word c, Word A, Word P);
|
||||
-Word GEOHEURISTIC(Word a, Word b);
|
||||
+Word GEOHEURISTIC(Word a, Word b) __pure;
|
||||
Word GEOMERGE(Word c,Word G,Word P);
|
||||
Word GEOFIT(Word c,Word G,Word P);
|
||||
Word ATOMFILTER(Word L_A,Word L_C,Word P);
|
||||
@@ -820,7 +820,7 @@ Word NECCONDS(Word L_T, Word L_F, Word L
|
||||
Word DOPFSUFF_FULLD(Word P, Word K);
|
||||
Word ESPCADDOPFSUFF_FULLD(Word P, Word K);
|
||||
Word BVC(Word *u_, Word *v_, Word n);
|
||||
-Word BVCI1(Word *u_, Word *v_, Word n);
|
||||
+Word BVCI1(Word *u_, Word *v_, Word n) __pure;
|
||||
void BVIS(Word **A, Word m, Word n);
|
||||
void BVISI1(Word **A, Word m, Word n);
|
||||
void GIS(Word *A, Word m, Word (*C)(Word,Word));
|
||||
--- ./source/main/qepcadcls.h.orig 2012-03-16 06:49:30.000000000 -0600
|
||||
+++ ./source/main/qepcadcls.h 2013-08-30 13:29:46.950334457 -0600
|
||||
@@ -213,7 +213,7 @@ Word NMATOM; /* Number of atom
|
||||
void CHCELL(Word cs, Word *c_, Word *t_);
|
||||
void ECLI(Word D, Word *c_, Word *t_);
|
||||
BDigit SCREEN(Word c);
|
||||
- BDigit SCREENBYQUANTIFIER(Word c);
|
||||
+ BDigit SCREENBYQUANTIFIER(Word c) __pure;
|
||||
Word ISFECLI(Word D);
|
||||
Word INITPCAD();
|
||||
void EVALUATE(Word c, Word k, Word F, Word A);
|
||||
--- ./source/ticad/QFFTEV.c.orig 2012-03-16 06:49:30.000000000 -0600
|
||||
+++ ./source/ticad/QFFTEV.c 2013-08-30 13:34:05.245953999 -0600
|
||||
@@ -12,7 +12,7 @@ Quantifier-Free Formula Trial Evaluation
|
||||
\parm{t} is the trial truth value of $F$ on the cell $c$.
|
||||
======================================================================*/
|
||||
#include "qepcad.h"
|
||||
-static Word zeroQ(Word s, Word I_L);
|
||||
+static Word zeroQ(Word s, Word I_L) __pure;
|
||||
static Word ATOMETFEVAL(Word Q, Word D, Word c, Word F);
|
||||
|
||||
Word QepcadCls::QFFTEV(Word F, Word c, Word k)
|
||||
--- ./source/userint/PRQUIT.c.orig 2012-03-16 06:49:30.000000000 -0600
|
||||
+++ ./source/userint/PRQUIT.c 2013-08-30 14:40:03.857550869 -0600
|
||||
@@ -13,7 +13,4 @@ Step1: /* Process. */
|
||||
ENDQEPCAD();
|
||||
ENDSACLIB(SAC_FREEMEM);
|
||||
exit(0);
|
||||
-
|
||||
-Return: /* Prepare for return. */
|
||||
- return;
|
||||
}
|
|
@ -0,0 +1,125 @@
|
|||
--- ./plot2d/plot.cc.orig 2012-03-16 06:49:32.000000000 -0600
|
||||
+++ ./plot2d/plot.cc 2013-08-30 16:51:16.409298807 -0600
|
||||
@@ -37,6 +37,7 @@ class CADELT
|
||||
public:
|
||||
virtual bool read(istream &in) = 0;
|
||||
virtual void glRend(const CADColors &C) = 0;
|
||||
+ virtual ~CADELT() {}
|
||||
};
|
||||
|
||||
class SNoverSR : public CADELT
|
||||
--- ./extensions/rend/Rend_Sample.cc.orig 2012-03-16 06:49:31.000000000 -0600
|
||||
+++ ./extensions/rend/Rend_Sample.cc 2013-08-30 16:59:11.255885740 -0600
|
||||
@@ -40,11 +40,6 @@ Rend_Sample_1DS::Rend_Sample_1DS(Word C,
|
||||
}
|
||||
|
||||
|
||||
-Rend_Sample_1DS::~Rend_Sample_1DS()
|
||||
-{
|
||||
-
|
||||
-}
|
||||
-
|
||||
/*************************************************************
|
||||
** Refines I to 2^k or less, and returns binary rational
|
||||
** middle of interval.
|
||||
@@ -112,13 +107,6 @@ Rend_Sample_1DO::Rend_Sample_1DO(Rend_Ce
|
||||
L.W = NIL;
|
||||
}
|
||||
|
||||
-
|
||||
-Rend_Sample_1DO::~Rend_Sample_1DO()
|
||||
-{
|
||||
-
|
||||
-}
|
||||
-
|
||||
-
|
||||
Word Rend_Sample_1DO::coordinate(int k)
|
||||
{
|
||||
Word e,j1,j2,J,kp = k;
|
||||
@@ -178,11 +166,6 @@ Rend_Sample_2DS::Rend_Sample_2DS(Word C)
|
||||
}
|
||||
|
||||
|
||||
-Rend_Sample_2DS::~Rend_Sample_2DS()
|
||||
-{
|
||||
-
|
||||
-}
|
||||
-
|
||||
/*************************************************************
|
||||
** Refines I to 2^k or less, and returns binary rational
|
||||
** lower endpoint.
|
||||
@@ -237,11 +220,6 @@ Rend_Sample_2DC::Rend_Sample_2DC(Word C,
|
||||
|
||||
}
|
||||
|
||||
-Rend_Sample_2DC::~Rend_Sample_2DC()
|
||||
-{
|
||||
-
|
||||
-}
|
||||
-
|
||||
Word Rend_Sample_2DC::coordinate(int k)
|
||||
{
|
||||
return L.W;
|
||||
@@ -265,11 +243,6 @@ Rend_Sample_BR::Rend_Sample_BR(Word a)
|
||||
N.W = a;
|
||||
}
|
||||
|
||||
-Rend_Sample_BR::~Rend_Sample_BR()
|
||||
-{
|
||||
-
|
||||
-}
|
||||
-
|
||||
Word Rend_Sample_BR::coordinate(int k)
|
||||
{
|
||||
return N.W;
|
||||
--- ./extensions/rend/Rend_Sample.h.orig 2012-03-16 06:49:31.000000000 -0600
|
||||
+++ ./extensions/rend/Rend_Sample.h 2013-08-30 16:58:37.015983821 -0600
|
||||
@@ -32,7 +32,7 @@ class Rend_Sample
|
||||
virtual Word coordinate(int k) = 0;
|
||||
virtual Word round(int k,int roundup)
|
||||
{ return this -> coordinate(k); }
|
||||
- // virtual ~Rend_Sample() = 0;
|
||||
+ virtual ~Rend_Sample() {}
|
||||
};
|
||||
|
||||
class Rend_Sample_1DS : public Rend_Sample
|
||||
@@ -49,7 +49,6 @@ private:
|
||||
gcmemloc A,I;
|
||||
public:
|
||||
Rend_Sample_1DS(Word C, Word P);
|
||||
- virtual ~Rend_Sample_1DS();
|
||||
virtual Word coordinate(int k);
|
||||
virtual Word round(int k, int roundup);
|
||||
Word weakcompare(Word R);
|
||||
@@ -66,7 +65,6 @@ public:
|
||||
gcmemloc L;
|
||||
public:
|
||||
Rend_Sample_1DO(Rend_Cell *dad);
|
||||
- virtual ~Rend_Sample_1DO();
|
||||
virtual Word coordinate(int k);
|
||||
|
||||
};
|
||||
@@ -86,7 +84,6 @@ private:
|
||||
gcmemloc A,I;
|
||||
public:
|
||||
Rend_Sample_2DS(Word C);
|
||||
- virtual ~Rend_Sample_2DS();
|
||||
virtual Word coordinate(int k);
|
||||
|
||||
};
|
||||
@@ -101,7 +98,6 @@ public:
|
||||
gcmemloc L;
|
||||
public:
|
||||
Rend_Sample_2DC(Word C,Word P);
|
||||
- virtual ~Rend_Sample_2DC();
|
||||
virtual Word coordinate(int k);
|
||||
void add_point(Word p);
|
||||
void clear_points();
|
||||
@@ -116,7 +112,6 @@ private:
|
||||
gcmemloc N;
|
||||
public:
|
||||
Rend_Sample_BR(Word a);
|
||||
- virtual ~Rend_Sample_BR();
|
||||
virtual Word coordinate(int k);
|
||||
};
|
||||
|
|
@ -0,0 +1,11 @@
|
|||
--- ./source/main/BEGINQEPCAD.c.orig 2012-03-16 06:49:30.000000000 -0600
|
||||
+++ ./source/main/BEGINQEPCAD.c 2013-07-18 16:57:34.694879193 -0600
|
||||
@@ -98,7 +98,7 @@ void BEGINQEPCAD(int &argc, char**& argv
|
||||
void QEPCAD_ProcessRC(int argc, char **argv)
|
||||
{
|
||||
char *qepath = getenv("qe");
|
||||
- if (qepath == NULL) { FAIL("QEPCAD_ProcessRC","Environment variable qe not defined!"); }
|
||||
+ if (qepath == NULL) { setenv("qe", "/usr/share/qepcad", 1); qepath = getenv("qe"); }
|
||||
string rcFileName = qepath + string("/default.qepcadrc");
|
||||
ifstream rcin(rcFileName.c_str());
|
||||
if (!rcin) { return; }
|
|
@ -0,0 +1,132 @@
|
|||
--- ./extensions/lift2D/IBPRRIOAP.c.orig 2012-03-16 06:49:32.000000000 -0600
|
||||
+++ ./extensions/lift2D/IBPRRIOAP.c 2013-08-30 16:03:12.403968400 -0600
|
||||
@@ -95,7 +95,7 @@ Step3: /* Isolate the roots of B(alpha,y
|
||||
goto Return; }
|
||||
|
||||
/* get trend of first root */
|
||||
- if (PDEG(B) % 2 == 0 && s == 1 || PDEG(B) % 2 == 1 && s == -1)
|
||||
+ if ((PDEG(B) % 2 == 0 && s == 1) || (PDEG(B) % 2 == 1 && s == -1))
|
||||
t1 = -1;
|
||||
else
|
||||
t1 = 1;
|
||||
--- ./extensions/lift2D/modIBPRRIOAP.c.orig 2012-03-16 06:49:32.000000000 -0600
|
||||
+++ ./extensions/lift2D/modIBPRRIOAP.c 2013-08-30 16:02:49.164007931 -0600
|
||||
@@ -97,7 +97,7 @@ Step3: /* Isolate the roots of B(alpha,y
|
||||
goto Return; }
|
||||
|
||||
/* get trend of first root */
|
||||
- if (PDEG(B) % 2 == 0 && s == 1 || PDEG(B) % 2 == 1 && s == -1)
|
||||
+ if ((PDEG(B) % 2 == 0 && s == 1) || (PDEG(B) % 2 == 1 && s == -1))
|
||||
t1 = -1;
|
||||
else
|
||||
t1 = 1;
|
||||
--- ./extensions/adj2d/truthbytop/BOUNDARY2D.c.orig 2012-03-16 06:49:32.000000000 -0600
|
||||
+++ ./extensions/adj2d/truthbytop/BOUNDARY2D.c 2013-08-30 16:14:29.779797280 -0600
|
||||
@@ -80,7 +80,7 @@ Step6: /* Split cell list by dimension.
|
||||
tc++;
|
||||
else
|
||||
fc++; }
|
||||
- if (tc > 0 && fc > 0 || GVERTEXLABEL(v,G) == TRUE && tc == 0)
|
||||
+ if ((tc > 0 && fc > 0) || (GVERTEXLABEL(v,G) == TRUE && tc == 0))
|
||||
GNEWLABEL(v,TRUE,G);
|
||||
else
|
||||
GNEWLABEL(v,FALSE,G); }
|
||||
--- ./source/db/SINGULAR.c.orig 2012-03-16 06:49:30.000000000 -0600
|
||||
+++ ./source/db/SINGULAR.c 2013-08-30 16:04:35.516826349 -0600
|
||||
@@ -58,7 +58,7 @@ void SingularServer::reportStats(ostream
|
||||
|
||||
char peekNonWS(istream &in)
|
||||
{
|
||||
- char c; while((c = in.peek()) && c == ' ' || c == '\t' || c == '\n') in.get(); return c;
|
||||
+ char c; while(c = in.peek() && (c == ' ' || c == '\t' || c == '\n')) in.get(); return c;
|
||||
}
|
||||
|
||||
|
||||
--- ./source/db/convenientstreams.h.orig 2012-03-16 06:49:30.000000000 -0600
|
||||
+++ ./source/db/convenientstreams.h 2013-08-30 16:05:34.707724662 -0600
|
||||
@@ -31,7 +31,7 @@ public:
|
||||
string s = "";
|
||||
char c = in.get();
|
||||
if (opt == skipleadingws)
|
||||
- while(c != EOF && (isspace(c) || c == '\\' && isspace(in.peek()))) c = in.get();
|
||||
+ while(c != EOF && (isspace(c) || (c == '\\' && isspace(in.peek())))) c = in.get();
|
||||
// States : 0 = normal, 1 = in comment, 2 = just read a backslash
|
||||
int state = 0;
|
||||
do {
|
||||
--- ./source/proj/GROUPSAMEPJ.c.orig 2012-03-16 06:49:30.000000000 -0600
|
||||
+++ ./source/proj/GROUPSAMEPJ.c 2013-08-30 16:10:24.459222092 -0600
|
||||
@@ -46,7 +46,7 @@ BDigit PRJPNTEQUAL(Word A, Word B)
|
||||
Word KR = LIST2(SECOND(aK),LIST2(1,1));
|
||||
Word sL = AFSIGN(aM,aI,AFPEMV(1,aM,G,KL));
|
||||
Word sR = AFSIGN(aM,aI,AFPEMV(1,aM,G,KR));
|
||||
- return EQUAL(KL,KR) && sL == 0 || sL == 1 && sR == -1 || sL == -1 && sR == 1;
|
||||
+ return (EQUAL(KL,KR) && sL == 0) || (sL == 1 && sR == -1) || (sL == -1 && sR == 1);
|
||||
}
|
||||
|
||||
/* One primitive, the other not */
|
||||
@@ -75,10 +75,10 @@ Step1: /* Group. */
|
||||
{
|
||||
ADV(Jt,&J2,&Jt);
|
||||
Jt2 = LELTI(J2,PO_POLY);
|
||||
- if (LELTI(J1,PO_TYPE) == PO_POINT && LELTI(J2,PO_TYPE) == PO_POINT
|
||||
- && PRJPNTEQUAL(Js1,Jt2) ||
|
||||
- LELTI(J1,PO_TYPE) != PO_POINT && LELTI(J2,PO_TYPE) != PO_POINT
|
||||
- && EQUAL(Js1,Jt2))
|
||||
+ if ((LELTI(J1,PO_TYPE) == PO_POINT && LELTI(J2,PO_TYPE) == PO_POINT
|
||||
+ && PRJPNTEQUAL(Js1,Jt2)) ||
|
||||
+ (LELTI(J1,PO_TYPE) != PO_POINT && LELTI(J2,PO_TYPE) != PO_POINT
|
||||
+ && EQUAL(Js1,Jt2)))
|
||||
{
|
||||
SLELTI(J2,PO_PARENT,CONC(LELTI(J2,PO_PARENT),LELTI(J1,PO_PARENT)));
|
||||
t = 1;
|
||||
--- ./source/proj/PROJMCECmod.c.orig 2012-03-16 06:49:30.000000000 -0600
|
||||
+++ ./source/proj/PROJMCECmod.c 2013-08-30 16:12:22.235018024 -0600
|
||||
@@ -67,7 +67,7 @@ Step1: /* Obtain coefficients. */
|
||||
t = 1; }
|
||||
|
||||
/* If r = 2 OR r-1 is in free variable space, the leading coefficient is always enough! */
|
||||
- if (t && (r == 2 || (PCMZERROR && r-1 <= GVNFV))
|
||||
+ if ((t && (r == 2 || (PCMZERROR && r-1 <= GVNFV)))
|
||||
|| (experimentalExtensionFlag && qfrCheckNonNullified(r,Ap1,GVNA.W,GVNQFF.W,GVVL.W))
|
||||
)
|
||||
t = 0;
|
||||
@@ -101,7 +101,7 @@ Step1: /* Obtain coefficients. */
|
||||
tf = tf || (Q == FULLDE || Q == FULLDA);
|
||||
|
||||
/* Test 3: in free variable space when the PCMZERROR option is used */
|
||||
- tf = tf || PCMZERROR && rp <= GVNFV;
|
||||
+ tf = tf || (PCMZERROR && rp <= GVNFV);
|
||||
|
||||
/* Test 4: has no common zero with the system of all other coefficients */
|
||||
if (!tf)
|
||||
--- ./source/proj/PROJMCmod.c.orig 2012-03-16 06:49:30.000000000 -0600
|
||||
+++ ./source/proj/PROJMCmod.c 2013-08-30 16:11:49.731074222 -0600
|
||||
@@ -57,7 +57,7 @@ Step1: /* Obtain coefficients. */
|
||||
t = 1; }
|
||||
|
||||
/* If r = 2 OR r-1 is in free variable space, the leading coefficient is always enough! */
|
||||
- if (t && (r == 2 || (PCMZERROR && r-1 <= GVNFV))
|
||||
+ if ((t && (r == 2 || (PCMZERROR && r-1 <= GVNFV)))
|
||||
|| (experimentalExtensionFlag && qfrCheckNonNullified(r,Ap1,GVNA.W,GVNQFF.W,GVVL.W))
|
||||
)
|
||||
t = 0;
|
||||
@@ -91,7 +91,7 @@ Step1: /* Obtain coefficients. */
|
||||
tf = tf || (Q == FULLDE || Q == FULLDA);
|
||||
|
||||
/* Test 3: in free variable space when the PCMZERROR option is used */
|
||||
- tf = tf || PCMZERROR && rp <= GVNFV;
|
||||
+ tf = tf || (PCMZERROR && rp <= GVNFV);
|
||||
|
||||
/* Test 4: has no common zero with the system of all other coefficients */
|
||||
if (!tf)
|
||||
--- ./source/ticad/INITPCAD.c.orig 2012-03-16 06:49:30.000000000 -0600
|
||||
+++ ./source/ticad/INITPCAD.c 2013-08-30 16:13:07.946938949 -0600
|
||||
@@ -14,7 +14,7 @@ Word QepcadCls::INITPCAD()
|
||||
Word D, tv;
|
||||
|
||||
Step0: /* Determine truth value! */
|
||||
- if (GVNA == FALSE || GVNA != NIL && LELTI(GVNA,1) == NEOP && LELTI(GVNA,2) == 0) tv = NA;
|
||||
+ if (GVNA == FALSE || (GVNA != NIL && LELTI(GVNA,1) == NEOP && LELTI(GVNA,2) == 0)) tv = NA;
|
||||
else if (LELTI(GVNQFF,1) == NEOP && LELTI(GVNQFF,2) == 0) tv = FALSE;
|
||||
else if (LELTI(GVNQFF,1) == EQOP && LELTI(GVNQFF,2) == 0) tv = TRUE;
|
||||
else tv = UNDET;
|
|
@ -0,0 +1,56 @@
|
|||
--- ./extensions/sfext/formula/FTYPEINFO.c.orig 2012-03-16 06:49:31.000000000 -0600
|
||||
+++ ./extensions/sfext/formula/FTYPEINFO.c 2013-08-30 15:48:28.420527430 -0600
|
||||
@@ -23,6 +23,6 @@ Word FTYPEINFO(Word A)
|
||||
return TRUE;
|
||||
if (FIRST(A) == FALSE)
|
||||
return FALSE;
|
||||
-
|
||||
+ FAIL("FTYPEINFO","Unknown formula type!");
|
||||
}
|
||||
|
||||
--- ./source/qepcad.h.orig 2013-08-30 14:39:10.225632400 -0600
|
||||
+++ ./source/qepcad.h 2013-08-30 16:17:46.258481805 -0600
|
||||
@@ -34,7 +34,7 @@ Word AFPNIPDB(Word Mb, Word B);
|
||||
void AFUPGCDB(Word M, Word A, Word B, Word *C_, Word *Ab_, Word *Bb_);
|
||||
void AFUPLM(Word M, Word A, Word *L_, Word *P_);
|
||||
void AFUPRWR(Word a, Word v, Word A, Word I);
|
||||
-Word AFUPSFNDB(Word M, Word B, Word *t_, Word *Bt_, Word *F_);
|
||||
+void AFUPSFNDB(Word M, Word B, Word *t_, Word *Bt_, Word *F_);
|
||||
Word APPEND(Word P, Word k, Word R);
|
||||
void APPENDEC(Word P, Word k, Word R, Word *Ps_, Word *F_);
|
||||
void ATOMFLWR(Word N, Word V, Word A);
|
||||
--- ./source/db/AFUPSFNDB.c.orig 2012-03-16 06:49:30.000000000 -0600
|
||||
+++ ./source/db/AFUPSFNDB.c 2013-08-30 16:18:05.419450506 -0600
|
||||
@@ -5,7 +5,7 @@ AFUPSFN with Database.
|
||||
======================================================================*/
|
||||
#include "qepcad.h"
|
||||
|
||||
-Word AFUPSFNDB(Word M, Word B, Word *t_, Word *Bt_, Word *F_)
|
||||
+void AFUPSFNDB(Word M, Word B, Word *t_, Word *Bt_, Word *F_)
|
||||
{
|
||||
Word t,Bt,F;
|
||||
|
||||
--- ./source/db/SingSacPolicy.h.orig 2012-03-16 06:49:30.000000000 -0600
|
||||
+++ ./source/db/SingSacPolicy.h 2013-08-30 16:20:40.923189610 -0600
|
||||
@@ -28,17 +28,17 @@ public:
|
||||
Word IPRES(Word r, Word A, Word B)
|
||||
{
|
||||
if (r > 2)
|
||||
- sing->IPRES(r,A,B);
|
||||
+ return sing->IPRES(r,A,B);
|
||||
else
|
||||
- sac ->IPRES(r,A,B);
|
||||
+ return sac ->IPRES(r,A,B);
|
||||
}
|
||||
|
||||
Word IPDSCR(Word r, Word A)
|
||||
{
|
||||
if (r > 2)
|
||||
- sing->IPDSCR(r,A);
|
||||
+ return sing->IPDSCR(r,A);
|
||||
else
|
||||
- sac ->IPDSCR(r,A);
|
||||
+ return sac ->IPDSCR(r,A);
|
||||
}
|
||||
|
||||
Word IPFACTGB(Word r, Word I, Word N)
|
|
@ -0,0 +1,78 @@
|
|||
--- ./plot2d/plot.cc.orig 2013-08-30 16:51:16.409298807 -0600
|
||||
+++ ./plot2d/plot.cc 2013-08-30 16:55:10.593713039 -0600
|
||||
@@ -134,7 +134,7 @@ void* readdata(void *x)
|
||||
pthread_mutex_lock(&M);
|
||||
swap(CE,E);
|
||||
pthread_mutex_unlock(&M);
|
||||
- for(int i = 0; i < E.size(); i++) delete E[i];
|
||||
+ for(size_t i = 0; i < E.size(); i++) delete E[i];
|
||||
E.clear(); }
|
||||
else if (c == 'E') { /******* Exit! *******************/
|
||||
return 0;
|
||||
@@ -155,7 +155,7 @@ void display()
|
||||
{
|
||||
pthread_mutex_lock(&M);
|
||||
glClear(GL_COLOR_BUFFER_BIT);
|
||||
- for(int i = 0; i < CE.size(); i++)
|
||||
+ for(size_t i = 0; i < CE.size(); i++)
|
||||
CE[i]->glRend(Colors);
|
||||
pthread_mutex_unlock(&M);
|
||||
glutSwapBuffers();
|
||||
@@ -286,7 +286,7 @@ void SNoverSR::glRend(const CADColors &C
|
||||
// 128 or so points that can appear.
|
||||
C.glSetColor(colorType,'D');
|
||||
glBegin(GL_LINE_STRIP);
|
||||
- for(int i = 0; i < V.size(); i++)
|
||||
+ for(size_t i = 0; i < V.size(); i++)
|
||||
glVertex2(V[i]);
|
||||
glEnd();
|
||||
}
|
||||
@@ -328,7 +328,7 @@ bool SRoverSR::read(istream &in)
|
||||
else
|
||||
{
|
||||
cerr << "Sector over sector in unknown format!" << endl;
|
||||
- for(int i = 0; i < V.size(); i++)
|
||||
+ for(size_t i = 0; i < V.size(); i++)
|
||||
cerr << V[i] << endl;
|
||||
exit(1);
|
||||
}
|
||||
--- ./source/db/SINGULAR.c.orig 2013-08-30 16:04:35.516826349 -0600
|
||||
+++ ./source/db/SINGULAR.c 2013-08-30 16:22:52.913963575 -0600
|
||||
@@ -67,7 +67,7 @@ Word readSingularPoly(Word r, Word V, is
|
||||
Word A, t;
|
||||
string s;
|
||||
in >> s;
|
||||
- for(int i = 0; i < s.length(); ++i)
|
||||
+ for(size_t i = 0; i < s.length(); ++i)
|
||||
if (s[i] == '*') s[i] = ' ';
|
||||
s += ".\n";
|
||||
istringstream si(s);
|
||||
@@ -108,7 +108,7 @@ string WritePolyForSingular(Word r, Word
|
||||
out = sout.str();
|
||||
}
|
||||
// Put in * symbols
|
||||
- for(int i = 1; i < out.length() - 1; ++i)
|
||||
+ for(size_t i = 1; i < out.length() - 1U; ++i)
|
||||
if (out[i] == ' ' && out[i+1] != '+' && out[i+1] != '-'
|
||||
&& out[i-1] != '+' && out[i-1] != '-'
|
||||
)
|
||||
--- ./source/saclib/gcword.c.orig 2012-03-16 06:49:30.000000000 -0600
|
||||
+++ ./source/saclib/gcword.c 2013-08-30 16:24:04.393840511 -0600
|
||||
@@ -30,7 +30,7 @@ void gcw_MARK();
|
||||
}
|
||||
|
||||
static vector<Word*> G;
|
||||
-static int lim = 10;
|
||||
+static size_t lim = 10;
|
||||
|
||||
void clean()
|
||||
{
|
||||
@@ -62,7 +62,7 @@ void gcw_MARK()
|
||||
{
|
||||
// SWRITE("gcw size is: ");IWRITE(G.size()); SWRITE("\n");
|
||||
clean();
|
||||
- for(int i = 0; i < G.size(); i++)
|
||||
+ for(size_t i = 0; i < G.size(); i++)
|
||||
if (*G[i] > BETA && *G[i] < BETAp && (*G[i] & 1))
|
||||
MARK(*G[i]);
|
||||
|
|
@ -0,0 +1,22 @@
|
|||
--- ./source/main/BEGINQEPCAD.c.orig 2013-07-18 16:57:34.694879193 -0600
|
||||
+++ ./source/main/BEGINQEPCAD.c 2013-08-30 16:28:15.882368349 -0600
|
||||
@@ -49,7 +49,7 @@ void BEGINQEPCAD(int &argc, char**& argv
|
||||
{
|
||||
int tmp = system("bash -c 'exit $(stty size | cut -d\" \" -f2)'");
|
||||
tmp = WEXITSTATUS(tmp);
|
||||
- if (10 <= tmp <= 512)
|
||||
+ if (10 <= tmp && tmp <= 512)
|
||||
cols = tmp;
|
||||
}
|
||||
|
||||
--- ./source/userint/USERINT.c.orig 2012-03-16 06:49:30.000000000 -0600
|
||||
+++ ./source/userint/USERINT.c 2013-08-30 16:30:52.370086235 -0600
|
||||
@@ -446,7 +446,7 @@ void VERTFILL2D(Word D)
|
||||
Word L, S, T, CB;
|
||||
|
||||
/* GET 1D CAD STACK */
|
||||
- L = L = LELTI(D,CHILD);
|
||||
+ L = LELTI(D,CHILD);
|
||||
if (L == NIL)
|
||||
{
|
||||
SWRITE("Must by a 2D CAD!\n");
|
|
@ -0,0 +1,314 @@
|
|||
--- ./cad2d/src/TICAD.c.orig 2012-03-16 06:49:32.000000000 -0600
|
||||
+++ ./cad2d/src/TICAD.c 2013-08-30 15:42:57.518153269 -0600
|
||||
@@ -43,6 +43,8 @@ Step2: /* Choose. */
|
||||
if (L == 0) { /* Init for 1D Sectors */
|
||||
L = LELTI(D,CHILD);
|
||||
d = 1; }
|
||||
+ else
|
||||
+ d = 0;
|
||||
|
||||
if (d == 1 && L != NIL) { /* Choose next 1D sectors */
|
||||
c = FIRST(L);
|
||||
@@ -51,6 +53,7 @@ Step2: /* Choose. */
|
||||
else
|
||||
L = RED2(L); }
|
||||
else if (d == 1 && L == NIL) { /* Init for 1D sections */
|
||||
+ c = NIL;
|
||||
d = 0;
|
||||
L = RED(LELTI(D,CHILD));
|
||||
}
|
||||
--- ./extensions/rend/WRITE_PS_INTERACTIVE.cc.orig 2012-03-16 06:49:31.000000000 -0600
|
||||
+++ ./extensions/rend/WRITE_PS_INTERACTIVE.cc 2013-08-28 15:31:47.564213356 -0600
|
||||
@@ -262,6 +262,8 @@ void WRITE_PS_INTERACTIVE(Rend_Cell &M,
|
||||
if (t == 'p') {
|
||||
SWRITE("Enter projetion factor by (level,index): ");
|
||||
p = LREAD(); }
|
||||
+ else
|
||||
+ p = NIL;
|
||||
|
||||
switch(c) {
|
||||
case 'x': // 1D Sectors
|
||||
--- ./extensions/lift2D/modIBPRRIOAPSF.c.orig 2012-03-16 06:49:32.000000000 -0600
|
||||
+++ ./extensions/lift2D/modIBPRRIOAPSF.c 2013-08-28 15:36:30.044273572 -0600
|
||||
@@ -77,6 +77,7 @@ Step4: /* Isolate the real roots of eac
|
||||
Step5: /* Refine roots? */
|
||||
if (k == NIL)
|
||||
goto Return;
|
||||
+ Js = NIL;
|
||||
Ls = NIL;
|
||||
for(Lp = L; Lp != NIL; Lp = RED(Lp))
|
||||
{
|
||||
--- ./extensions/lift2D/modHIPRRID.c.orig 2012-03-16 06:49:32.000000000 -0600
|
||||
+++ ./extensions/lift2D/modHIPRRID.c 2013-08-28 15:34:25.468248208 -0600
|
||||
@@ -28,6 +28,7 @@ Step1: /* Compute a bound for the positi
|
||||
k = HIPPRB(n,A);
|
||||
|
||||
Step2: /* Isolate the positive roots. */
|
||||
+ L = NIL;
|
||||
if (k == NIL) {
|
||||
L1 = NIL;
|
||||
goto Step3; }
|
||||
--- ./extensions/adj2d/oldadj/ACMADJ2D.c.orig 2012-03-16 06:49:31.000000000 -0600
|
||||
+++ ./extensions/adj2d/oldadj/ACMADJ2D.c 2013-08-28 15:27:00.100211471 -0600
|
||||
@@ -29,6 +29,7 @@ Step1: /* Get (A,I) defining c. */
|
||||
FIRST2(Ip,&ip1,&ip2);
|
||||
i1 = RNLBRN(ip1);
|
||||
i2 = RNLBRN(ip2);
|
||||
+ t = 0;
|
||||
|
||||
Step2: /* Get sample points for c_l and c_r. */
|
||||
i_l = RNLBRN(SPRLC(c_l));
|
||||
--- ./extensions/sfext/extlang/SCAD2ESCAD.c.orig 2012-03-16 06:49:31.000000000 -0600
|
||||
+++ ./extensions/sfext/extlang/SCAD2ESCAD.c 2013-08-28 14:48:30.455672479 -0600
|
||||
@@ -27,6 +27,8 @@ Step2: /* Generate correct i-level signi
|
||||
P_i = RED(P_i);
|
||||
s = RED(s); }
|
||||
s = INV(ss); }
|
||||
+ else
|
||||
+ s = NIL;
|
||||
|
||||
Step3: /* Construct extended Sub-CAD cell structure. */
|
||||
EDs = LIST7(C,A,LELTI(Ds,SC_INX),NIL,s,NIL,UNDET);
|
||||
--- ./extensions/sfext/sfcons/SFCFULLDf.c.orig 2012-03-16 06:49:31.000000000 -0600
|
||||
+++ ./extensions/sfext/sfcons/SFCFULLDf.c 2013-08-28 15:14:42.812090282 -0600
|
||||
@@ -52,6 +52,7 @@ Step2: /* Extended language. */
|
||||
|
||||
if (Lt == NIL && Lf == NIL) {
|
||||
SWRITE("No cells have truth values!\n");
|
||||
+ SF = NIL;
|
||||
goto Return; }
|
||||
t = ESPCADDOPFSUFF(Pp,LIST1(Dp));
|
||||
LA = LISTOETAmod(Pp,n,t==NIL);
|
||||
--- ./extensions/sfext/sfcons/SFC4.c.orig 2012-03-16 06:49:31.000000000 -0600
|
||||
+++ ./extensions/sfext/sfcons/SFC4.c 2013-08-30 15:15:10.647569953 -0600
|
||||
@@ -31,6 +31,7 @@ void QepcadCls::SFC4(Word D, Word P, Wor
|
||||
{
|
||||
Word t,SF,Dp,Pp,Lt,Lf,LA,Q,D1,P1,D0,P0,J0,i,Lp,pflag;
|
||||
char e,s,m,c;
|
||||
+ e = s = m = c = '\0';
|
||||
T1 = T2 = T3 = T4 = 0;
|
||||
F1 = 0;
|
||||
|
||||
--- ./extensions/sfext/sfcons/SFC3.c.orig 2012-03-16 06:49:31.000000000 -0600
|
||||
+++ ./extensions/sfext/sfcons/SFC3.c 2013-08-28 15:16:00.827160334 -0600
|
||||
@@ -90,7 +90,7 @@ Step3: /* The normal language. */
|
||||
switch(m) {
|
||||
case (0) : SF = NECCONDS(Lt,Lf,LA,Pp); break;
|
||||
case (1) : SF = NAIVESF(Lt,Lf,LA,Pp); break;
|
||||
- case (2) : SWRITE("GEOTEST requires the extended language!\n"); goto Return; } }
|
||||
+ case (2) : SF = NIL; SWRITE("GEOTEST requires the extended language!\n"); goto Return; } }
|
||||
|
||||
Step4: /* Massage the formula. */
|
||||
pflag = 1;
|
||||
--- ./extensions/sfext/sfcons/SFC3f.c.orig 2012-03-16 06:49:31.000000000 -0600
|
||||
+++ ./extensions/sfext/sfcons/SFC3f.c 2013-08-28 15:15:36.243138257 -0600
|
||||
@@ -88,7 +88,7 @@ Step3: /* The normal language. */
|
||||
switch(m) {
|
||||
case (0) : SF = NECCONDS(Lt,Lf,LA,Pp); break;
|
||||
case (1) : SF = NAIVESF(Lt,Lf,LA,Pp); break;
|
||||
- case (2) : SWRITE("GEOTEST requires the extended language!\n"); goto Return; } }
|
||||
+ case (2) : SF = NIL; SWRITE("GEOTEST requires the extended language!\n"); goto Return; } }
|
||||
|
||||
Step4: /* Massage the formula. */
|
||||
pflag = 1;
|
||||
--- ./extensions/sfext/formula/FMAATOMREAD.c.orig 2012-03-16 06:49:31.000000000 -0600
|
||||
+++ ./extensions/sfext/formula/FMAATOMREAD.c 2013-08-28 14:56:16.650119530 -0600
|
||||
@@ -18,7 +18,7 @@ void FMAATOMREAD(Word Q, Word V, Word *F
|
||||
/* hide r,s,t; */
|
||||
|
||||
Step1: /* Read the left polynomial. */
|
||||
- t = 1; r = LENGTH(V);
|
||||
+ t = 1; r = LENGTH(V); F = NIL;
|
||||
IPEXPREAD(r,V,&P1,&t); if (t == 0) goto Return;
|
||||
|
||||
Step2: /* Read the relational operator. */
|
||||
@@ -71,6 +71,7 @@ Word POLYINDEX(Word P, Word p, Word r, W
|
||||
p = SECOND(p);
|
||||
|
||||
/* Is p already in P? */
|
||||
+ pp = NIL;
|
||||
P_r = LELTI(P,r); *t = 0;
|
||||
for(Pp = P_r; Pp != NIL; Pp = RED(Pp)) {
|
||||
pp = FIRST(Pp);
|
||||
--- ./extensions/sfext/formula/FMASMOOTH.c.orig 2012-03-16 06:49:31.000000000 -0600
|
||||
+++ ./extensions/sfext/formula/FMASMOOTH.c 2013-08-28 14:50:13.736716426 -0600
|
||||
@@ -16,6 +16,7 @@ Step1: /* Atoms and Constants. */
|
||||
if (ISLIST(F1) || F1 == TRUE || F1 == FALSE) {
|
||||
G = F;
|
||||
goto Return; }
|
||||
+ G = NIL;
|
||||
|
||||
Step2: /* AND's */
|
||||
if (F1 == ANDOP) {
|
||||
--- ./extensions/sfext/addpol/MINPFSETNSC.c.orig 2013-08-28 16:29:15.985921210 -0600
|
||||
+++ ./extensions/sfext/addpol/MINPFSETNSC.c 2013-08-30 15:07:56.269063272 -0600
|
||||
@@ -42,7 +42,7 @@ Word MINPFSETNSC(Word P,Word S,Word D,Wo
|
||||
Word x_s,js,Ls,O,Q,Q_i,Sp,Pp,i,Cp,*V,*Vp,**A,a,N,k,S_r,I,j,p;
|
||||
|
||||
Step1: /* Initialization. */
|
||||
- C = NIL; Sltr = NIL; Pltr = NIL; N = LENGTH(K);
|
||||
+ C = NIL; Sltr = NIL; S_r = NIL; Pltr = NIL; N = LENGTH(K);
|
||||
|
||||
Step2: /* Loop over each level in D. */
|
||||
for(r = 1; r <= N; r++) {
|
||||
--- ./extensions/sfext/espcad/PCAD2ESPCAD.c.orig 2012-03-16 06:49:31.000000000 -0600
|
||||
+++ ./extensions/sfext/espcad/PCAD2ESPCAD.c 2013-08-30 15:10:16.295906419 -0600
|
||||
@@ -44,6 +44,8 @@ Step2: /* Generate correct i-level signi
|
||||
P_i = RED(P_i);
|
||||
s = RED(s); }
|
||||
s = INV(ss); }
|
||||
+ else
|
||||
+ s = NIL;
|
||||
|
||||
Step3: /* Construct extended Sub-CAD cell structure. */
|
||||
EDs = LIST8(C,A,LELTI(Ds,SC_INX),NIL,s,NIL,UNDET,UNDET);
|
||||
--- ./source/io/FREADR.c.orig 2012-03-16 06:49:30.000000000 -0600
|
||||
+++ ./source/io/FREADR.c 2013-08-28 15:44:52.884175239 -0600
|
||||
@@ -23,7 +23,7 @@ void FREADR(Word V, Word f, Word *Fs_, W
|
||||
/* hide C,i,q,r,t; */
|
||||
|
||||
Step1: /* Read quantifier list. */
|
||||
- t = 1; Q = NIL; r = LENGTH(V);
|
||||
+ Fs = NIL; t = 1; Q = NIL; r = LENGTH(V);
|
||||
for (i = f + 1; i <= r; i++)
|
||||
{
|
||||
C = CREADB();
|
||||
--- ./source/io/CATTRNRDR.c.orig 2012-03-16 06:49:29.000000000 -0600
|
||||
+++ ./source/io/CATTRNRDR.c 2013-08-28 15:40:18.276327460 -0600
|
||||
@@ -39,7 +39,7 @@ Step2: /* Get the internal representatio
|
||||
goto Return;
|
||||
|
||||
Step3: /* Error exit. */
|
||||
- DIELOC(); t = 0;
|
||||
+ DIELOC(); V = 0; t = 0;
|
||||
|
||||
Return: /* Prepare for return. */
|
||||
*V_ = V;
|
||||
--- ./source/io/ATOMFRDR.c.orig 2012-03-16 06:49:29.000000000 -0600
|
||||
+++ ./source/io/ATOMFRDR.c 2013-08-28 15:37:47.085286610 -0600
|
||||
@@ -76,7 +76,7 @@ void ETFATOMRDR(Word V, Word P1, BDigit
|
||||
Word t, F, r, j, P2, P2p, r1, r2, a, P, s;
|
||||
|
||||
Step1: /* Prepare */
|
||||
- t = 1; r = LENGTH(V);
|
||||
+ t = 1; r = LENGTH(V); F = NIL;
|
||||
|
||||
|
||||
Step2: /* Read "_root_" */
|
||||
--- ./source/io/RLOPRDR.c.orig 2012-03-16 06:49:29.000000000 -0600
|
||||
+++ ./source/io/RLOPRDR.c 2013-08-28 15:47:38.828113556 -0600
|
||||
@@ -31,7 +31,7 @@ Step1: /* Read in. */
|
||||
goto Return;
|
||||
|
||||
Step2: /* Error exit. */
|
||||
- DIELOC(); t = 0; goto Return;
|
||||
+ DIELOC(); p = 0; t = 0; goto Return;
|
||||
|
||||
Return: /* Prepare for return. */
|
||||
*p_ = p;
|
||||
--- ./source/io/LGOPRDR.c.orig 2012-03-16 06:49:29.000000000 -0600
|
||||
+++ ./source/io/LGOPRDR.c 2013-08-28 15:46:19.140193709 -0600
|
||||
@@ -50,7 +50,7 @@ Step1: /* Read in. */
|
||||
{ SWRITE("Error LGOPRDR: Logic operator was expected.\n"); goto Step2; }
|
||||
|
||||
Step2: /* Error exit. */
|
||||
- DIELOC(); t = 0; goto Return;
|
||||
+ DIELOC(); p = 0; t = 0; goto Return;
|
||||
|
||||
Return: /* Prepare for return. */
|
||||
*p_ = p;
|
||||
--- ./source/io/DESIREDRDR.c.orig 2012-03-16 06:49:29.000000000 -0600
|
||||
+++ ./source/io/DESIREDRDR.c 2013-08-28 15:41:17.860345319 -0600
|
||||
@@ -15,6 +15,7 @@ void DESIREDRDR(Word *F_, Word *t_)
|
||||
/* hide C,C1,R,V1,V2,t; */
|
||||
|
||||
Step1: /* Atomic condition. */
|
||||
+ F = NIL;
|
||||
t = 1;
|
||||
C = CREADB(); if (C == '[') goto Step2;
|
||||
BKSP();
|
||||
--- ./source/io/QFRDR.c.orig 2012-03-16 06:49:29.000000000 -0600
|
||||
+++ ./source/io/QFRDR.c 2013-08-28 15:46:59.100124953 -0600
|
||||
@@ -39,7 +39,7 @@ Step1: /* Read in. */
|
||||
goto Return;
|
||||
|
||||
Step2: /* Error exit. */
|
||||
- DIELOC(); t = 0; goto Return;
|
||||
+ DIELOC(); q = 0; t = 0; goto Return;
|
||||
|
||||
Return: /* Prepare for return. */
|
||||
*q_ = q;
|
||||
--- ./source/io/GREADR.c.orig 2012-03-16 06:49:29.000000000 -0600
|
||||
+++ ./source/io/GREADR.c 2013-08-28 15:45:29.740181394 -0600
|
||||
@@ -33,7 +33,7 @@ Step2: /* Read digits and convert. */
|
||||
BKSP(); a = S * a; goto Return;
|
||||
|
||||
Step3: /* Error. */
|
||||
- DIELOC(); t = 0; goto Return;
|
||||
+ DIELOC(); a = 0; t = 0; goto Return;
|
||||
|
||||
Return: /* Prepare for return. */
|
||||
*a_ = a;
|
||||
--- ./source/main/QEPCADauto.c.orig 2012-03-16 06:49:30.000000000 -0600
|
||||
+++ ./source/main/QEPCADauto.c 2013-08-28 15:52:45.403836140 -0600
|
||||
@@ -27,6 +27,8 @@ void QepcadCls::QEPCADauto(Word Fs, Word
|
||||
char c1,c2; /* Chris variables. */
|
||||
|
||||
Step1: /* Normalize. */
|
||||
+ t = 0;
|
||||
+ F_e = F_n = F_s = NIL;
|
||||
FIRST4(Fs,&r,&f,&Q,&Fh);
|
||||
F = NORMQFF(Fh);
|
||||
if (GVUA != NIL) GVNA = NORMQFF(GVUA);
|
||||
--- ./source/main/QEPCAD.c.orig 2012-03-16 06:49:30.000000000 -0600
|
||||
+++ ./source/main/QEPCAD.c 2013-08-28 15:51:13.747873723 -0600
|
||||
@@ -26,6 +26,8 @@ void QepcadCls::QEPCAD(Word Fs, Word *t_
|
||||
Word Cs,Ps,Qs,Pps,Cps,Qps,SF; /* Chris variables. */
|
||||
char c1,c2; /* Chris variables. */
|
||||
Step1: /* Normalize. */
|
||||
+ t = 0;
|
||||
+ F_e = F_n = F_s = NIL;
|
||||
FIRST4(Fs,&r,&f,&Q,&Fh);
|
||||
/*Int*/ PCNSTEP = 1;
|
||||
/*Int*/ if (INTERACT()) USERINT(LFS("Before Normalization"),'a');
|
||||
--- ./source/ticad/SUBST.c.orig 2012-03-16 06:49:30.000000000 -0600
|
||||
+++ ./source/ticad/SUBST.c 2013-08-30 15:36:14.959182825 -0600
|
||||
@@ -24,6 +24,7 @@ Word QepcadCls::SUBST(Word c, Word k, Wo
|
||||
Word P,L,Sp,T1,T2,G,Q,f,i;
|
||||
|
||||
Step1: /* Substitute. */
|
||||
+ f = UNDET;
|
||||
L = NIL;
|
||||
S = NIL;
|
||||
Bp = B;
|
||||
--- ./source/ticad/AFUPMPR.c.orig 2012-03-16 06:49:30.000000000 -0600
|
||||
+++ ./source/ticad/AFUPMPR.c 2013-08-30 15:32:39.031457638 -0600
|
||||
@@ -27,6 +27,7 @@ void AFUPMPR(Word M, Word I, Word B, Wor
|
||||
/* hide L1,Lp,j,jp,s,t,v,vp; */
|
||||
|
||||
Step1: /* Initialize. */
|
||||
+ j = 0;
|
||||
FIRST2(J,&a,&b);
|
||||
t = AFUPSR(M,I,B,b);
|
||||
if (t == 0)
|
||||
--- ./source/ticad/SUBSTR.c.orig 2012-03-16 06:49:30.000000000 -0600
|
||||
+++ ./source/ticad/SUBSTR.c 2013-08-30 15:36:46.631109286 -0600
|
||||
@@ -24,6 +24,7 @@ Word QepcadCls::SUBSTR(Word c, Word k, W
|
||||
Word P,L,Q,T1,T2,Sp,G,f,i;
|
||||
|
||||
Step1: /* Do it. */
|
||||
+ f = UNDET;
|
||||
L = NIL;
|
||||
S = NIL;
|
||||
Bp = B;
|
||||
--- ./source/userint/PREQNCONSTL.c.orig 2012-03-16 06:49:30.000000000 -0600
|
||||
+++ ./source/userint/PREQNCONSTL.c 2013-08-30 15:37:35.045721919 -0600
|
||||
@@ -73,7 +73,7 @@ Return: /* Prepare for return. */
|
||||
|
||||
Word POLYLABEL(Word P, Word p, Word r, Word *t)
|
||||
{
|
||||
- Word P_r, Pp, pp;
|
||||
+ Word P_r, Pp, pp = NIL;
|
||||
|
||||
for(; PDEG(p) == 0; r--)
|
||||
p = SECOND(p);
|
File diff suppressed because it is too large
Load Diff
|
@ -0,0 +1,116 @@
|
|||
Name: qepcad-B
|
||||
Version: 1.69
|
||||
Release: 2%{?dist}
|
||||
Summary: Quantifier elimination tool
|
||||
|
||||
License: MIT
|
||||
URL: http://www.usna.edu/CS/~qepcad/B/QEPCAD.html
|
||||
Source0: http://www.usna.edu/CS/~qepcad/INSTALL/%{name}.%{version}.tar.gz
|
||||
# Don't require users to set the "qe" environment variable. Not for upstream.
|
||||
Patch0: %{name}-env.patch
|
||||
# Add gcc attributes for better efficiency and warnings. Upstream: 20 Nov 2013.
|
||||
Patch1: %{name}-attr.patch
|
||||
# Fix use of uninitialized variables. Upstream: 20 Nov 2013.
|
||||
Patch2: %{name}-uninit.patch
|
||||
# Fix a non-void function where control can fall off the end. Upstream:
|
||||
# 20 Nov 2013.
|
||||
Patch3: %{name}-return.patch
|
||||
# Fix abstract base classes with non-virtual destructors. Upstream:
|
||||
# 20 Nov 2013.
|
||||
Patch4: %{name}-destructor.patch
|
||||
# Add parentheses to disambiguate mixed boolean operators. Upstream:
|
||||
# 20 Nov 2013.
|
||||
Patch5: %{name}-parens.patch
|
||||
# Fix some mixed signed/unsigned operations. Upstream: 20 Nov 2013.
|
||||
Patch6: %{name}-signed.patch
|
||||
# Fix syntactically incorrect expressions. Upstream: 20 Nov 2013.
|
||||
Patch7: %{name}-syntax.patch
|
||||
# Remove unused variables and static functions.
|
||||
Patch8: %{name}-unused.patch
|
||||
|
||||
BuildRequires: freeglut-devel
|
||||
BuildRequires: readline-devel
|
||||
BuildRequires: saclib-devel
|
||||
|
||||
Requires: bash
|
||||
Requires: Singular
|
||||
|
||||
%description
|
||||
QEPCAD is an implementation of quantifier elimination by partial
|
||||
cylindrical algebraic decomposition due originally to Hoon Hong, and
|
||||
subsequently added on to by many others. It is an interactive
|
||||
command-line program written in C/C++, and based on the SACLIB library.
|
||||
This is QEPCAD B version 1.x, the "B" designating a substantial
|
||||
departure from the original QEPCAD and distinguishing it from any
|
||||
development of the original that may proceed in a different direction.
|
||||
|
||||
%prep
|
||||
%setup -q -n qesource
|
||||
%patch0
|
||||
%patch1
|
||||
%patch2
|
||||
%patch3
|
||||
%patch4
|
||||
%patch5
|
||||
%patch6
|
||||
%patch7
|
||||
%patch8
|
||||
|
||||
# Adapt to the Fedora saclib package
|
||||
sed -i 's,\${saclib}/lib/saclib.\.a,-lsaclib,' source/Makefile cad2d/Makefile
|
||||
|
||||
# Use the right build flags
|
||||
sed -i "s/-O4/%{optflags} -Wno-unused-label $RPM_LD_FLAGS/" plot2d/Makefile
|
||||
|
||||
%build
|
||||
# FIXME: %%{?_smp_mflags} doesn't work
|
||||
export saclib=%{_prefix}
|
||||
export qe=$PWD
|
||||
export CC=g++
|
||||
export CCo=g++
|
||||
export FLAGS="%{optflags} -I%{_includedir}/saclib -Wno-unused-label"
|
||||
export FLAGSo="$FLAGS"
|
||||
export SPECIFLAGS="-I%{_includedir}/saclib"
|
||||
export SPECLFLAGS="$RPM_LD_FLAGS"
|
||||
make -C extensions/sfext
|
||||
make -C extensions/adj2d
|
||||
make -C extensions/rend
|
||||
make -C extensions/newadj
|
||||
make -C extensions/lift2D
|
||||
make -C source opt FLAGSo="$FLAGS"
|
||||
make -C plot2d
|
||||
make -C cad2d opt FLAGSo="$FLAGS"
|
||||
|
||||
%install
|
||||
#Install the binaries
|
||||
mkdir -p %{buildroot}%{_bindir}
|
||||
install -p -m 0755 source/qepcad %{buildroot}%{_bindir}
|
||||
install -p -m 0755 plot2d/ADJ2D_plot %{buildroot}%{_bindir}
|
||||
install -p -m 0755 cad2d/cad2d %{buildroot}%{_bindir}
|
||||
|
||||
# Install the default settings file
|
||||
mkdir -p %{buildroot}%{_datadir}/qepcad
|
||||
sed 's/^#S/S/' default.qepcadrc > \
|
||||
%{buildroot}%{_datadir}/qepcad/default.qepcadrc
|
||||
touch -r default.qepcadrc %{buildroot}%{_datadir}/qepcad/default.qepcadrc
|
||||
|
||||
# Install qepcad.help and the expected symbolic links
|
||||
mkdir -p %{buildroot}%{_datadir}/qepcad/bin
|
||||
cp -p source/qepcad.help %{buildroot}%{_datadir}/qepcad/bin
|
||||
ln -s %{_bindir}/ADJ2D_plot %{buildroot}%{_datadir}/qepcad/bin
|
||||
ln -s %{_bindir}/cad2d %{buildroot}%{_datadir}/qepcad/bin
|
||||
ln -s %{_bindir}/qepcad %{buildroot}%{_datadir}/qepcad/bin
|
||||
|
||||
%files
|
||||
%doc LICENSE LOG
|
||||
%{_bindir}/qepcad
|
||||
%{_bindir}/ADJ2D_plot
|
||||
%{_bindir}/cad2d
|
||||
%{_datadir}/qepcad/
|
||||
|
||||
%changelog
|
||||
* Thu Feb 13 2014 Jerry James <loganjerry@gmail.com> - 1.69-2
|
||||
- Install qepcad.help
|
||||
|
||||
* Thu Nov 21 2013 Jerry James <loganjerry@gmail.com> - 1.69-1
|
||||
- Initial RPM
|
Loading…
Reference in New Issue