54 lines
		
	
	
		
			662 B
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			54 lines
		
	
	
		
			662 B
		
	
	
	
		
			C
		
	
	
	
	
	
#include "fe.h"
 | 
						|
 | 
						|
/*
 | 
						|
    return 1 if f == 0
 | 
						|
    return 0 if f != 0
 | 
						|
 | 
						|
    Preconditions:
 | 
						|
       |f| bounded by 1.1*2^26,1.1*2^25,1.1*2^26,1.1*2^25,etc.
 | 
						|
*/
 | 
						|
 | 
						|
int fe_isnonzero(const fe f) {
 | 
						|
    unsigned char s[32];
 | 
						|
    unsigned char r;
 | 
						|
 | 
						|
    fe_tobytes(s, f);
 | 
						|
 | 
						|
    r = s[0];
 | 
						|
    #define F(i) r |= s[i]
 | 
						|
    F(1);
 | 
						|
    F(2);
 | 
						|
    F(3);
 | 
						|
    F(4);
 | 
						|
    F(5);
 | 
						|
    F(6);
 | 
						|
    F(7);
 | 
						|
    F(8);
 | 
						|
    F(9);
 | 
						|
    F(10);
 | 
						|
    F(11);
 | 
						|
    F(12);
 | 
						|
    F(13);
 | 
						|
    F(14);
 | 
						|
    F(15);
 | 
						|
    F(16);
 | 
						|
    F(17);
 | 
						|
    F(18);
 | 
						|
    F(19);
 | 
						|
    F(20);
 | 
						|
    F(21);
 | 
						|
    F(22);
 | 
						|
    F(23);
 | 
						|
    F(24);
 | 
						|
    F(25);
 | 
						|
    F(26);
 | 
						|
    F(27);
 | 
						|
    F(28);
 | 
						|
    F(29);
 | 
						|
    F(30);
 | 
						|
    F(31);
 | 
						|
    #undef F
 | 
						|
 | 
						|
    return r != 0;
 | 
						|
}
 |