Both sides previous revision
Previous revision


manual:chapter3:reals [2019/11/05 16:32] jojo1973 Added more commands 
manual:chapter3:reals [2019/11/06 15:21] (current) jojo1973 Added Special symbols 
==== Testing ====  ==== Testing ==== 
 
Real numbers form an ordered set and its elements can be compared: **newRPL** provides a full set of arithmetic and logic operators plus some specialized ones.  Real numbers form an ordered field and its elements can be compared: **newRPL** provides a full set of arithmetic and logic operators plus some specialized ones. 
 
All these operators (except ''[[manual:chapter6:operators:cmd_ovr_cmpCMP]]'') return ''1'' __if the test is true__ and ''0'' __if the test is false__. Actually any value different from ''0'' is considered __true__, but conventionally the operators return always ''1'' when the test succeeds.  All these operators (except ''[[manual:chapter6:operators:cmd_ovr_cmpCMP]]'') return ''1'' __if the test is true__ and ''0'' __if the test is false__. Actually any value different from ''0'' is considered __true__, but conventionally the operators return always ''1'' when the test succeeds. 
   
 
==== Special numbers ====  ==== Special symbols ==== 
 
Operation on real numbers aren't always defined on the whole field of real numbers.  Operations on real numbers aren't always defined on the whole field of real numbers: a notable example is the division, which is not defined if the divisor is ''0''. **newRPL** handles these occurrances defining two special symbols: ''∞'' (//infinity//) and ''NaN'' (//NotaNumber//). 
 
 The ''∞'' symbol is returned when attempting, as anticipated, a division by ''0'' or when the result of a function (e.g. ''[[manual:chapter6:transcendentals:cmd_tanTAN]]'') diverges. Albeit ''∞'' must not be considered a number, it obeys to a number of rules. The following examples assume flag [[manual:appendix:flags#flag103103]] is cleared. 
 
 * ''∞'' ''[[manual:chapter6:operators:cmd_ovr_add+]]'' or ''[[manual:chapter6:operators:cmd_ovr_sub]]'' a finite number yields ''∞''; 
 * ''∞'' ''[[manual:chapter6:operators:cmd_ovr_mul*]]'' or ''[[manual:chapter6:operators:cmd_ovr_div/]]'' a finite number yields ''∞''; 
 * the sign rule in multiplication or division applies, therefore ''∞'' is a valid object; 
 * sum, multiplication or power of ''∞'' with itself yields ''∞''. 
 
 The ''NaN'' symbol is **newRPL** way of informing the user that the attempted calculation returns an //undefined// result: typical examples include the calculation of the difference ''∞  ∞'' or the sine of ''∞''. In general any function that includes ''NaN'' among its arguments will yield ''NaN''. 