System Function DC: Difference between revisions

From NARS2000
Jump to navigationJump to search
No edit summary
 
(5 intermediate revisions by the same user not shown)
Line 5: Line 5:
{{BoxLine |<apll>R</apll> is a numeric array.}}
{{BoxLine |<apll>R</apll> is a numeric array.}}
{{BoxEnd  |
{{BoxEnd  |
<ul><li>For 1-measureable <apll>R</apll> (that is, simple numeric, e.g. BOOL, INT, APA, FLOAT, RAT, or VFP) where the number of columns of <apll>R</apll> (call that <apll>NC</apll>) is <apll>1</apll>, <apll>2</apll>, <apll>4</apll>, or <apll>8</apll>, <apll>Z</apll> is the corresponding Hypercomplex array whose measure is the same as the number of columns of <apll>R</apll>, and whose shape is <apll>¯1↓⍴R</apll>.  That is, the values in the last coordinate of <apll>R</apll> are treated as the coefficients of a Hypercomplex number and <apll>Z</apll> is the corresponding Hypercomplex number.</li>
<ul><li>For simple numeric (a.k.a. Hypercomplex 1-dimensional &mdash; BOOL, INT, APA, FLOAT, RAT, or VFP) <apll>R</apll>, where the number of columns of <apll>R</apll> (call that <apll>NC</apll>) is <apll>1</apll>, <apll>2</apll>, <apll>4</apll>, or <apll>8</apll>, <apll>Z</apll> is the corresponding Hypercomplex array whose Hypercomplex dimension is the same as the number of columns of <apll>R</apll>, and whose shape is <apll>¯1↓⍴R</apll>.  That is, the values in the last coordinate of <apll>R</apll> are treated as the coefficients of a Hypercomplex number and <apll>Z</apll> is the corresponding Hypercomplex number. '''This capability has been replaced by the [[Condense]] function (<apll>&lt;R</apll>).'''</li>
<li>For 2-, 4-, or 8-measurable <apll>R</apll>, <apll>Z</apll> is the corresponding simple array (INT, FLOAT, RAT, or VFP) with a new dimension on the right consisting of the coefficients of the Hypercomplex numbers in <apll>R</apll>, and whose shape is <apll>(⍴R),NC</apll>.  That is, <apll>Z</apll> contains the coefficients of the Hypercomplex number <apll>R</apll>.</li></ul>}}
<li>For Hypercomplex 2-, 4-, or 8-dimensional <apll>R</apll>, <apll>Z</apll> is the corresponding simple array (INT, FLOAT, RAT, or VFP) with a new coordinate on the right consisting of the coefficients of the Hypercomplex numbers in <apll>R</apll>, and whose shape is <apll>(⍴R),NC</apll>.  That is, <apll>Z</apll> contains the coefficients of the Hypercomplex number <apll>R</apll>. '''This capability has been replaced by the [[Dilate]] function (<apll>&gt;R</apll>).'''</li></ul>}}
<br />
<br />
<br />
<br />
<p>For example,</p>
<p>For example,</p>
<apll>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;⎕←a←⎕DC 4 2⍴1 0 ¯1 0 0 1 0 ¯1<br />1 ¯1 0<pn>i</pn>1 0<pn>i</pn>¯1 </apll>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;The four units for Complex numbers<br />
<apll><pre>
<apll>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;⎕DC a<br />
      ⎕←a←⎕DC 4 2⍴1 0 ¯1 0 0 1 0 ¯1
&nbsp;1&nbsp; 0<br />
1 ¯1 0<hc>i</hc>1 0<hc>i</hc>¯1     ⍝  The four units for Complex numbers  
¯1&nbsp; 0<br />
      ⎕DC a  
&nbsp;0&nbsp; 1<br />
1 0  
&nbsp;0 ¯1</apll>
¯1 0  
<br /><br />
0 1  
0 ¯1</pre></apll>


