version 1.8, 2001/07/03 01:41:26 |
version 1.10, 2001/09/03 01:04:26 |
|
|
/* $OpenXM: OpenXM_contrib2/asir2000/engine/Mgfs.c,v 1.7 2001/06/27 04:07:57 noro Exp $ */ |
/* $OpenXM: OpenXM_contrib2/asir2000/engine/Mgfs.c,v 1.9 2001/07/23 05:05:41 noro Exp $ */ |
|
|
#include "ca.h" |
#include "ca.h" |
|
|
Line 8 extern int *current_gfs_plus1; |
|
Line 8 extern int *current_gfs_plus1; |
|
void mulssfum(UM,int,UM); |
void mulssfum(UM,int,UM); |
void kmulsfummain(UM,UM,UM); |
void kmulsfummain(UM,UM,UM); |
|
|
inline int _ADDSF(a,b) |
|
|
#if defined(__GNUC__) |
|
#define INLINE inline |
|
#elif defined(VISUAL) |
|
#define INLINE __inline |
|
#else |
|
#define INLINE |
|
#endif |
|
|
|
INLINE int _ADDSF(a,b) |
int a,b; |
int a,b; |
{ |
{ |
if ( !a ) |
if ( !a ) |
|
|
} |
} |
} |
} |
|
|
inline int _MULSF(a,b) |
INLINE int _MULSF(a,b) |
int a,b; |
int a,b; |
{ |
{ |
if ( !a || !b ) |
if ( !a || !b ) |
|
|
inv = _invsf(*sp); |
inv = _invsf(*sp); |
for ( ; i >= 0; i--, sp-- ) |
for ( ; i >= 0; i--, sp-- ) |
*sp = _MULSF(*sp,inv); |
*sp = _MULSF(*sp,inv); |
|
} |
|
|
|
int compsfum(a,b) |
|
UM a,b; |
|
{ |
|
int i,da,db; |
|
|
|
if ( !a ) |
|
return !b?0:1; |
|
else if ( !b ) |
|
return 1; |
|
else if ( (da = DEG(a)) > (db = DEG(b)) ) |
|
return 1; |
|
else if ( da < db ) |
|
return -1; |
|
else { |
|
for ( i = da; i >= 0 && COEF(a)[i] == COEF(b)[i]; i-- ); |
|
if ( i < 0 ) |
|
return 0; |
|
else if ( (unsigned int)COEF(a)[i] > (unsigned int)COEF(b)[i] ) |
|
return 1; |
|
else |
|
return -1; |
|
} |
} |
} |
|
|
void addsfarray(int,int *,int *); |
void addsfarray(int,int *,int *); |