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.