==Dyadic Function==
==Dyadic Function==
Line 22: Line 23:
|converts the coefficients of <apll>R</apll> to the datatype indicated by <apll>L</apll>.}}
|converts the coefficients of <apll>R</apll> to the datatype indicated by <apll>L</apll>.}}
{{BoxLine|<apll>R</apll> is a numeric array.}}
{{BoxLine|<apll>R</apll> is a numeric array.}}
{{BoxLine|<apll>L</apll> is a character scalar or one-element vector datatype (<apll>'I'</apll>, <apll>'F'</apll>, <apll>'R'</apll>, or <apll>'V'</apll>) indicating the datatype to which the coefficients should be converted.}}
{{BoxLine|If <apll>L</apll> is a character scalar or one-element vector whose value is one of (<apll>'I'</apll>, <apll>'F'</apll>, <apll>'R'</apll>, or <apll>'V'</apll>), this value indicates the datatype to which the coefficients of <apll>R</apll> should be converted.}}
{{BoxLine|If <apll>L</apll> is a numeric scalar or one-element vector, then its datatype is the datatype to which the coefficients of <apll>R</apll> should be converted.}}
{{BoxEnd|<apll>Z</apll> is <apll>R</apll> where all of the coefficients of each of the values are converted to the datatype indicated by <apll>L</apll>.
{{BoxEnd|<apll>Z</apll> is <apll>R</apll> where all of the coefficients of each of the values are converted to the datatype indicated by <apll>L</apll>.
The shape of <apll>Z</apll> is the same as that of <apll>R</apll>.}}
The shape of <apll>Z</apll> is the same as that of <apll>R</apll>.}}
<br /><p>For example,</p><apll>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'R' ⎕DC 1.5<pn>i</pn>3<br />3<pn>r</pn>2<pn>i</pn>3<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'R' ⎕DC 1.1<pn>i</pn>3<br />2476979795053773<pn>r</pn>2251799813685248<pn>i</pn>3<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'F' ⎕DC 3<pn>r</pn>2 2476979795053773<pn>r</pn>2251799813685248<br />1.5 1.1</apll>
<br />
 
For example,
 
<apll>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'R' ⎕DC 1.5<_i/>3
3<_r/>2<_i/>3
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'R' ⎕DC 1.1<_i/>3
2476979795053773<_r/>2251799813685248<_i/>3
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'F' ⎕DC 3<_r/>2 2476979795053773<_r/>2251799813685248
1.5 1.1
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;0 ⎕DR ⎕←0<_x/> ⎕DC 2<_i/>1
2<_i/>1  
Complex Rational (1416):  arbitrary precision numerator and denominator
</apll>
<br/>
<br/>
{{SFDM|DC}}
{{SFDM|DC}}

Latest revision as of 10:49, 9 November 2023

This function is available in both monadic and dyadic forms.

Monadic Function

Z←⎕DC R converts R between the coefficients of a Hypercomplex number and the corresponding Hypercomplex number.
R is a numeric array.
  • For simple numeric (a.k.a. Hypercomplex 1-dimensional — BOOL, INT, APA, FLOAT, RAT, or VFP) R, where the number of columns of R (call that NC) is 1, 2, 4, or 8, Z is the corresponding Hypercomplex array whose Hypercomplex dimension is the same as the number of columns of R, and whose shape is ¯1↓⍴R. That is, the values in the last coordinate of R are treated as the coefficients of a Hypercomplex number and Z is the corresponding Hypercomplex number. This capability has been replaced by the Condense function (<R).
  • For Hypercomplex 2-, 4-, or 8-dimensional R, Z is the corresponding simple array (INT, FLOAT, RAT, or VFP) with a new coordinate on the right consisting of the coefficients of the Hypercomplex numbers in R, and whose shape is (⍴R),NC. That is, Z contains the coefficients of the Hypercomplex number R. This capability has been replaced by the Dilate function (>R).



For example,

      ⎕←a←⎕DC 4 2⍴1 0 ¯1 0 0 1 0 ¯1
1 ¯1 0i1 0i¯1      ⍝  The four units for Complex numbers 
      ⎕DC a 
 1  0 
¯1  0 
 0  1 
 0 ¯1

Dyadic Function

Z←L ⎕DC R converts the coefficients of R to the datatype indicated by L.
R is a numeric array.
If L is a character scalar or one-element vector whose value is one of ('I', 'F', 'R', or 'V'), this value indicates the datatype to which the coefficients of R should be converted.
If L is a numeric scalar or one-element vector, then its datatype is the datatype to which the coefficients of R should be converted.
Z is R where all of the coefficients of each of the values are converted to the datatype indicated by L. The shape of Z is the same as that of R.


