By the way I use python for not too big number verification.
   Is there any application or web site to easily verify big number
multiplications?


On Fri, Nov 23, 2012 at 3:51 PM, mgundes <mg...@hotmail.com> wrote:

>
>      Opps, sorry Bill, I have miscalculated the expected result, I checked
> again and found my mistake. Thank for your concern.
>
> Regards
>
>
>
> On Fri, Nov 23, 2012 at 3:26 PM, Bill Hart <goodwillh...@googlemail.com>wrote:
>
>> You must have a 32 bit system then.
>>
>> Perhaps if you tell us what result you are getting and what result you
>> were expecting, we can help you more.
>>
>> Bill.
>>
>> On 23 November 2012 13:24, mgundes <mg...@hotmail.com> wrote:
>> >
>> >   I changed but the result are same as previous, since both are in same
>> size
>> > in my system I guess.
>> >
>> >
>> > On Fri, Nov 23, 2012 at 3:14 PM, Bill Hart <goodwillh...@googlemail.com
>> >
>> > wrote:
>> >>
>> >> One problem is that you are using unsigned int, instead of mp_limb_t
>> >> (which is probably unsigned long or unsigned long long on your
>> >> machine).
>> >>
>> >> Bill.
>> >>
>> >> On 23 November 2012 13:12, mgundes <mg...@hotmail.com> wrote:
>> >> >
>> >> >    Hi Bill, thanks for reply.
>> >> >
>> >> >    I run simple code below for different lengths of array
>> >> > muıltiplication
>> >> > and I got weird results with gmp_printf(). I also printed c array
>> and it
>> >> > seems true but printed result is weird. What is wrong or missing in
>> >> > function
>> >> > below?
>> >> >
>> >> > int main() {
>> >> >
>> >> >   unsigned int a[4] = {100, 20, 30, 40};
>> >> >   unsigned int b[4] = {200, 10, 5, 120};
>> >> >   unsigned int c[8];
>> >> >
>> >> >   memset(c, 0, 8 * sizeof(unsigned int));
>> >> >   mpn_mul((mp_limb_t *) c,
>> >> >           (mp_limb_t *) a, 1,
>> >> >           (mp_limb_t *) b, 1);
>> >> >
>> >> >   for (int i=0; i<8; i++)
>> >> >     printf("c[%d]: %u\n", i, c[i]);
>> >> >   gmp_printf("\nresult: %Nu\n\n\n", c, 8);
>> >> >
>> >> >
>> >> >   memset(c, 0, 8 * sizeof(unsigned int));
>> >> >   mpn_mul((mp_limb_t *) c,
>> >> >           (mp_limb_t *) a, 2,
>> >> >           (mp_limb_t *) b, 3);
>> >> >
>> >> >   for (int i=0; i<8; i++)
>> >> >     printf("c[%d]: %u\n", i, c[i]);
>> >> >   gmp_printf("\nresult: %Nu\n\n\n", c, 8);
>> >> >
>> >> >   memset(c, 0, 8 * sizeof(unsigned int));
>> >> >   mpn_mul((mp_limb_t *) c,
>> >> >           (mp_limb_t *) a, 4,
>> >> >           (mp_limb_t *) b, 4);
>> >> >
>> >> >   for (int i=0; i<8; i++)
>> >> >     printf("c[%d]: %u\n", i, c[i]);
>> >> >   gmp_printf("\nresult: %Nu\n\n\n", c, 8);
>> >> >
>> >> >
>> >> >   return 0;
>> >> > }
>> >> >
>> >> > Kind Regards,
>> >> > Thanks
>> >> >
>> >> > MahmutG
>> >> >
>> >> >
>> >> > On Fri, Nov 23, 2012 at 3:09 AM, Bill Hart <
>> goodwillh...@googlemail.com>
>> >> > wrote:
>> >> >>
>> >> >> The result could be up to 8 limbs, which is why you should allocate
>> 8
>> >> >> limbs for c. The top limb might turn out to be zero of course.
>> >> >>
>> >> >> The easiest way to print the result is to use gmp_printf with the %N
>> >> >> option for mpn's. You need to also give it the number of limbs, as
>> >> >> documented on pages 67-68 of our documentation.
>> >> >>
>> >> >> Bill.
>> >> >>
>> >> >> On 23 November 2012 00:55, mgundes <mg...@hotmail.com> wrote:
>> >> >> >
>> >> >> > Hi,
>> >> >> >
>> >> >> > I am not good at arithmetic but I need to calculate
>> multiplication of
>> >> >> > big
>> >> >> > numbers. I will try to explain my need:
>> >> >> >
>> >> >> > For instance, if I have two 128 bit numbers represented with
>> arrays
>> >> >> > below:
>> >> >> >
>> >> >> >        unsigned int a[4] = {100, 20, 30, 40};
>> >> >> >        unsigned int b[4] = {200, 10, 5, 120};
>> >> >> >        unsigned int c[4] = {0,0,0,0};
>> >> >> >
>> >> >> > I want to multiply a and b, then assign the result to the c:
>> >> >> >
>> >> >> >        mpn_mul_n((mp_limb_t *)c, (const mp_limb_t *)a, (const
>> >> >> > mp_limb_t
>> >> >> > *)b,
>> >> >> > 4);
>> >> >> >
>> >> >> > Since mpn_mul takes result pointer as mp_limb_t type, then what if
>> >> >> > result
>> >> >> > exceeds? I mean the result of two integer multiplication probably
>> >> >> > exceeds
>> >> >> > integer size. Is there any example for multiplication of big
>> numbers?
>> >> >> > I
>> >> >> > tried mpn_mul_n() as above and used mpn_get_str to see the result
>> but
>> >> >> > I
>> >> >> > guess I could not use correctly.
>> >> >> >
>> >> >> > Kind regards,
>> >> >> > Thanks
>> >> >> >
>> >> >> > --
>> >> >> > MahmutG
>> >> >> >
>> >> >> > --
>> >> >> > You received this message because you are subscribed to the Google
>> >> >> > Groups
>> >> >> > "mpir-devel" group.
>> >> >> > To post to this group, send email to mpir-devel@googlegroups.com.
>> >> >> > To unsubscribe from this group, send email to
>> >> >> > mpir-devel+unsubscr...@googlegroups.com.
>> >> >> > For more options, visit this group at
>> >> >> > http://groups.google.com/group/mpir-devel?hl=en.
>> >> >>
>> >> >> --
>> >> >> You received this message because you are subscribed to the Google
>> >> >> Groups
>> >> >> "mpir-devel" group.
>> >> >> To post to this group, send email to mpir-devel@googlegroups.com.
>> >> >> To unsubscribe from this group, send email to
>> >> >> mpir-devel+unsubscr...@googlegroups.com.
>> >> >> For more options, visit this group at
>> >> >> http://groups.google.com/group/mpir-devel?hl=en.
>> >> >>
>> >> >
>> >> >
>> >> >
>> >> > --
>> >> > MahmutG
>> >> >
>> >> > --
>> >> > You received this message because you are subscribed to the Google
>> >> > Groups
>> >> > "mpir-devel" group.
>> >> > To post to this group, send email to mpir-devel@googlegroups.com.
>> >> > To unsubscribe from this group, send email to
>> >> > mpir-devel+unsubscr...@googlegroups.com.
>> >> > For more options, visit this group at
>> >> > http://groups.google.com/group/mpir-devel?hl=en.
>> >>
>> >> --
>> >> You received this message because you are subscribed to the Google
>> Groups
>> >> "mpir-devel" group.
>> >> To post to this group, send email to mpir-devel@googlegroups.com.
>> >> To unsubscribe from this group, send email to
>> >> mpir-devel+unsubscr...@googlegroups.com.
>> >> For more options, visit this group at
>> >> http://groups.google.com/group/mpir-devel?hl=en.
>> >>
>> >
>> >
>> >
>> > --
>> > MahmutG
>> >
>> > --
>> > You received this message because you are subscribed to the Google
>> Groups
>> > "mpir-devel" group.
>> > To post to this group, send email to mpir-devel@googlegroups.com.
>> > To unsubscribe from this group, send email to
>> > mpir-devel+unsubscr...@googlegroups.com.
>> > For more options, visit this group at
>> > http://groups.google.com/group/mpir-devel?hl=en.
>>
>> --
>> You received this message because you are subscribed to the Google Groups
>> "mpir-devel" group.
>> To post to this group, send email to mpir-devel@googlegroups.com.
>> To unsubscribe from this group, send email to
>> mpir-devel+unsubscr...@googlegroups.com.
>> For more options, visit this group at
>> http://groups.google.com/group/mpir-devel?hl=en.
>>
>>
>
>
> --
> MahmutG
>



-- 
MahmutG

-- 
You received this message because you are subscribed to the Google Groups 
"mpir-devel" group.
To post to this group, send email to mpir-devel@googlegroups.com.
To unsubscribe from this group, send email to 
mpir-devel+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/mpir-devel?hl=en.

Reply via email to