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

Diff for /OpenXM_contrib2/asir2000/builtin/parif.c between version 1.29 and 1.30

version 1.29, 2015/08/19 05:29:23 version 1.30, 2015/08/19 05:53:13
Line 1 
Line 1 
 /* $OpenXM: OpenXM_contrib2/asir2000/builtin/parif.c,v 1.28 2015/08/18 05:35:17 noro Exp $ */  /* $OpenXM: OpenXM_contrib2/asir2000/builtin/parif.c,v 1.29 2015/08/19 05:29:23 noro Exp $ */
 #include "ca.h"  #include "ca.h"
 #include "parse.h"  #include "parse.h"
 #include "ox.h"  #include "ox.h"
Line 63  Obj list_to_vect(Obj a)
Line 63  Obj list_to_vect(Obj a)
   return (Obj)v;    return (Obj)v;
 }  }
   
   Obj vect_to_mat(VECT v)
   {
     MAT m;
     int len,col,i,j;
   
     len = v->len;
     if ( v->body[0] && OID((Obj)v->body[0]) == O_VECT ) {
       col = ((VECT)v->body[0])->len;
           for ( i = 1; i < len; i++ )
             if ( !v->body[i] || OID((Obj)v->body[i]) != O_VECT
              || ((VECT)v->body[i])->len != col )
             break;
       if ( i == len ) {
             /* convert to a matrix */
             MKMAT(m,len,col);
             for ( i = 0; i < len; i++ )
               for ( j = 0; j < col; j++ )
                     m->body[i][j] = ((VECT)v->body[i])->body[j];
             return (Obj)m;
           }
     }
     return (Obj)v;
   }
   
 void reset_ox_pari()  void reset_ox_pari()
 {  {
   NODE nd;    NODE nd;
Line 117  pointer evalparif(FUNC f,NODE arg)
Line 141  pointer evalparif(FUNC f,NODE arg)
   ox_get_pari_result = 1;    ox_get_pari_result = 1;
   Pox_pop_cmo(oxarg,&ret);    Pox_pop_cmo(oxarg,&ret);
   ox_get_pari_result = 0;    ox_get_pari_result = 0;
   if ( ret && OID(ret) == O_LIST )    if ( ret && OID(ret) == O_LIST ) {
     ret = list_to_vect(ret);      ret = list_to_vect(ret);
           ret = vect_to_mat((VECT)ret);
     }
   return ret;    return ret;
 }  }
   

Legend:
Removed from v.1.29  
changed lines
  Added in v.1.30

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