version 1.1, 2018/09/19 05:45:06 |
version 1.2, 2018/09/28 08:20:27 |
|
|
* 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: OpenXM_contrib2/asir2018/builtin/pdiv.c,v 1.1 2018/09/19 05:45:06 noro Exp $ |
*/ |
*/ |
#include "ca.h" |
#include "ca.h" |
#include "parse.h" |
#include "parse.h" |
|
|
else if ( (OID(p1) > O_P) || (OID(p2) > O_P ) ) |
else if ( (OID(p1) > O_P) || (OID(p2) > O_P ) ) |
*rp = 0; |
*rp = 0; |
else if ( argc(arg) == 3 ) { |
else if ( argc(arg) == 3 ) { |
m = QTOS((Q)ARG2(arg)); |
m = ZTOS((Q)ARG2(arg)); |
ptomp(m,p1,&q1); ptomp(m,p2,&q2); |
ptomp(m,p1,&q1); ptomp(m,p2,&q2); |
if ( divtmp(CO,m,q1,q2,&q) ) |
if ( divtmp(CO,m,q1,q2,&q) ) |
mptop(q,rp); |
mptop(q,rp); |
|
|
asir_assert(ARG0(arg),O_P,"sdivm"); |
asir_assert(ARG0(arg),O_P,"sdivm"); |
asir_assert(ARG1(arg),O_P,"sdivm"); |
asir_assert(ARG1(arg),O_P,"sdivm"); |
asir_assert(ARG2(arg),O_N,"sdivm"); |
asir_assert(ARG2(arg),O_N,"sdivm"); |
dnd = (P)ARG0(arg); dvr = (P)ARG1(arg); m = QTOS((Q)ARG2(arg)); |
dnd = (P)ARG0(arg); dvr = (P)ARG1(arg); m = ZTOS((Q)ARG2(arg)); |
if ( argc(arg) == 4 ) { |
if ( argc(arg) == 4 ) { |
v = VR((P)ARG3(arg)); |
v = VR((P)ARG3(arg)); |
change_mvar(CO,dnd,v,&dnd1); change_mvar(CO,dvr,v,&dvr1); |
change_mvar(CO,dnd,v,&dnd1); change_mvar(CO,dvr,v,&dvr1); |
|
|
asir_assert(ARG0(arg),O_P,"sremm"); |
asir_assert(ARG0(arg),O_P,"sremm"); |
asir_assert(ARG1(arg),O_P,"sremm"); |
asir_assert(ARG1(arg),O_P,"sremm"); |
asir_assert(ARG2(arg),O_N,"sremm"); |
asir_assert(ARG2(arg),O_N,"sremm"); |
dnd = (P)ARG0(arg); dvr = (P)ARG1(arg); m = QTOS((Q)ARG2(arg)); |
dnd = (P)ARG0(arg); dvr = (P)ARG1(arg); m = ZTOS((Q)ARG2(arg)); |
if ( argc(arg) == 4 ) { |
if ( argc(arg) == 4 ) { |
v = VR((P)ARG3(arg)); |
v = VR((P)ARG3(arg)); |
change_mvar(CO,dnd,v,&dnd1); change_mvar(CO,dvr,v,&dvr1); |
change_mvar(CO,dnd,v,&dnd1); change_mvar(CO,dvr,v,&dvr1); |
|
|
asir_assert(ARG0(arg),O_P,"sqrm"); |
asir_assert(ARG0(arg),O_P,"sqrm"); |
asir_assert(ARG1(arg),O_P,"sqrm"); |
asir_assert(ARG1(arg),O_P,"sqrm"); |
asir_assert(ARG2(arg),O_N,"sqrm"); |
asir_assert(ARG2(arg),O_N,"sqrm"); |
dnd = (P)ARG0(arg); dvr = (P)ARG1(arg); m = QTOS((Q)ARG2(arg)); |
dnd = (P)ARG0(arg); dvr = (P)ARG1(arg); m = ZTOS((Q)ARG2(arg)); |
if ( argc(arg) == 4 ) { |
if ( argc(arg) == 4 ) { |
v = VR((P)ARG3(arg)); |
v = VR((P)ARG3(arg)); |
change_mvar(CO,dnd,v,&dnd1); change_mvar(CO,dvr,v,&dvr1); |
change_mvar(CO,dnd,v,&dnd1); change_mvar(CO,dvr,v,&dvr1); |
|
|
asir_assert(ARG1(arg),O_N,"gcda_mod"); |
asir_assert(ARG1(arg),O_N,"gcda_mod"); |
asir_assert(ARG2(arg),O_P,"gcda_mod"); |
asir_assert(ARG2(arg),O_P,"gcda_mod"); |
dp = (P)ARG0(arg); |
dp = (P)ARG0(arg); |
mod = QTOS((Q)ARG1(arg)); |
mod = ZTOS((Q)ARG1(arg)); |
f = (P)ARG2(arg); |
f = (P)ARG2(arg); |
if ( NUM(f) ) { |
if ( NUM(f) ) { |
i = invm(remqi((Q)f,mod),mod); |
i = invm(remqi((Q)f,mod),mod); |
STOQ(i,q); *rp = (P)q; |
STOZ(i,q); *rp = (P)q; |
} else { |
} else { |
v = VR(dp); |
v = VR(dp); |
n = MAX(UDEG(dp),UDEG(f)); |
n = MAX(UDEG(dp),UDEG(f)); |
|
|
asir_assert(ARG0(arg),O_P,"srem_mod"); |
asir_assert(ARG0(arg),O_P,"srem_mod"); |
asir_assert(ARG1(arg),O_P,"srem_mod"); |
asir_assert(ARG1(arg),O_P,"srem_mod"); |
asir_assert(ARG2(arg),O_N,"srem_mod"); |
asir_assert(ARG2(arg),O_N,"srem_mod"); |
p1 = (P)ARG0(arg); p2 = (P)ARG1(arg); mod = QTOS((Q)ARG2(arg)); |
p1 = (P)ARG0(arg); p2 = (P)ARG1(arg); mod = ZTOS((Q)ARG2(arg)); |
if ( !p1 || NUM(p1) ) |
if ( !p1 || NUM(p1) ) |
*rp = p1; |
*rp = p1; |
else { |
else { |