Ticket #772 (closed enhancement: fixed)

Opened 1 year ago

Last modified 3 months ago

[with spkg; updated; positive review] Interface to QEPCAD for quantifier elimination and solving systems of inequalities

Reported by: jason Assigned to: was
Priority: major Milestone: sage-3.1.2
Component: packages Keywords:
Cc: burcin

Description

QEPCAD uses cylindrical algebraic decomposition to eliminate quantifiers in statements. QEPCAD takes the statement

there exists an x such that a*x2 + b*x + c = 0 and a /= 0 (i.e., a!=0)

and eliminates the quantifier and answers that:

a /= 0 and 4 a c - b^2 <= 0
(i.e., a!=0 and 4ac-b^2<=0)

In other words, it gives you the conditions of a solution satisfying your original statement. See more examples at http://www.cs.usna.edu/~qepcad/B/examples/Examples.html

QEPCAD is not currently GPL and depends on the saclib library, which currently is not GPL. However, both of those could change if there was interest.

David Joyner talked with Chris Brown, and reported that:

I spoke with Chris Brown, who is essentially now the maintainer of qepcad. Here is his response:

"Saclib's actual status is probably a bit up in the air. What I might call the saclib "stakeholders" had agreed to GPL it, but everybody was, I guess, too busy to do anything about it. Qepcad's status is similar ... except that my contributions are necessarily public domain."

In a second email, he added:

"If you're interested, we can talk about this. Ultimately I can ask the saclib/qepcad folks for permission and move forward."

