SAX: Difference between revisions

From APL Wiki
Jump to navigation Jump to search
Miraheze>Adám Brudzewsky
mNo edit summary
No edit summary
(13 intermediate revisions by 3 users not shown)
Line 1: Line 1:
{{Infobox array language
{{Infobox array language
| logo                    = [[File:Sharp APL logo.png]]
| array model              = [[Flat array model|flat]] with [[Box|boxes]]
| array model              = [[Flat array model|flat]] with [[Box|boxes]]
| index origin            = 0 or 1
| index origin            = 0 or 1
| function styles          = [[defined functions]], some [[tacit]] capabilities
| function styles          = [[defined function]]s, some [[tacit]] capabilities
| numeric types            = 64-bit float
| numeric types            = 64-bit float
| unicode support          = none
| unicode support          = none
Line 10: Line 11:
| platforms                = S/390, x86
| platforms                = S/390, x86
| operating systems        = UNIX (AIX, Solaris), Linux
| operating systems        = UNIX (AIX, Solaris), Linux
| implementation language  = [[wikipedia:C (programming language)|C]]
| license                  = Free for personal use / Proprietary commercial software
| license                  = Free for personal use / Proprietary commercial software
| developer                = [[Soliton Associates]]
| developer                = [[Soliton Associates]]
| influenced by            = [[APL*PLUS]]
| influenced by            = [[SHARP APL]]
| influenced              = [[Dyalog APL]]
| influenced              = [[J]]
| documentation            = [http://twinkfed.homedns.org/UsrDoc/sax/SAX6_Doc.pdf PDF]
| documentation            = [https://abrudz.github.io/SAX2/SAX61.pdf PDF]
| file ext                = .sw, .sf
| file ext                = .sw, .sf
}}
}}
Line 110: Line 112:
| <source lang=apl inline>@</source> ||  || See [[#Miscellaneous|Miscellaneous]] || 0 ∞ || [[Squad Index|From]]
| <source lang=apl inline>@</source> ||  || See [[#Miscellaneous|Miscellaneous]] || 0 ∞ || [[Squad Index|From]]
|-
|-
| <source lang=apl inline>⍳</source> || 1 || [[Iota|Count]]                       || 1 0 || [[Index Of]]
| <source lang=apl inline>⍳</source> || 1 || [[Index Generator|Count]]           || 1 0 || [[Index Of]]
|-
|-
| <source lang=apl inline>⍸</source> ||  ||                                      || ∞ ∞ || [[Indices of Match|Index]]
| <source lang=apl inline>⍸</source> ||  ||                                      || ∞ ∞ || [[Indices of Match|Index]]
Line 217: Line 219:
|}
|}


== Implementation ==
{{APL dialects}}[[Category:APL dialects]][[Category:Flat array languages]][[Category:Leading axis languages]]
 
=== Numeric types ===
 
SHARP originally supported only real numbers using double (8-byte) precision. Numbers were stored in one of three types:
* Boolean, with one bit per value
* Integer, with four bytes per value
* Floating, with eight bytes per value
 
[https://www.jsoftware.com/papers/satn40.htm SATN-40] describes the addition of complex numbers to SHARP APL.
 
== External links ==
 
[[wikipedia:I._P._Sharp_Associates|Wikipedia]]
 
{{APL dialects}}

Revision as of 09:07, 24 May 2021

SAX (SHARP APL for UNIX) was a version of SHARP APL offered by Soliton Associates. Notable features of SAX include function rank, the Rank operator, and leading axis theory, as well as relative comparison tolerance and close composition operators including Under.

Primitive functions

Arithmetic

Scalar

All scalar functions have rank zero.

Glyph Monadic Dyadic
+ Conjugate/Identity Addition
- Negate Subtraction
× Signum Multiplication
÷ Reciprocal Division
* Exponential Power
Natural Logarithm Base-⍺ Logarithm
| Magnitude Residue
! Factorial Out-Of/Combinations
Floor Minimum
Ceiling Maximum
Pi Times Circle functions
And/Least Common Multiple (LCM)
Or/Greatest Common Divisor (GCD)
Nand
Nor
~ Not See Miscellaneous
? Roll See Non-scalar

Non-scalar

Glyph Rank Monadic Ranks Dyadic
2 Matrix inverse ∞ 2 Matrix divide
? See Scalar * * Deal
∞ ∞ Encode
∞ ∞ Decode

Relational

Glyph Rank Monadic Ranks Dyadic
= See Miscellaneous 0 0 Equals
See Miscellaneous 0 0 Not Equals
< See Structural 0 0 Less Than
0 0 Less Than or Equal
0 0 Greater Than or Equal
> See Structural 0 0 Greater Than
∞ ∞ Match
0 ∞ Membership
∞ ∞ Find

Indexing

Glyph Rank Monadic Ranks Dyadic
@ See Miscellaneous 0 ∞ From
1 Count 1 0 Index Of
∞ ∞ Index
Numeric Grade up ∞ ∞ Character Grade up
Numeric Grade down ∞ ∞ Character Grade down

Structural

Glyph Rank Monadic Ranks Dyadic
Shape of 1 ∞ Reshape
See Miscellaneous 1 ∞ Take
Raze 1 ∞ Drop
< Enclose/Box See Relational
Conditional Enclose ∞ ∞ Link
> 0 Disclose/Open See Relational
, Ravel ∞ ∞ Catenate
Table ∞ ∞ Catenate-Down
1 Reverse 0 1 Rotate
Reverse-Down ∞ ∞ Rotate-Down
Monadic Transpose 0 ∞ Dyadic Transpose

Miscellaneous

Glyph Rank Monadic Ranks Dyadic
Stop ∞ ∞ Left
Pass ∞ ∞ Right
Nubsieve See Relational
Nub See Structural
= Nubin See Relational
~ See Scalar ∞ ∞ Less
@ 1 All See Indexing
Monadic Format * ∞ Dyadic Format
* Execute

Primitive Operators

Glyph Operands Ranks Monadic Call Dyadic Call
/ f Reduce
f Reduce-down
\ f Scan
f Scan-down
/ m Copy/Compress
m Copy-down/Compress-down
\ m Expand
m Expand-down
f rf lf Swap
& f ∞ ∞ Select
f g mg mg mg On (close Over)
f n n n n Rank
m g mg mg mg Cut
f g mg mg mg Upon (close Atop)
¨ f g mg mg mg Under
¨ m g mg With (Bind)
¨ f n mf
. f g 2 ∞ ∞ Alternant Inner-product
. m g ∞ ∞ Tie, Outer-product
. f m mf Ply


APL dialects [edit]
Maintained APL+WinAPL2APL64APL\ivApletteAprilCo-dfnsDyalog APLDyalog APL Visiondzaima/APLGNU APLKapNARS2000Pometo
Historical A Programming LanguageA+ (A) ∙ APL#APL2CAPL\360APL/700APL\1130APL\3000APL.68000APL*PLUSAPL.jlAPL.SVAPLXExtended Dyalog APLIverson notationIVSYS/7090NARSngn/aplopenAPLOperators and FunctionsPATRowanSAXSHARP APLRationalized APLVisualAPL (APLNext) ∙ VS APLYork APL
Derivatives AHPLBQNCoSyELIGleeIIvyJJellyK (Goal, Klong, Q) ∙ KamilaLispLang5LilNialRADUiua
Overviews Comparison of APL dialectsTimeline of array languagesTimeline of influential array languagesFamily tree of array languages