[BACK]Return to pdiv.c CVS log [TXT][DIR] Up to [local] / OpenXM_contrib2 / asir2000 / builtin

Diff for /OpenXM_contrib2/asir2000/builtin/pdiv.c between version 1.4 and 1.5

version 1.4, 2000/08/22 05:03:59 version 1.5, 2001/02/21 07:10:17
Line 45 
Line 45 
  * 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/builtin/pdiv.c,v 1.3 2000/08/21 08:31:20 noro Exp $   * $OpenXM: OpenXM_contrib2/asir2000/builtin/pdiv.c,v 1.4 2000/08/22 05:03:59 noro Exp $
 */  */
 #include "ca.h"  #include "ca.h"
 #include "parse.h"  #include "parse.h"
Line 64  struct ftab pdiv_tab[] = {
Line 64  struct ftab pdiv_tab[] = {
         {"sdiv_gf2n",Psdiv_gf2n,2},          {"sdiv_gf2n",Psdiv_gf2n,2},
         {"srem_gf2n",Psrem_gf2n,2},          {"srem_gf2n",Psrem_gf2n,2},
         {"sqr",Psqr,-3},          {"sqr",Psqr,-3},
         {"tdiv",Ptdiv,2},          {"tdiv",Ptdiv,-3},
         {"udiv",Pudiv,2},          {"udiv",Pudiv,2},
         {"sdivm",Psdivm,-4},          {"sdivm",Psdivm,-4},
         {"sremm",Psremm,-4},          {"sremm",Psremm,-4},
Line 182  NODE arg;
Line 182  NODE arg;
 P *rp;  P *rp;
 {  {
         P p1,p2,q1,q2,q,c1,c2,c;          P p1,p2,q1,q2,q,c1,c2,c;
           int m;
   
         p1 = (P)ARG0(arg); p2 = (P)ARG1(arg);          p1 = (P)ARG0(arg); p2 = (P)ARG1(arg);
         asir_assert(p1,O_P,"tdiv");          asir_assert(p1,O_P,"tdiv");
Line 190  P *rp;
Line 191  P *rp;
                 *rp = 0;                  *rp = 0;
         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 {          else if ( argc(arg) == 3 ) {
                   m = QTOS((Q)ARG2(arg));
                   ptomp(m,p1,&q1); ptomp(m,p2,&q2);
                   if ( divtmp(CO,m,q1,q2,&q) )
                           mptop(q,rp);
                   else
                           *rp = 0;
           } else {
                 ptozp(p1,1,(Q *)&c1,&q1); ptozp(p2,1,(Q *)&c2,&q2);                  ptozp(p1,1,(Q *)&c1,&q1); ptozp(p2,1,(Q *)&c2,&q2);
                 if ( divtpz(CO,q1,q2,&q) ) {                  if ( divtpz(CO,q1,q2,&q) ) {
                         divq((Q)c1,(Q)c2,(Q *)&c); mulp(CO,q,c,rp);                          divq((Q)c1,(Q)c2,(Q *)&c); mulp(CO,q,c,rp);

Legend:
Removed from v.1.4  
changed lines
  Added in v.1.5

FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>