For example,

      'R' ⎕DC 1.5i3 3r2i3       'R' ⎕DC 1.1i3 2476979795053773r2251799813685248i3       'F' ⎕DC 3r2 2476979795053773r2251799813685248 1.5 1.1       0 ⎕DR ⎕←0x ⎕DC 2i1 2i1 Complex Rational (1416): arbitrary precision numerator and denominator

Note: ⎕DC is available as both a monadic and dyadic form system function, you cannot assign a value to it.

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


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 , . /
{{#ifeq:0|4||title="match" style="border-width:thick; border-color:blue; background-color:yellow;"|≡ {{#ifeq:0|7||title="iota" style="border-width:thick; border-color:blue; background-color:yellow;" |⍳ {{#ifeq:0|9||title="slash" style="border-width:thick; border-color:blue; background-color:yellow;" |/ {{#ifeq:0|11||title="diamond" style="border-width:thick; border-color:blue; background-color:yellow;" |⋄ {{#switch: 0
NARS 2000 Lang
Tool
Bar

{{#ifeq:0|1||title="assign" style="border-width:thick; border-color:blue; background-color:yellow;" |←

→ bgcolor=cyan title="assign" |← → }}

{{#ifeq:0|2||title="plus" style="border-width:thick; border-color:blue; background-color:yellow;" |+

- × ÷ * ⍟ ⌹ ○ ! ? √ bgcolor=cyan title="plus" |+ - × ÷ * ⍟ ⌹ ○ ! ? √ }}

{{#ifeq:0|3||title="mod" style="border-width:thick; border-color:blue; background-color:yellow;" ||

⌈ ⌊ ⊥ ⊤ ⊣ ⊢
⌈ ⌊ ⊥ ⊤ ⊣ ⊢
≢ < ≤ = ≥ > ≠ bgcolor=cyan title="match" |≡ ≢ < ≤ = ≥ > ≠ }}

{{#ifeq:0|5||title="down caret" style="border-width:thick; border-color:blue; background-color:yellow;" |∨

∧ ⍱ ⍲ bgcolor=cyan title="down caret" |∨ ∧ ⍱ ⍲ }}

{{#ifeq:0|6||title="take" style="border-width:thick; border-color:blue; background-color:yellow;" |↑

↓ ⊂ ⊃ ⌷ ⍋ ⍒
↓ ⊂ ⊃ ⌷ ⍋ ⍒
∊ ⍸ ⍷ ∪ ∩ ⊆ ⊇ ~ § π .. bgcolor=cyan title="iota" |⍳ ∊ ⍸ ⍷ ∪ ∩ ⊆ ⊇ ~ § π .. }}

{{#ifeq:0|8||title="comma" style="border-width:thick; border-color:blue; background-color:yellow;" |,

⍪ ⍴ ⌽ ⊖ ⍉
⍪ ⍴ ⌽ ⊖ ⍉
\ ⌿ ⍀ ⊙ ¨ ⍨ ⍤ ⍡ ⍥ ⍦ . ∘ ⍠ ‼ ⌻ ∂ ∫ bgcolor=cyan title="slash" |/ \ ⌿ ⍀ ⊙ ¨ ⍨ ⍤ ⍣ ⍡ ⍥ ⍦ . ∘ ⍠ ‼ ⌻ ∂ ∫ }}

{{#ifeq:0|10||title="quotequad" style="border-width:thick; border-color:blue; background-color:yellow;" |⍞

⎕ ⍎ ⍕
⎕ ⍎ ⍕
⍝ ∇ ∆ ⍙ _ ⍺ ⍵ bgcolor=cyan title="diamond" |⋄ ⍝ ∇ ∆ ⍙ _ ⍺ ⍵ }}

{{#ifeq:0|12||title="neg" style="border-width:thick; border-color:blue; background-color:yellow;" |¯

⍬ ∞ title="neg" |¯ ⍬ ∞ ∅
colspan=8 |Second Row i j k a b e g p r v x z colspan=8 |Second Row i j k a b e g p r v x z colspan=8 |Second Row i j k a b e g p r v x z colspan=6 |Second Row i j k i j k l g p r v x

}}

{{#ifeq:0|0| |}}