System Variable CT

From NARS2000
Jump to: navigation, search

⎕CT - Comparison Tolerance

⎕CT Value used by several primitive functions to determine whether two numbers should be considered equal; default for a CLEAR NARS workspace is 3E¯15.
⎕CT←RealNumber

Due to computer storage formats, real numbers(e.g. 1E¯64) are normally expressed as n-bits of information
and not necessarily an exact number. NARS allows ⎕CT to vary between no larger than 1E¯10 and no smaller than 0.
The IEEE [minimum] standard for floating point real numbers is 64-bits(IEEE-754).

Examples:


      ⎕CT         ⍝ View ⎕CT for a CLEAR NARS workspace.
3E¯15             ⍝ Default value.
      ⎕CT←45      ⍝ Attempt to change Comparison Tolerance to [+/-] 45 (an exaggerated engineering +/- tolerance.
      ⎕CT         ⍝ View ⎕CT after attempting to set its value at 45.
1E¯10             ⍝ This is the largest ⎕CT number NARS will allow = 1E¯10 (and NOT 45 as was attempted just above).

      4.0000000000005=4.0000000000008   ⍝ Comparison attempted.  Are these two different numbers equal? (No, but...).
1                 ⍝ NARS/APL's Interpreter says YES(1), they ARE EQUAL - because the Comparison Tolerance is set high/large.
      ⎕CT←1E¯64   ⍝ Set NARS comparison tolerance to a much smaller number (for greater precision comparisons).
      ⎕CT         ⍝ View ⎕CT
1E¯64
      4.0000000000005=4.0000000000008   ⍝ Are these two different [but the same as above] numbers NOW equal? (No).
0            ⍝ NARS/APL's Interpreter says NO(0), they are NOT EQUAL - because the Comparison Tolerance is set below the threshold.

      ⎕CT←1E¯10000
      ⎕CT
0
      ⎕CT←3E¯15   ⍝ Reset ⎕CT to its default value.
      ⎕CT
3E¯15

It is useful to think of ⎕CT as an engineering tolerance +/- for computer science engineers in comparing numbers in APL - sometimes comparing results from different computer programs or comparing results from different methodologies or a standard. In Mechanical Engineering, tolerance is defined as the permissible deviation from a specified value of some dimension, often expressed as a percent, e.g. 0.01% and in Nanotechnology, for example, one nanometer is 1E-9 of a meter.

See Also: ⎕FPC - Floating Point Control

System Variables (A value may be assigned to these except for ⎕DM)
ALX CT DM DT ELX FC FEATURE FPC IC IO
LX PP PR PW RL SA WSID
Niladic System Functions (a value cannot be assigned to these)
A AV EM ET LC NNAMES NNUMS SYSID SYSVER T
TC TCBEL TCBS TCESC TCFF TCHT TCLF TCNL TCNUL TS
WA
Monadic or dyadic system functions (a value cannot be assigned to these)
AT CR DC DL DR EA EC ERROR ES EX
FMT FX MF NAPPEND NC NCREATE NERASE NINFO NL NLOCK
NREAD NRENAME NREPLACE NRESIZE NSIZE NTIE NUNTIE STOP TF TRACE
UCS VR
Note that quad functions and variables are case insensitive


See Also
System Commands System Variables and Functions Operators
Keyboard
A+S
Alt ¨ ¯ < > × ÷
Sh ~ ! @ # $ % ^ & * ( ) _ +
Key ` 1 2 3 4 5 6 7 8 9 0 - =
A+S
Alt ? π
Sh Q W E R T Y U I O P { } |
Key q w e r t y u i o p [ ] \
A+S §
Alt
Sh A S D F G H J K L : "
Key a s d f g h j k l ; '
A+S
Alt
Sh Z X C V B N M < > ?
Key z x c v b n m , . /
NARS 2000 Lang
Tool
Bar
+ - × ÷ * ! ? |
= < >
~ § π .. ,
/ \ ¨ .
_ ¯ b e g p r v x



This NARS2000 article is a stub and needs further work.