comp.lang.c
[Top] [All Lists]

Re: 128 bit integer code needed

Subject: Re: 128 bit integer code needed
From: user923005
Date: Tue, 29 Apr 2008 14:56:22 -0700 PDT
Newsgroups: comp.lang.c

On Apr 29, 1:43 pm, jacob navia <ja...@xxxxxxxxxx> wrote:
> user923005 wrote:
> > On Apr 29, 5:13 am, jacob navia <ja...@xxxxxxxxxx> wrote:
> >> Hi
>
> >> I am incorporating 128 Bit integer code into lcc-win and it would be
> >> nice to have some code to test this feature.
>
> >> Has anyone here code that uses 128 bit integers?
>
> >> Thanks in advance
>
> >> P.S. This feature is now native in the 64 bit version, i.e.
> >> not using operator overloading as in the 32 bit version.
>
> >http://svn.gnucash.org/docs/HEAD/group__Math128.html
> >                                developer.apple.com/hardwaredrivers/ve/downloads/vBigNum.tgz">http://developer.apple.com/hardwaredrivers/ve/downloads/vBigNum.tgz
>
> > If you check out news:sci.crypt, you will find a boatload of this
> > stuff.
>
> Thanks for the tips

Here are some integer multiplication benchmarks:
                                cr.yp.to/speed/mult.html">http://cr.yp.to/speed/mult.html

Here are some crypto links:
                                directory.google.com/Top/Science/Math/Applications/Communication_Theory/Cryptography/Programming_Libraries/">http://directory.google.com/Top/Science/Math/Applications/Communication_Theory/Cryptography/Programming_Libraries/
<OT>
I don't know if you can use C++, but the Crypto++ library has an
Integer class with all the operations defined.
integer.h(217): Integer& operator=(const Integer& t);
integer.h(220): Integer& operator+=(const Integer& t);
integer.h(222): Integer& operator-=(const Integer& t);
integer.h(224): Integer& operator*=(const Integer& t) {return *this =
Times(t);}
integer.h(226): Integer& operator/=(const Integer& t) {return *this =
DividedBy(t);}
integer.h(228): Integer& operator%=(const Integer& t) {return *this =
Modulo(t);}
integer.h(230): Integer& operator/=(word t) {return *this =
DividedBy(t);}
integer.h(232): Integer& operator%=(word t) {return *this =
Integer(POSITIVE, 0, Modulo(t));}
integer.h(235): Integer& operator<<=(size_t);
integer.h(237): Integer& operator>>=(size_t);
integer.h(273): bool operator!() const;
integer.h(275): Integer operator+() const {return *this;}
integer.h(277): Integer operator-() const;
integer.h(279): Integer& operator++();
integer.h(281): Integer& operator--();
integer.h(283): Integer operator++(int) {Integer temp = *this; +
+*this; return temp;}
integer.h(285): Integer operator--(int) {Integer temp = *this; --
*this; return temp;}
integer.h(313): Integer operator>>(size_t n) const {return
Integer(*this)>>=n;}
integer.h(315): Integer operator<<(size_t n) const {return
Integer(*this)<<=n;}
integer.h(360): friend CRYPTOPP_DLL std::istream& CRYPTOPP_API
operator>>(std::istream& in, Integer &a);
integer.h(362): friend CRYPTOPP_DLL std::ostream& CRYPTOPP_API
operator<<(std::ostream& out, const Integer &a);
integer.h(383):inline bool operator==(const CryptoPP::Integer& a,
const CryptoPP::Integer& b) {return a.Compare(b)==0;}
integer.h(385):inline bool operator!=(const CryptoPP::Integer& a,
const CryptoPP::Integer& b) {return a.Compare(b)!=0;}
integer.h(387):inline bool operator> (const CryptoPP::Integer& a,
const CryptoPP::Integer& b) {return a.Compare(b)> 0;}
integer.h(389):inline bool operator>=(const CryptoPP::Integer& a,
const CryptoPP::Integer& b) {return a.Compare(b)>=0;}
integer.h(391):inline bool operator< (const CryptoPP::Integer& a,
const CryptoPP::Integer& b) {return a.Compare(b)< 0;}
integer.h(393):inline bool operator<=(const CryptoPP::Integer& a,
const CryptoPP::Integer& b) {return a.Compare(b)<=0;}
integer.h(395):inline CryptoPP::Integer operator+(const
CryptoPP::Integer &a, const CryptoPP::Integer &b) {return a.Plus(b);}
integer.h(397):inline CryptoPP::Integer operator-(const
CryptoPP::Integer &a, const CryptoPP::Integer &b) {return a.Minus(b);}
integer.h(399):inline CryptoPP::Integer operator*(const
CryptoPP::Integer &a, const CryptoPP::Integer &b) {return a.Times(b);}
integer.h(401):inline CryptoPP::Integer operator/(const
CryptoPP::Integer &a, const CryptoPP::Integer &b) {return
a.DividedBy(b);}
integer.h(403):inline CryptoPP::Integer operator%(const
CryptoPP::Integer &a, const CryptoPP::Integer &b) {return
a.Modulo(b);}
integer.h(405):inline CryptoPP::Integer operator/(const
CryptoPP::Integer &a, CryptoPP::word b) {return a.DividedBy(b);}
integer.h(407):inline CryptoPP::word operator%(const CryptoPP::Integer
&a, CryptoPP::word b) {return a.Modulo(b);}
</OT>


<Prev in Thread] Current Thread [Next in Thread>
Privacy Policy