Morten - >From what I can tell, you need to (1) download the files Integer.h and Integer.cc, as well as the gnu multiple precision library (gmp). With the Integer.* files in your project, and linking gmp, your program will likely work. Brian On Tue, 22 Feb 2005 12:25:56 +0100, Morten Gulbrandsen <f1000mhz@xxxxxxxx> wrote: > Brian Budge wrote: > > >Hi Morten - > > > >I can't say that I've heard of Integer.h before, and moreover none of > >my linux systems have that header file. > > > >Is it from a special library, perhaps akin to gnu multiple precision? > > > > Brian > > > > > >On Tue, 22 Feb 2005 10:13:17 +0100, Morten.Gulbrandsen > ><f1000mhz@xxxxxxxx> wrote: > > > > > >>Please help, > >> > >>how can I compile this ? > >> > >>g++ -v > >>Reading specs from /opt/sfw/gcc-3/lib/gcc-lib/i386-pc-solaris2.9/3.3.2/specs > >>Configured with: ../gcc-3.3.2/configure --prefix=/opt/sfw/gcc-3 > >>--with-ld=/usr/ccs/bin/ld --with-as=/usr/ccs/bin/as --without-gnu-ld > >>--without-gnu-as --enable-shared > >>Thread model: posix > >>gcc version 3.3.2 > >> > >>#include <assert.h> > >>#include <iostream> > >> > >>#include <Integer.h> // valid for GNU g++ > >> > >>using namespace std; > >> > >>int main() > >>{ > >> int i; > >> int n; > >> Integer product = 1; > >> // unsigned long long int product = 1; > >> > >> cout << "The factorial of n will be computed.\n" > >> "\n" > >> "Input n: "; > >> > >> cin >> n; > >> > >> assert(cin && n >= 0); > >> > >> for (i = 2; i <= n; ++i) > >> product *= i; > >> > >> cout << "\n" > >> "factorial(" << n << ") = " > >> << product << "\n" > >> "\n"; > >>} > >> > >>/* > >> > >>bash-2.05$ g++ -ansi -pedantic -Wall -o main.out main.c -L > >>/opt/sfw/gcc-3/lib/ -R /opt/sfw/gcc-3/lib/ -lstdc++ > >>main.c:5:53: Integer.h: No such file or directory > >>main.c: In function `int main()': > >>main.c:13: error: `Integer' undeclared (first use this function) > >>main.c:13: error: (Each undeclared identifier is reported only once for > >>each > >> function it appears in.) > >>main.c:13: error: parse error before `=' token > >>main.c:22: error: `product' undeclared (first use this function) > >> > >>*/ > >> > >>best regards > >> > >>Morten Gulbrandsen > >> > >> > >> > >> > > > > > > > > === > > Hi Brian, thank you, > > I found it in some interesting code, > > it should be possible to compute factorial 100 with it. > > here I found more: > > http://www.frenchfries.net/paul/factoring/source.html#gmplib > > http://www.frenchfries.net/paul/src/Integer.h > > http://www.frenchfries.net/paul/src/Integer.cc > > Integer.h <http://www.frenchfries.net/paul/src/Integer.h>, and > Integer.cc <http://www.frenchfries.net/paul/src/Integer.cc> > This is a C++ Integer class that I threw together to make the gmp > library work like normal arithmetic. It lets you play with big integers > just like you would with |(int)| or |(long int)|. There is also a > .tar.gz <http://www.frenchfries.net/paul/src/Integer_class.tar.gz> > version available that includes small Makefile and demo test code. > Requires the GMP library > <http://www.frenchfries.net/paul/factoring/source.html#gmplib> from GNU. > > The page looks nice and I would like to try it out. > > The idea is to be able to make some ADT Integer with arbitrary > precicion. > > factorial 100 - 10000 would be fine. > > I first read about Integer.h in conjunction with gcc > from here : > > http://www.cse.ucsc.edu/~pohl/abc4.html > > The sources extracts to > > bash-2.05$ cat READ_ME > --- > The GNU C++ compiler, g++, provides the header file > > Integer.h > > for working with big integers. The latest versions > of the compiler requires that the library > > libg++.a > > be made available to it. We provide access via the > makefile. > > bash-2.05$ cat makefile > CC = g++ > CFLAGS = -Wall > EXEC = a.out > INCLS = > LIBS = -lg++ ## for the Integer type in Integer.h > > OBJS = main.o > > $(EXEC): $(OBJS) > @echo "linking ..." > @$(CC) $(CFLAGS) -o $(EXEC) $(OBJS) $(LIBS) > > $(OBJS): > $(CC) $(CFLAGS) $(INCLS) -c $*.c > > relink: > @echo "relinking ..." > @$(CC) $(CFLAGS) -o $(EXEC) $(OBJS) $(LIBS) > > bash-2.05$ cat main.c > #include <assert.h> > #include <iostream.h> > #include <Integer.h> // valid for GNU g++ > > int main() > { > int i; > int n; > Integer product = 1; > > cout << "The factorial of n will be computed.\n" > "\n" > "Input n: "; > cin >> n; > assert(cin && n >= 0); > for (i = 2; i <= n; ++i) > product *= i; > cout << "\n" > "factorial(" << n << ") = " << product << "\n" > "\n"; > } > bash-2.05$ > > I don't think I did something wrong, but I must have missed something, > anyway I have two different version available. > > bash-2.05$ /opt/sfw/bin/gcc -v > Reading specs from /opt/sfw/lib/gcc-lib/i386-pc-solaris2.9/2.95.3/specs > gcc version 2.95.3 20010315 (release) > > bash-2.05$ which g++ > /opt/sfw/gcc-3/bin/g++ > bash-2.05$ g++ -v > Reading specs from /opt/sfw/gcc-3/lib/gcc-lib/i386-pc-solaris2.9/3.3.2/specs > Configured with: ../gcc-3.3.2/configure --prefix=/opt/sfw/gcc-3 > --with-ld=/usr/ccs/bin/ld --with-as=/usr/ccs/bin/as --without-gnu-ld > --without-gnu-as --enable-shared > Thread model: posix > gcc version 3.3.2 > > Please help > > Best regards > > Morten Gulbrandsen > >