@ -3,8 +3,6 @@ 
			
		 
		
	
		
			
				 
				 
				// General includes.
  
				 
				 
				// General includes.
  
			
		 
		
	
		
			
				 
				 
				# include  "cl_sysdep.h" 
  
				 
				 
				# include  "cl_sysdep.h" 
  
			
		 
		
	
		
			
				 
				 
				
 
				 
				 
				
 
			
		 
		
	
		
			
				 
				 
				CL_PROVIDE ( cl_F_epspos )  
				 
				 
				 
			
		 
		
	
		
			
				 
				 
				
 
				 
				 
				 
			
		 
		
	
		
			
				 
				 
				// Specification.
  
				 
				 
				// Specification.
  
			
		 
		
	
		
			
				 
				 
				# include  "cln/float.h" 
  
				 
				 
				# include  "cln/float.h" 
  
			
		 
		
	
		
			
				 
				 
				
 
				 
				 
				
 
			
		 
		
	
	
		
			
				
					
					
					
						
							 
						 
					
				 
				@ -19,23 +17,7 @@ CL_PROVIDE(cl_F_epspos) 
			
		 
		
	
		
			
				 
				 
				
 
				 
				 
				
 
			
		 
		
	
		
			
				 
				 
				namespace  cln  {  
				 
				 
				namespace  cln  {  
			
		 
		
	
		
			
				 
				 
				
 
				 
				 
				
 
			
		 
		
	
		
			
				 
				 
				// Bei Floats mit d Bits (incl. Hiddem Bit, also d = ?F_mant_len+1)
  
				 
				 
				 
			
		 
		
	
		
			
				 
				 
				// ist ?F_epsilon = 2^-d*(1+2^(1-d)), d.h. Mantisse 10...01, Vorzeichen +.
  
				 
				 
				 
			
		 
		
	
		
			
				 
				 
				
 
				 
				 
				 
			
		 
		
	
		
			
				 
				 
				static  const  cl_SF  SF_epsilon  =  
				 
				 
				 
			
		 
		
	
		
			
				 
				 
					make_SF ( 0 , SF_exp_mid - SF_mant_len , bit ( SF_mant_len ) + 1 ) ;  
				 
				 
				 
			
		 
		
	
		
			
				 
				 
				
 
				 
				 
				 
			
		 
		
	
		
			
				 
				 
				static  const  cl_FF  FF_epsilon  =  
				 
				 
				 
			
		 
		
	
		
			
				 
				 
					encode_FF ( 0 , - FF_mant_len , bit ( FF_mant_len ) + 1 ) ;  
				 
				 
				 
			
		 
		
	
		
			
				 
				 
				
 
				 
				 
				 
			
		 
		
	
		
			
				 
				 
				static  const  cl_DF  DF_epsilon  =  
				 
				 
				 
			
		 
		
	
		
			
				 
				 
					# if (cl_word_size==64) 
  
				 
				 
				 
			
		 
		
	
		
			
				 
				 
					  encode_DF ( 0 , - DF_mant_len , bit ( DF_mant_len ) + 1 ) ;  
				 
				 
				 
			
		 
		
	
		
			
				 
				 
					# else 
  
				 
				 
				 
			
		 
		
	
		
			
				 
				 
					  encode_DF ( 0 , - DF_mant_len , bit ( DF_mant_len - 32 ) , 1 ) ;  
				 
				 
				 
			
		 
		
	
		
			
				 
				 
					# endif 
  
				 
				 
				 
			
		 
		
	
		
			
				 
				 
				
 
				 
				 
				 
			
		 
		
	
		
			
				 
				 
				inline  const  cl_LF  LF_epsilon  ( uintC  len )  
				 
				 
				 
			
		 
		
	
		
			
				 
				 
				 
				 
				 
				static  inline  const  cl_LF  LF_epsilon  ( uintC  len )  
			
		 
		
	
		
			
				 
				 
				{  
				 
				 
				{  
			
		 
		
	
		
			
				 
				 
					var  Lfloat  erg  =  allocate_lfloat ( len , LF_exp_mid + 1 - intDsize * len , 0 ) ;  
				 
				 
					var  Lfloat  erg  =  allocate_lfloat ( len , LF_exp_mid + 1 - intDsize * len , 0 ) ;  
			
		 
		
	
		
			
				 
				 
					var  uintD *  ptr  =  & TheLfloat ( erg ) - > data [ 0 ] ;  
				 
				 
					var  uintD *  ptr  =  & TheLfloat ( erg ) - > data [ 0 ] ;  
			
		 
		
	
	
		
			
				
					
					
					
						
							 
						 
					
				 
				@ -53,6 +35,22 @@ inline const cl_LF LF_epsilon (uintC len) 
			
		 
		
	
		
			
				 
				 
				
 
				 
				 
				
 
			
		 
		
	
		
			
				 
				 
				const  cl_F  float_epsilon  ( float_format_t  f )  
				 
				 
				const  cl_F  float_epsilon  ( float_format_t  f )  
			
		 
		
	
		
			
				 
				 
				{  
				 
				 
				{  
			
		 
		
	
		
			
				 
				 
				 
				 
				 
					// Bei Floats mit d Bits (incl. Hiddem Bit, also d = ?F_mant_len+1)
  
			
		 
		
	
		
			
				 
				 
				 
				 
				 
					// ist ?F_epsilon = 2^-d*(1+2^(1-d)), d.h. Mantisse 10...01, Vorzeichen +.
  
			
		 
		
	
		
			
				 
				 
				 
				 
				 
				
 
			
		 
		
	
		
			
				 
				 
				 
				 
				 
					static  const  cl_SF  SF_epsilon  =  
			
		 
		
	
		
			
				 
				 
				 
				 
				 
						make_SF ( 0 , SF_exp_mid - SF_mant_len , bit ( SF_mant_len ) + 1 ) ;  
			
		 
		
	
		
			
				 
				 
				 
				 
				 
				
 
			
		 
		
	
		
			
				 
				 
				 
				 
				 
					static  const  cl_FF  FF_epsilon  =  
			
		 
		
	
		
			
				 
				 
				 
				 
				 
						encode_FF ( 0 , - FF_mant_len , bit ( FF_mant_len ) + 1 ) ;  
			
		 
		
	
		
			
				 
				 
				 
				 
				 
				
 
			
		 
		
	
		
			
				 
				 
				 
				 
				 
					static  const  cl_DF  DF_epsilon  =  
			
		 
		
	
		
			
				 
				 
				 
				 
				 
					# if (cl_word_size==64) 
  
			
		 
		
	
		
			
				 
				 
				 
				 
				 
						encode_DF ( 0 , - DF_mant_len , bit ( DF_mant_len ) + 1 ) ;  
			
		 
		
	
		
			
				 
				 
				 
				 
				 
					# else 
  
			
		 
		
	
		
			
				 
				 
				 
				 
				 
						encode_DF ( 0 , - DF_mant_len , bit ( DF_mant_len - 32 ) , 1 ) ;  
			
		 
		
	
		
			
				 
				 
				 
				 
				 
					# endif 
  
			
		 
		
	
		
			
				 
				 
				 
				 
				 
				
 
			
		 
		
	
		
			
				 
				 
					floatformatcase ( ( uintC ) f  
				 
				 
					floatformatcase ( ( uintC ) f  
			
		 
		
	
		
			
				 
				 
					, 	return  SF_epsilon ;  
				 
				 
					, 	return  SF_epsilon ;  
			
		 
		
	
		
			
				 
				 
					, 	return  FF_epsilon ;  
				 
				 
					, 	return  FF_epsilon ;  
			
		 
		
	
	
		
			
				
					
					
					
						
							 
						 
					
				 
				@ -63,4 +61,3 @@ const cl_F float_epsilon (float_format_t f) 
			
		 
		
	
		
			
				 
				 
				
 
				 
				 
				
 
			
		 
		
	
		
			
				 
				 
				}   // namespace cln
  
				 
				 
				}   // namespace cln
  
			
		 
		
	
		
			
				 
				 
				
 
				 
				 
				
 
			
		 
		
	
		
			
				 
				 
				CL_PROVIDE_END ( cl_F_epspos )