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.

Reply via email to