System Variable IC: Difference between revisions
(add header, template) |
|||
Line 1: | Line 1: | ||
<h1><apl>{quad}IC</apl> - Indeterminate Control</h1> | |||
<table border="1" cellpadding="5" cellspacing="0" rules="none" summary=""> | <table border="1" cellpadding="5" cellspacing="0" rules="none" summary=""> | ||
<tr> | <tr> | ||
Line 246: | Line 245: | ||
<p>That there may be other indeterminates not covered by this feature. Please let us know if you think there are other cases that should be included.</p> | <p>That there may be other indeterminates not covered by this feature. Please let us know if you think there are other cases that should be included.</p> | ||
{{System Variables}} |
Revision as of 23:42, 21 February 2013
⎕IC - Indeterminate Control
|
||||
Z is an integer vector whose elements each control a separate aspect of how indeterminates are handled by the system. |
|
This experimental feature attempts to collect together in one place control of various infinite and indeterminate calculations such as ÷0,
⎕IC Index (origin-0) |
Indeterminate Calculation |
Default Result |
---|---|---|
0 | ÷0 | ∞ |
1 | ⍟0 | ¯∞ |
2 | !N for integer N<0 | DOMAIN ERROR |
3 | 0×∞ or ∞×0 | DOMAIN ERROR |
4 | 0ׯ∞ or ¯∞×0 | DOMAIN ERROR |
5 | 0÷0 | 1 |
6 | ∞÷∞ (same sign) | DOMAIN ERROR |
7 | ∞÷∞ (different sign) | DOMAIN ERROR |
8 | ∞-∞ (same sign) | DOMAIN ERROR |
9 | L|±∞ | DOMAIN ERROR |
10 | 0*0 | 1 |
11 | L*∞ for any L≤¯1 | DOMAIN ERROR |
12 | 0⍟0 | DOMAIN ERROR |
13 | 0⍟1 | DOMAIN ERROR |
14 | 1⍟0 | DOMAIN ERROR |
15 | 1⍟1 | 1 |
16 | 0*∞ | 0 |
17 | 0*¯∞ | ∞ |
18 | ±∞*0 | DOMAIN ERROR |
19 | 0∨±∞ or ±∞∨0 | DOMAIN ERROR |
20 | 0∧±∞ or ±∞∧0 | DOMAIN ERROR |
The values in each element of ⎕IC control the result of the calculation as follows:
⎕IC Value | Result |
---|---|
¯1 | ¯1 |
0 | 0 |
1 | 1 |
2 | DOMAIN ERROR |
3 | ∞ |
4 | ¯∞ |
For example,
⎕IO←0
⎕IC
3 4 2 2 2 1 2 2 2 2 1 2 1 2 2 1 0 3 2 2 2
0÷0
1
⎕IC[5]←2
0÷0
DOMAIN ERROR
0÷0
∧
⎕IC←⍬
⎕IC
3 4 2 2 2 1 2 2 2 2 1 2 1 2 2 1 0 3 2 2 2
To set all indeterminate results to DOMAIN ERROR, use ⎕IC[]←2.
Incomplete List of Indeterminates
That there may be other indeterminates not covered by this feature. Please let us know if you think there are other cases that should be included.
System Variables (A value may be assigned to these except for ⎕DM) | |||||||||
---|---|---|---|---|---|---|---|---|---|
⎕ALX | ⎕CT | ⎕DM | ⎕DT | ⎕ELX | ⎕FC | ⎕FEATURE | ⎕FPC | ⎕IC | ⎕IO |
⎕LR | ⎕LX | ⎕PP | ⎕PR | ⎕PW | ⎕RL | ⎕SA | ⎕WSID | ||
Niladic System Functions (a value cannot be assigned to these) | |||||||||
⎕A | ⎕AV | ⎕EM | ⎕ET | ⎕LC | ⎕NNAMES | ⎕NNUMS | ⎕SI | ⎕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 | ⎕DFT | ⎕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 (except for the ⎕A family of functions) are case insensitive |