(see http://groups.google.com/group/sage-devel/msg/4f63c0636720ed51)

References:

QEPCAD: http://www.cs.usna.edu/~qepcad/B/QEPCAD.html

Mathematica implementation (Resolve, Reduce, FindInstance?, CylindricalDecomposition?, etc.):

http://reference.wolfram.com/mathematica/tutorial/Quantifiers.html

http://reference.wolfram.com/mathematica/tutorial/TheRepresentationOfSolutionSets.html

http://reference.wolfram.com/mathematica/tutorial/Inequalities-ManipulatingEquationsAndInequalities.html

http://reference.wolfram.com/mathematica/tutorial/EquationsAndInequalitiesOverDomains.html

Attachments

qepcad.spkg (1.0 kB) - added by jason on 01/09/2008 11:36:17 PM.
qepcad-1.48.spkg (2.7 kB) - added by jason on 01/28/2008 09:29:27 AM.
Update to address the environment variable issues by creating sage-qepcad and sage-cad2d scripts that should be run instead of qepcad and cad2d

Change History

10/02/2007 05:28:39 PM changed by jason

  • milestone changed from sage-feature to sage-wishlist.

This doesn't have someone assigned, so it should be in the wishlist.

10/17/2007 04:25:08 PM changed by jason

To compile SACLIB 2.1, right now tcsh has to be installed. This may not be needed if the bin/mk* scripts are modified to not require tcsh.

1. Set the $saclib environment variable to the saclib directory. 2. run $saclib/mklib all

The commands that are executed by the above are below---looks like we don't need tcsh after all. I think that the objd directory is debugging stuff, while objo stuff is optimized stuff.

  pushd >/dev/null  $saclib/lib/objd
  make  CC=$CC "SACFLAG=-g -DNO_SACLIB_MACROS" EXTENSION=d
  popd >/dev/null
  pushd >/dev/null  $saclib/lib/objo
  make  CC=$CC "SACFLAG=-O4" EXTENSION=o
  popd >/dev/null

To compile qepcad

1. Set the $saclib and $qe environment variables (the latter to the qesource directory) 2. run make in the $qe directory.

The Makefile for qepcad uses "gmake" for the make program name (it must be GNU Make). This should probably be changed to "make" (if we assume that make is GNU make).

QEPCAD uses the readline library.

01/09/2008 07:48:27 PM changed by jason

From Robert Bradshaw trying to compile this on Mac OSX Tiger

  • Comment out #include <ieee754.h> (seems to compile fine without this)

There are some serious, deep issues with floating point exceptions that apparently need to be addressed to port SACLIB to OSX. See FPHAND.c and FPCATCH.c in SACLIB.

01/09/2008 11:35:47 PM changed by jason

Thanks to Robert Bradshaw sitting right next to me and helping me every few seconds, we have a (very alpha and currently broken) QEPCAD spkg now. The error is in linking to readline---I think it can't find the readline library.

The source is not included because of licensing restrictions (I've emailed Chris Brown about that). However, the spkg will download the source from the webpage automatically.

Can someone figure out how to fix the build issue with readline? I'm still fumbling my way through doing an spkg. The error is:

g++ -O4 -I/home/grout/sage/spkg/build/qepcad/saclib2.1/include -I/home/grout/sage/spkg/build/qepcad/qesource/source  -I. -o cad2d ../source/saclib/GCSI.c \
                        cad2d.a /home/grout/sage/spkg/build/qepcad/qesource/source/qepcad.a /home/grout/sage/spkg/build/qepcad/qesource/extensions/sfext/sfexto.a /home/grout/sage/spkg/build/qepcad/qesource/extensions/lift2D/lift2Do.a /home/grout/sage/spkg/build/qepcad/qesource/extensions/newadj/newadjo.a /home/grout/sage/spkg/build/qepcad/qesource/extensions/adj2d/adj2do.a /home/grout/sage/spkg/build/qepcad/qesource/extensions/rend/rendo.a /home/grout/sage/spkg/build/qepcad/qesource/extensions/sfext/sfexto.a /home/grout/sage/spkg/build/qepcad/qesource/source/qepcad.a /home/grout/sage/spkg/build/qepcad/saclib2.1/lib/saclibo.a -lreadline  cad2d.a /home/grout/sage/spkg/build/qepcad/qesource/source/qepcad.a /home/grout/sage/spkg/build/qepcad/qesource/extensions/sfext/sfexto.a /home/grout/sage/spkg/build/qepcad/qesource/extensions/lift2D/lift2Do.a /home/grout/sage/spkg/build/qepcad/qesource/extensions/newadj/newadjo.a /home/grout/sage/spkg/build/qepcad/qesource/extensions/adj2d/adj2do.a /home/grout/sage/spkg/build/qepcad/qesource/extensions/rend/rendo.a /home/grout/sage/spkg/build/qepcad/qesource/extensions/sfext/sfexto.a /home/grout/sage/spkg/build/qepcad/qesource/source/qepcad.a /home/grout/sage/spkg/build/qepcad/saclib2.1/lib/saclibo.a -lreadline 
/home/grout/sage/local/lib/../lib/libreadline.so: undefined reference to `PC'
/home/grout/sage/local/lib/../lib/libreadline.so: undefined reference to `tgetflag'
/home/grout/sage/local/lib/../lib/libreadline.so: undefined reference to `tgetent'
/home/grout/sage/local/lib/../lib/libreadline.so: undefined reference to `UP'
/home/grout/sage/local/lib/../lib/libreadline.so: undefined reference to `tputs'
/home/grout/sage/local/lib/../lib/libreadline.so: undefined reference to `tgoto'
/home/grout/sage/local/lib/../lib/libreadline.so: undefined reference to `tgetnum'
/home/grout/sage/local/lib/../lib/libreadline.so: undefined reference to `BC'
/home/grout/sage/local/lib/../lib/libreadline.so: undefined reference to `tgetstr'
collect2: ld returned 1 exit status
make: *** [opt] Error 1

01/09/2008 11:36:17 PM changed by jason

  • attachment qepcad.spkg added.

01/09/2008 11:36:52 PM changed by jason

  • summary changed from Interface to QEPCAD for quantifier elimination and solving systems of inequalities to [with broken spkg] Interface to QEPCAD for quantifier elimination and solving systems of inequalities.
  • milestone changed from sage-wishlist to sage-2.10.

01/09/2008 11:38:33 PM changed by mabshoff

Hi Jason,

try linking against termcap instead. Most of the time they are interchangeable. Sage builds termcap 1.1.3.

Cheers,

Michael

01/10/2008 01:28:55 AM changed by jason

I tried linking termcap and it complained about not having rl_instream. So I switched it back to -lreadline and made sure that I had -L${SAGE_LOCAL}/lib at the top of the compile line. I get the same errors:

Linking the optimized program......
g++ -O4 -I/home/grout/sage/spkg/build/qepcad/saclib2.1/include  -I. saclib/GCSI.c \
                        qepcad.a -L/home/grout/sage/local/lib /home/grout/sage/spkg/build/qepcad/qesource/extensions/sfext/sfexto.a /home/grout/sage/spkg/build/qepcad/qesource/extensions/lift2D/lift2Do.a /home/grout/sage/spkg/build/qepcad/qesource/extensions/newadj/newadjo.a /home/grout/sage/spkg/build/qepcad/qesource/extensions/adj2d/adj2do.a /home/grout/sage/spkg/build/qepcad/qesource/extensions/rend/rendo.a /home/grout/sage/spkg/build/qepcad/saclib2.1/lib/saclibo.a -lreadline  qepcad.a -L/home/grout/sage/local/lib /home/grout/sage/spkg/build/qepcad/qesource/extensions/sfext/sfexto.a /home/grout/sage/spkg/build/qepcad/qesource/extensions/lift2D/lift2Do.a /home/grout/sage/spkg/build/qepcad/qesource/extensions/newadj/newadjo.a /home/grout/sage/spkg/build/qepcad/qesource/extensions/adj2d/adj2do.a /home/grout/sage/spkg/build/qepcad/qesource/extensions/rend/rendo.a /home/grout/sage/spkg/build/qepcad/saclib2.1/lib/saclibo.a -lreadline  -o qepcad
/home/grout/sage/local/lib/libreadline.so: undefined reference to `PC'
/home/grout/sage/local/lib/libreadline.so: undefined reference to `tgetflag'
/home/grout/sage/local/lib/libreadline.so: undefined reference to `tgetent'
/home/grout/sage/local/lib/libreadline.so: undefined reference to `UP'
/home/grout/sage/local/lib/libreadline.so: undefined reference to `tputs'
/home/grout/sage/local/lib/libreadline.so: undefined reference to `tgoto'
/home/grout/sage/local/lib/libreadline.so: undefined reference to `tgetnum'
/home/grout/sage/local/lib/libreadline.so: undefined reference to `BC'
/home/grout/sage/local/lib/libreadline.so: undefined reference to `tgetstr'
collect2: ld returned 1 exit status
make[1]: *** [opt] Error 1

Could it be from not using the readline headers in sage, but using the ones in the system instead? I have the libreadline-dev package installed in Gutsy.

01/19/2008 11:20:48 AM changed by cwitty

I got this to compile by editing qesource/source/Makefile, and changing "-lreadline" to "-lreadline -lncurses" (in two places in that file).

01/24/2008 04:32:02 PM changed by jason

cwitty, that worked! Thanks!

01/24/2008 04:40:25 PM changed by jason

  • summary changed from [with broken spkg] Interface to QEPCAD for quantifier elimination and solving systems of inequalities to [with spkg, needs review] Interface to QEPCAD for quantifier elimination and solving systems of inequalities.

The qepcad-1.48.spkg now compiles on my Ubuntu 7.10 system. The package downloads the appropriate source tarballs since we do not have a clear situation with the license agreement yet (working on it, though). Please read and agree to the license in SPKG.txt for SACLIB.

To test the package, go to $SAGE_LOCAL/bin and execute qepcad. Several example sessions are found at http://www.cs.usna.edu/~qepcad/B/examples/Examples.html

Can someone test this spkg and give me feedback? It's my first spkg, so I'm sure I've done something wrong.

01/25/2008 04:41:12 PM changed by cwitty

On my 64-bit x86 Debian testing system, compilation fails with:

g++ -I/home/cwitty/sage-2.10.1.alpha1/spkg/build/qepcad-1.48/saclib2.1/include -I/home/cwitty/sage-2.10.1.alpha1/spkg/build/qepcad-1.48/qesource/source  -I. -O4 -o src/MAIN.o -c src/MAIN.c
In file included from src/MAIN.c:5:
/home/cwitty/sage-2.10.1.alpha1/spkg/build/qepcad-1.48/qesource/source/db/convenientstreams.h: In member function 'virtual int cacInBuff::underflow()':
/home/cwitty/sage-2.10.1.alpha1/spkg/build/qepcad-1.48/qesource/source/db/convenientstreams.h:82: error: no matching function for call to 'min(const int&, long int)'
src/MAIN.c: In function 'int main(int, char**)':
src/MAIN.c:33: warning: deprecated conversion from string constant to 'char*'
src/MAIN.c: In function 'void QEPCAD_ProcessRC(int, char**)':
src/MAIN.c:45: warning: deprecated conversion from string constant to 'char*'
src/MAIN.c:45: warning: deprecated conversion from string constant to 'char*'
make: *** [src/MAIN.o] Error 1
rm src/CAD2D.o src/CONSTRUCT.o

01/25/2008 04:45:28 PM changed by cwitty

On my 32-bit x86 Debian testing system, qepcad crashes immediately unless the "qe" environment variable is set to my $SAGE_LOCAL directory. If "qe" is set, then qepcad seems to work (I went through one of the examples Jason linked to above, and got the expected answer).

01/25/2008 05:11:31 PM changed by jason

Fixes:

  • For the environment variable, make a qepcad shell script which sets the $qe variable to $SAGE_LOCAL and then calls qepcad.real

For the 64 bit issue:

~/download/qesource/source$ grep -nr " min[^A-Za-z]" *
db/readlineistream.h:63:    int leftover =  min(extra,gptr()-eback());
db/unnamedpipe.h:60:      int leftover = min(extra, gptr() - eback()), readSize;
saclib/IPPSCT.c:11: L     : (psc_(A,B),psc_1(A,B),...,psc_k(A,B)), where 0 <= k < min(deg(A),deg(B)).  
saclib/IPPSCT.c:14:         many common zeros, or k = min(deg(A),deg(B))-1.

01/25/2008 05:29:24 PM changed by jason

It looks like there is some low-level pointer arithmetic going on. I don't have a 64-bit system (or experience with one), so hopefully someone can help with this one.

01/28/2008 09:04:24 AM changed by cwitty

Two more failures on 64-bit Linux. The build continues after each of these errors.

cc -I/home/cwitty/sage-2.10.1.rc1/spkg/build/qepcad-1.48/saclib2.1/include -c -O4 /home/cwitty/sage-2.10.1.rc1/spkg/build/qepcad-1.48/saclib2.1/src/FPHAND.c
/home/cwitty/sage-2.10.1.rc1/spkg/build/qepcad-1.48/saclib2.1/src/FPHAND.c: In function 'FPHAND':
/home/cwitty/sage-2.10.1.rc1/spkg/build/qepcad-1.48/saclib2.1/src/FPHAND.c:28: error: 'struct _libc_fpstate' has no member named 'cw'
make: *** [FPHAND.o] Error 1
g++ -I/home/cwitty/sage-2.10.1.rc1/spkg/build/qepcad-1.48/saclib2.1/include  -I. -O4 -o main/FAIL.o -c main/FAIL.c
main/FAIL.c: In function 'void FAIL(char*, char*, ...)':
main/FAIL.c:16: warning: deprecated conversion from string constant to 'char*'
main/FAIL.c:17: warning: deprecated conversion from string constant to 'char*'
main/FAIL.c:17: warning: deprecated conversion from string constant to 'char*'
main/FAIL.c:18: warning: deprecated conversion from string constant to 'char*'
main/FAIL.c:18: warning: deprecated conversion from string constant to 'char*'
main/FAIL.c:28: warning: deprecated conversion from string constant to 'char*'
main/FAIL.c:28: error: cast from 'char*' to 'int' loses precision
main/FAIL.c:28: warning: deprecated conversion from string constant to 'char*'
main/FAIL.c:29: warning: deprecated conversion from string constant to 'char*'
main/FAIL.c:29: error: cast from 'char*' to 'int' loses precision

followed by many more similar "warning:" lines.

And here's a couple of scary warnings:

cc -I/home/cwitty/sage-2.10.1.rc1/spkg/build/qepcad-1.48/saclib2.1/include -c -O4 /home/cwitty/sage-2.10.1.rc1/spkg/build/qepcad-1.48/saclib2.1/src/FAIL.c
/home/cwitty/sage-2.10.1.rc1/spkg/build/qepcad-1.48/saclib2.1/src/FAIL.c: In function 'FAIL':
/home/cwitty/sage-2.10.1.rc1/spkg/build/qepcad-1.48/saclib2.1/src/FAIL.c:43: warning: cast from pointer to integer of different size
/home/cwitty/sage-2.10.1.rc1/spkg/build/qepcad-1.48/saclib2.1/src/FAIL.c:44: warning: cast from pointer to integer of different size

01/28/2008 09:27:44 AM changed by jason

Chris Brown emailed me today and told me that he would try to send an email out today asking about licensing saclib and qepcad under something like BSD. If saclib and qepcad do go opensource, cwitty agreed on IRC to help more with porting things to 64-bit linux.

01/28/2008 09:29:27 AM changed by jason

  • attachment qepcad-1.48.spkg added.

Update to address the environment variable issues by creating sage-qepcad and sage-cad2d scripts that should be run instead of qepcad and cad2d

03/27/2008 12:33:01 AM changed by cwitty

  • cc set to burcin.
  • summary changed from [with spkg, needs review] Interface to QEPCAD for quantifier elimination and solving systems of inequalities to [with patch, preliminary spkg; needs review] Interface to QEPCAD for quantifier elimination and solving systems of inequalities.

I've posted an interface to qepcad. A couple of the doctests fail because the doctest framework can't handle trailing backslashes in an expected output; I'll post another bug about that problem soon (probably tomorrow).

03/28/2008 06:10:36 PM changed by cwitty

The doctest failures referred to in the previous comment are fixed by #2713.

06/15/2008 02:34:48 PM changed by craigcitro

  • keywords set to editor_cwitty.

06/15/2008 02:49:56 PM changed by cwitty

  • keywords deleted.
  • summary changed from [with patch, preliminary spkg; needs review] Interface to QEPCAD for quantifier elimination and solving systems of inequalities to [with preliminary spkg; not ready for review] Interface to QEPCAD for quantifier elimination and solving systems of inequalities.

I'm moving the interface to a separate ticket (#3431).

08/04/2008 09:25:41 AM changed by burcin

<cwitty> The current package in #772 can't become an optional package because optional packages are supposed to work on almost all machines that Sage works on,
<cwitty> and it doesn't work on 64-bit.

08/16/2008 02:21:31 PM changed by jason

  • summary changed from [with preliminary spkg; not ready for review] Interface to QEPCAD for quantifier elimination and solving systems of inequalities to [with spkg; needs review] Interface to QEPCAD for quantifier elimination and solving systems of inequalities.

A new spkg is up at: http://sage.math.washington.edu/home/jason/qepcad-1.50.spkg

It includes the BSD-licensed source for qepcad and saclib. It also includes 64-bit linux patches by Carl Witty.

08/16/2008 02:21:53 PM changed by jason

  • summary changed from [with spkg; needs review] Interface to QEPCAD for quantifier elimination and solving systems of inequalities to [with spkg (see link at bottom); needs review] Interface to QEPCAD for quantifier elimination and solving systems of inequalities.

08/21/2008 09:20:47 PM changed by jason

I've updated http://sage.math.washington.edu/home/jason/qepcad-1.50.spkg to not install CAD2D, which wasn't being used and has not been fixed for 64-bit yet. The new version of the spkg also does not use "patch" at install time, but rather caches the effects of applying the patches and copies files at install time.

08/21/2008 10:40:09 PM changed by cwitty

  • summary changed from [with spkg (see link at bottom); needs review] Interface to QEPCAD for quantifier elimination and solving systems of inequalities to [with spkg; positive review] Interface to QEPCAD for quantifier elimination and solving systems of inequalities.

The latest package at http://sage.math.washington.edu/home/jason/qepcad-1.50.spkg compiles and works at least minimally (passes the doctests in my interfaces/qepcad.py) on 32-bit and 64-bit x86 Linux.

It does not work on OSX.

I think this should become an experimental package. (I'm not sure what the rules are, but I'm guessing that not working on OSX makes it ineligible for optional status.)

Note that I wrote a lot of the patches involved, but Jason did all the packaging work; hopefully you will still accept this review.

08/22/2008 11:37:00 AM changed by mabshoff

  • summary changed from [with spkg; positive review] Interface to QEPCAD for quantifier elimination and solving systems of inequalities to [with spkg; needs work] Interface to QEPCAD for quantifier elimination and solving systems of inequalities.

Even for experimental this spkg is not ready:

mabshoff@sage:~/foo/qepcad-1.50$ hg status
! patches/cached/AFUPHIBRI.c.19
! patches/cached/AFUPHIBRI.c.19.filename
! patches/cached/ANHI.c.20
! patches/cached/ANHI.c.20.filename
! patches/cached/BEGINSACLIB.c.21
! patches/cached/BEGINSACLIB.c.21.filename
! patches/cached/FAIL.c.11
! patches/cached/FAIL.c.11.filename
! patches/cached/FMAPOLLIST.c.7
! patches/cached/FMAPOLLIST.c.7.filename
! patches/cached/FPCATCH.c.23
! patches/cached/FPCATCH.c.23.filename
! patches/cached/FPCHECK.c.24
! patches/cached/FPCHECK.c.24.filename
! patches/cached/FPHAND.c.30
! patches/cached/FPHAND.c.30.filename
! patches/cached/FPHAND.c.31
! patches/cached/FPHAND.c.31.filename
! patches/cached/FPHAND.c.32
! patches/cached/FPHAND.c.32.filename
! patches/cached/FPHAND.c.33
! patches/cached/FPHAND.c.33.filename
! patches/cached/FPHAND.c.35
! patches/cached/FPHAND.c.35.filename
! patches/cached/HIPBHT.c.25
! patches/cached/HIPBHT.c.25.filename
! patches/cached/HIPIR.c.26
! patches/cached/HIPIR.c.26.filename
! patches/cached/HIPRRISD.c.27
! patches/cached/HIPRRISD.c.27.filename
! patches/cached/HIPVCHT.c.28
! patches/cached/HIPVCHT.c.28.filename
! patches/cached/IBPRRIOAP.c.3
! patches/cached/IBPRRIOAP.c.3.filename
! patches/cached/MAIN.c.12
! patches/cached/MAIN.c.12.filename
! patches/cached/Makefile.1
! patches/cached/Makefile.1.filename
! patches/cached/Makefile.13
! patches/cached/Makefile.13.filename
! patches/cached/Makefile.2
! patches/cached/Makefile.2.filename
! patches/cached/RHI.c.29
! patches/cached/RHI.c.29.filename
! patches/cached/Rend_Win.h.6
! patches/cached/Rend_Win.h.6.filename
! patches/cached/convenientstreams.h.8
! patches/cached/convenientstreams.h.8.filename
! patches/cached/external.c.22
! patches/cached/external.c.22.filename
! patches/cached/install.34
! patches/cached/install.34.filename
! patches/cached/mksysdep.pl.14
! patches/cached/mksysdep.pl.14.filename
! patches/cached/modHIPRRISD.c.4
! patches/cached/modHIPRRISD.c.4.filename
! patches/cached/modIBPRRIOAP.c.5
! patches/cached/modIBPRRIOAP.c.5.filename
! patches/cached/readlineistream.h.9
! patches/cached/readlineistream.h.9.filename
! patches/cached/saclib.h.16
! patches/cached/saclib.h.16.filename
! patches/cached/sacproto.h.17
! patches/cached/sacproto.h.17.filename
! patches/cached/sacsys.h.18
! patches/cached/sacsys.h.18.filename
! patches/cached/sconf.15
! patches/cached/sconf.15.filename
! patches/cached/unnamedpipe.h.10
! patches/cached/unnamedpipe.h.10.filename

It also needs an .hgignore that adds the src directory.

I also *extremely* dislike the patch-cache.sh and apply-patches.sh scripts. We have discussed this in IRC to no end, so no need to go into details again. If you need to heavily patch the src directory just ship a patched src directory and wait for upstream to integrate your patches before updating the spkg to vanilla sources. spkg-install also needs a massive amount of work.

That cwitty did the review is fine in this context.

Cheers,

Michael

08/22/2008 01:41:12 PM changed by jason

Notes from IRC conversation with mabshoff:

  • There are way too many files that are being copied at install time; ship patched sources until upstream has applied the patches.
  • spkg-install should address #633, it should check the error status of the make, delete the commented stuff at the end
[15:33] <mabshoff> Also: Check the return status of make and so on and throw an intelligent error
[15:35] <mabshoff> i.e. if make returns non-zero say something like "building $FOO failed"
[15:35] <mabshoff> Also delete all that commented out junk at the end.
[15:36] <mabshoff> spkg-install should also be executable in the repo
[15:36] <mabshoff> And while you are at it reset the repo and check everything in again.
[15:36] <jason--> I left the CAD2D in there because we originally had it in there, but it hadn't been converted to 64-bit 
[15:36] <mabshoff> add an .hgignore and add src in there.
[15:36] <mabshoff> Ok.
[15:36] <mabshoff> So that is another binary? I did not notice that.
[15:36] <jason--> I didn't want to lose the work to build it.
[15:36] <jason--> yes, another binary
[15:37] <jason--> sage-cad2d, I believe
[15:37] <jason--> it's an optimization in the 2d case
[15:37] <mabshoff> Then add an exit(0)  before it and comment that you are currently not building it due to 64 bit issues.

08/27/2008 10:07:38 AM changed by jason

  • summary changed from [with spkg; needs work] Interface to QEPCAD for quantifier elimination and solving systems of inequalities to [with spkg; updated; needs review again] Interface to QEPCAD for quantifier elimination and solving systems of inequalities.

Okay, new spkg up at http://sage.math.washington.edu/home/jason/qepcad-1.50.spkg which addresses mabshoff's concerns.

Let me know if you have any other objections.

08/27/2008 10:16:31 AM changed by cwitty

  • summary changed from [with spkg; updated; needs review again] Interface to QEPCAD for quantifier elimination and solving systems of inequalities to [with spkg; updated; positive review] Interface to QEPCAD for quantifier elimination and solving systems of inequalities.

The latest version of http://sage.math.washington.edu/home/jason/qepcad-1.50.spkg compiles and passes doctests on 64-bit x86 linux, and also addresses mabshoff's packaging comments. Positive review (for experimental).

08/27/2008 12:29:38 PM changed by burcin

Builds successfully for me on 32 and 64 bit debian etch boxes. However, fails on my laptop, since I don't have tcsh installed.

It might be a good idea to add error checking to the saclib phase, since the package goes on to build qepcad, then fails at the linking phase with a misleading message.

Here is my install log (look around line 2422):

http://sage.math.washington.edu/home/burcin/spkg/install.log

08/27/2008 07:28:53 PM changed by mabshoff

I am still not happy about some details, especially things like export CC=cc, but this is good enough for experimental now :)

Burcin's concern should also be addressed in the future.

Cheers,

Michael

08/27/2008 07:32:17 PM changed by mabshoff

  • status changed from new to closed.
  • resolution set to fixed.

Merged in Sage 3.1.2.alpha2