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

Diff for /OpenXM_contrib2/asir2000/engine/up_gf2n.c between version 1.3 and 1.4

version 1.3, 2000/08/22 05:04:07 version 1.4, 2001/10/09 01:36:14
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/engine/up_gf2n.c,v 1.2 2000/08/21 08:31:28 noro Exp $   * $OpenXM: OpenXM_contrib2/asir2000/engine/up_gf2n.c,v 1.3 2000/08/22 05:04:07 noro Exp $
 */  */
 #include "ca.h"  #include "ca.h"
 #include <math.h>  #include <math.h>
Line 54  extern int debug_up;
Line 54  extern int debug_up;
 extern int up_lazy;  extern int up_lazy;
 extern GEN_UP2 current_mod_gf2n;  extern GEN_UP2 current_mod_gf2n;
   
 void squarep_gf2n(vl,n1,nr)  void squarep_gf2n(VL vl,P n1,P *nr)
 VL vl;  
 P n1;  
 P *nr;  
 {  {
         UP b1,br;          UP b1,br;
   
Line 72  P *nr;
Line 69  P *nr;
         }          }
 }  }
   
 void squareup_gf2n(n1,nr)  void squareup_gf2n(UP n1,UP *nr)
 UP n1;  
 UP *nr;  
 {  {
         UP r;          UP r;
         GF2N *c1,*c;          GF2N *c1,*c;
Line 98  UP *nr;
Line 93  UP *nr;
   
 /* x^(2^n) mod f */  /* x^(2^n) mod f */
   
 void powermodup_gf2n(f,xp)  void powermodup_gf2n(UP f,UP *xp)
 UP f;  
 UP *xp;  
 {  {
         UP x,t,invf;          UP x,t,invf;
         int k,n;          int k,n;
         GF2N lm;          GF2N lm;
         struct oEGT eg_sq,eg_rem,eg_mul,eg_inv,eg0,eg1,eg2;  
   
         n = degup2(current_mod_gf2n->dense);          n = degup2(current_mod_gf2n->dense);
         MKGF2N(ONEUP2,lm);          MKGF2N(ONEUP2,lm);
Line 123  UP *xp;
Line 115  UP *xp;
   
 /* g^d mod f */  /* g^d mod f */
   
 void generic_powermodup_gf2n(g,f,d,xp)  void generic_powermodup_gf2n(UP g,UP f,Q d,UP *xp)
 UP g,f;  
 Q d;  
 UP *xp;  
 {  {
         N e;          N e;
         UP x,y,t,invf,s;          UP x,y,t,invf,s;
Line 161  UP *xp;
Line 150  UP *xp;
   
 /* g+g^2+...+g^(2^(nd-1)) mod f; where e = deg(mod) */  /* g+g^2+...+g^(2^(nd-1)) mod f; where e = deg(mod) */
   
 void tracemodup_gf2n(g,f,d,xp)  void tracemodup_gf2n(UP g,UP f,Q d,UP *xp)
 UP g,f;  
 Q d;  
 UP *xp;  
 {  {
         UP x,t,s,u,invf;          UP x,t,s,u,invf;
         int en,i;          int en,i;
Line 185  UP *xp;
Line 171  UP *xp;
         *xp = s;          *xp = s;
 }  }
   
 void tracemodup_gf2n_slow(g,f,d,xp)  void tracemodup_gf2n_slow(UP g,UP f,Q d,UP *xp)
 UP g,f;  
 Q d;  
 UP *xp;  
 {  {
         UP x,t,s,u;          UP x,t,s,u;
         int en,i;          int en,i;
Line 207  UP *xp;
Line 190  UP *xp;
         *xp = s;          *xp = s;
 }  }
   
 static struct oEGT eg_trace_tab,eg_trace_mul;  void tracemodup_gf2n_tab(UP g,UP f,Q d,UP *xp)
   
 void tracemodup_gf2n_tab(g,f,d,xp)  
 UP g,f;  
 Q d;  
 UP *xp;  
 {  {
         UP x0,x2,t,s,u;          UP x0,x2,t,s,u;
         int en,i;          int en,i;
         UP *tab;          UP *tab;
         GF2N one;          GF2N one;
         struct oEGT eg1,eg2;  
   
         en = QTOS(d)*degup2(current_mod_gf2n->dense);          en = QTOS(d)*degup2(current_mod_gf2n->dense);
         remup(g,f,&t); g = t;          remup(g,f,&t); g = t;
Line 246  UP *xp;
Line 223  UP *xp;
         *xp = s;          *xp = s;
 }  }
   
 void square_rem_tab_up_gf2n(f,tab,rp)  void square_rem_tab_up_gf2n(UP f,UP *tab,UP *rp)
 UP f;  
 UP *tab;  
 UP *rp;  
 {  {
         UP s,t,u,n;          UP s,t,u,n;
         Num *c;          Num *c;
Line 270  UP *rp;
Line 244  UP *rp;
         }          }
 }  }
   
 void powertabup_gf2n(f,xp,tab)  void powertabup_gf2n(UP f,UP xp,UP *tab)
 UP f;  
 UP xp;  
 UP *tab;  
 {  {
         UP y,t,invf;          UP y,t,invf;
         int i,d;          int i,d;
Line 300  UP *tab;
Line 271  UP *tab;
         }          }
 }  }
   
 void find_root_gf2n(f,r)  void find_root_gf2n(UP f,GF2N *r)
 UP f;  
 GF2N *r;  
 {  {
         UP g,ut,c,t,h,rem;          UP g,ut,c,t,h,rem;
         int n;          int n;
         GF2N rn;          GF2N rn;
         struct oEGT eg0,eg1,eg_trace;  
   
         n = degup2(current_mod_gf2n->dense);          n = degup2(current_mod_gf2n->dense);
         g = f;          g = f;

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

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