version 1.3, 2000/08/22 05:04:05 |
version 1.5, 2005/08/24 06:28:39 |
|
|
* DEVELOPER SHALL HAVE NO LIABILITY IN CONNECTION WITH THE USE, |
* DEVELOPER SHALL HAVE NO LIABILITY IN CONNECTION WITH THE USE, |
* PERFORMANCE OR NON-PERFORMANCE OF THE SOFTWARE. |
* PERFORMANCE OR NON-PERFORMANCE OF THE SOFTWARE. |
* |
* |
* $OpenXM: OpenXM_contrib2/asir2000/engine/R.c,v 1.2 2000/08/21 08:31:27 noro Exp $ |
* $OpenXM: OpenXM_contrib2/asir2000/engine/R.c,v 1.4 2004/03/11 09:52:56 noro Exp $ |
*/ |
*/ |
#include "ca.h" |
#include "ca.h" |
|
|
|
|
*c = (Obj)ONE; |
*c = (Obj)ONE; |
else if ( !a ) |
else if ( !a ) |
*c = 0; |
*c = 0; |
else if ( !RAT(a) ) |
|
pwrp(vl,(P)a,(Q)q,(P *)c); |
|
else if ( !NUM(q) || !RATN(q) || !INT(q) ) |
else if ( !NUM(q) || !RATN(q) || !INT(q) ) |
notdef(vl,a,q,c); |
notdef(vl,a,q,c); |
else { |
else if ( !RAT(a) && (SGN((Q)q) > 0) ) { |
|
pwrp(vl,(P)a,(Q)q,&t); *c = (Obj)t; |
|
} else { |
|
if ( !RAT(a) ) { |
|
PTOR((P)a,r); a = (Obj)r; |
|
} |
if ( SGN((Q)q) < 0 ) { |
if ( SGN((Q)q) < 0 ) { |
chsgnq((Q)q,&q1); pwrp(vl,DN((R)a),q1,&t); pwrp(vl,NM((R)a),q1,&s); |
chsgnq((Q)q,&q1); pwrp(vl,DN((R)a),q1,&t); pwrp(vl,NM((R)a),q1,&s); |
} else { |
} else { |
|
|
t = compp(vl,DN((R)a),DN((R)b)); |
t = compp(vl,DN((R)a),DN((R)b)); |
return t; |
return t; |
} |
} |
|
} |
|
|
|
int equalr(vl,a,b) |
|
VL vl; |
|
Obj a,b; |
|
{ |
|
if ( !a ) |
|
return b ? 0 : 1; |
|
else if ( !b ) |
|
return 0; |
|
else if ( !RAT(a) ) |
|
return !RAT(b) ? equalp(vl,(P)a,(P)b) : 0; |
|
else if ( !RAT(b) ) |
|
return 0; |
|
else |
|
return equalp(vl,NM((R)a),NM((R)b)) && equalp(vl,DN((R)a),DN((R)b)); |
} |
} |