Files correlati : Ricompilazione Demo : [ ] Commento : Aggiunti i sorgenti per Greenleaf Math Library (gfm.dll) git-svn-id: svn://10.65.10.50/trunk@10079 c028cbd2-c16b-5b4b-a496-9718f37d4682
70 lines
1.1 KiB
C
Executable File
70 lines
1.1 KiB
C
Executable File
/* int _MulUnsArrByPwrOf10Limited(pa,n,dig)
|
|
*
|
|
* ARGUMENT
|
|
* unsigned pa[]; points to a 160bit number
|
|
* int n; power of 10 to multiply by (0..19)
|
|
* int dig; number of digits to multiply
|
|
*
|
|
* DESCRIPTION
|
|
* Multiplies the pa[] array by 10^n (0<n<19),
|
|
* if the multiplication overflows, multiplies by largest power of 10
|
|
* which doesn't generate overflow and return that power of ten.
|
|
*
|
|
* SIDE EFFECTS
|
|
* None.
|
|
*
|
|
* RETURNS
|
|
* Power of ten multiplied by.
|
|
*
|
|
* AUTHOR
|
|
* Brugnoli Giugno 1992
|
|
*
|
|
* MODIFICATIONS
|
|
*
|
|
*/
|
|
|
|
#include <stdio.h>
|
|
#include "gm.h"
|
|
#include "gmsystem.h"
|
|
|
|
|
|
int _MulUnsArrByPwrOf10Limited(pa,n,dig)
|
|
unsigned SHORT pa[];
|
|
int n,dig;
|
|
{
|
|
|
|
int k,i,pow;
|
|
unsigned SHORT cop[10];
|
|
|
|
k=GM_SUCCESS;
|
|
pow=0;
|
|
|
|
for (i=0;i<10;i++)
|
|
{
|
|
cop[i]=0;
|
|
}
|
|
|
|
while((pow<n)&&(!k))
|
|
{
|
|
for (i=0;i<dig;i++)
|
|
{
|
|
cop[i]=pa[i];
|
|
}
|
|
k=_MulUnsArrByPwrOf10(pa,1,dig);
|
|
if (!k)
|
|
{
|
|
pow++;
|
|
}
|
|
}
|
|
|
|
if (k)
|
|
{
|
|
for (i=0;i<dig;i++)
|
|
{
|
|
pa[i]=cop[i];
|
|
}
|
|
}
|
|
|
|
return(pow);
|
|
}
|