Re: #include <Integer.h> // valid for GNU g++ Integer.h: No such file or directory

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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


























[Index of Archives]     [Linux C Programming]     [Linux Kernel]     [eCos]     [Fedora Development]     [Fedora Announce]     [Autoconf]     [The DWARVES Debugging Tools]     [Yosemite Campsites]     [Yosemite News]     [Linux GCC]

  Powered by Linux