Leading-Axis Theory in APL

slide1 n.w
1 / 50
Embed
Share

Explore the concept of leading-axis theory in APL language, including practical examples and explanations. Learn about cells, ranks, subarrays, and elements in 3D arrays, along with understanding various problems related to rank operators. Dive into the world of APL programming with insightful visuals and reference links.

  • APL programming
  • Leading-axis theory
  • Ranks
  • Cells
  • Subarrays

Uploaded on | 0 Views


Download Presentation

Please find below an Image/Link to download the presentation.

The content on the website is provided AS IS for your information and personal use only. It may not be sold, licensed, or shared on other websites without obtaining consent from the author. If you encounter any issues during the download, it is possible that the publisher has removed the file from their server.

You are allowed to download the files provided on this website for personal or commercial use, subject to the condition that they are used lawfully. All files are the property of their respective owners.

The content on the website is provided AS IS for your information and personal use only. It may not be sold, licensed, or shared on other websites without obtaining consent from the author.

E N D

Presentation Transcript


  1. 1 The Rank Operator Richard Park

  2. 2 The Problem 1 10 100 1 2 3 1 10 100 4 5 6 1 20 300 4 50 600 1 10 100 2 3 6 RANK ERROR: Mismatched left and right argument ranks 1 10 100 2 3 6

  3. 3 The Problem 1 10 100 1 2 3 1 10 100 4 5 6 1 20 300 4 50 600 1 10 100 ( on vectors) 2 3 6 1 20 300 4 50 600

  4. 4 The Problem 1 10 100 1 2 3 1 10 100 4 5 6 1 20 300 4 50 600 1 10 100 ( 1 ) 2 3 6 1 20 300 4 50 600

  5. 5 Modern APL leading-axis theory dfns trains youtu.be/Enlh5qwwDuY

  6. 6 Cells & Rank aplwiki.com/wiki/cell 2 3 4 A ABCD EFGH IJKL MNOP QRST UVWX 1 2 3 4 A ABCD EFGH IJKL A subarray which is formed by selecting a single index along some number of leading axes and the whole of each trailing axis.

  7. 7 Cells & Rank aplwiki.com/wiki/cell 2 3 4 A ABCD EFGH IJKL MNOP QRST UVWX 1 2 2 3 4 A EFGH A subarray which is formed by selecting a single index along some number of leading axes and the whole of each trailing axis.

  8. 8 Cells & Rank aplwiki.com/wiki/cell 2 3 4 A ABCD EFGH IJKL MNOP QRST UVWX 1 2 3 2 3 4 A G A subarray which is formed by selecting a single index along some number of leading axes and the whole of each trailing axis.

  9. 9 Cells vs Axis Model Dyalog Webinars: Selecting from Arrays dyalog.tv/Webinar/?v=AgYDvSF2FfU 12 minutes, 40 seconds

  10. 10 Cells, subarrays and elements 3D Array Major cell: Matrix A 2 3 4 A M N O P A B C D Q R S T E F G H U V W X I J K L

  11. 11 Cells, subarrays and elements 3D Array Major cell: Matrix A 2 3 4 A M N O P A B C D Q R S T E F G H U V W X I J K L

  12. 12 Cells, subarrays and elements 3D Array Major cell: Matrix 1-cell:Vector A 2 3 4 A M N O P A B C D Q R S T E F G H U V W X I J K L

  13. 13 Cells, subarrays and elements 3D Array Major cell: Matrix 1-cell:Vector 0-cell: Scalar A 2 3 4 A M N O P A B C D Q R S T E F G H U V W X I J K L

  14. 14 Hui, R.K. and Kromberg, M.J., 2020 APL Since 1978 Proceedings of the ACM on Programming Languages

  15. 15 Kenneth E. Iverson, 1978 Operators and Functions Research Report Number #RC7091

  16. 16 Conformable Arrays 0 , ( )

  17. 17 Conformable Arrays 1 , ( / )

  18. 18 Uniform Functions f n 2 3 0 m 4 5 0 n . m 2 3 4 5 g f , ( . ) (, /) , ,n 6 n 3 2

  19. 19 Monadic f k n 2 3 2 12 1 2 3 4 5 6 7 8 9 10 11 12 n 7 8 9 10 11 12 1 2 3 4 5 6

  20. 20 Monadic f k n 2 3 2 12 1 2 3 4 5 6 7 8 9 10 11 12 ( 2)n 5 6 3 4 1 2 11 12 9 10 7 8

  21. 21 Monadic f k n 2 3 2 12 1 2 3 4 5 6 7 8 9 10 11 12 ( 1)n 2 1 4 3 6 5 8 7 10 9 12 11

  22. 22 Monadic f k n 2 3 2 12 ( 1)n 1 2 3 4 5 6 7 8 9 10 11 12 (+ 1)n 3 7 11 15 19 23

  23. 23 Monadic f k (+/ 3)n 3 7 11 15 19 23 (+/ 2)n 3 7 11 15 19 23 (+/ 1)n 3 7 11 15 19 23

  24. 24 Monadic f k ( 1)n 2 1 4 3 6 5 8 7 10 9 12 11

  25. 25 Monadic f k ( 2)n 2 1 4 3 6 5 8 7 10 9 12 11

  26. 26 Monadic f k ( 3)n 2 1 4 3 6 5 8 7 10 9 12 11

  27. 27 Monadic f k { [ ]} {( ) } {(+/ ) } (+ )

  28. 28 Monadic f k { [ ]} {( ) } {(+/ ) } (+ ) +/[1] 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20

  29. 29 Benefits of Rank IO independent User defined functions

  30. 30 Dyadic f l r 1 10 100 1 2 3 1 20 300 1 10 100 2 3 6 RANK ERROR: Mismatched left and right argument ranks 1 10 100 2 3 6

  31. 31 Dyadic f l r 1 10 100 [2] 2 3 6 1 20 300 4 50 600 1 10 100 [2] 1 2 3 RANK ERROR: Invalid axis 1 10 100 [2]1 2 3

  32. 32 Dyadic f l r 1 10 100( 1 1)1 2 3 1 20 300 1 10 100( 1 1)2 3 6 1 20 300 4 50 600

  33. 33 Dyadic f l r 1 10 100( 1)1 2 3 1 20 300 1 10 100( 1)2 3 6 1 20 300 4 50 600

  34. 34 Dyadic f l r 1 10 100 1 2 3 1 20 300 1 10 100 3 2 6 RANK ERROR: Mismatched left and right argument ranks 1 10 100 3 2 6

  35. 35 Dyadic f l r 1 10 100 [1] 3 2 6 1 2 30 40 500 600 1 10 100 [1] 1 2 3 1 20 300 1 10 100 [1] 1 LENGTH ERROR: Invalid axis 1 10 100 [1]1

  36. 37 Dyadic f l r 1 10 100( 0 1)3 2 6 1 2 30 40 500 600 1 10 100( 0 1) 3 1 2 3 10 20 30 100 200 300 1 10 100( 0 1)3 3 30 300

  37. 38 Dyadic f l r 1 10 100 (, 0 1) 3 2 6 { } 1 1 2 10 3 4 100 5 6 1 10 100(+ 0 1)3 2 6 2 3 13 14 105 106

  38. 39 Dyadic f l r (scalars vectors matrices) 0 1 2 whole / 99 1 10 100(, scalars vectors)3 2 6 1 1 2 10 3 4 100 5 6

  39. 40 Dyadic f l r (scalars vectors matrices) 0 1 2 whole / 99 1 10 100(, scalars matrices)3 2 6 1 1 2 3 4 5 6 10 1 2 3 4 5 6 100 1 2 3 4 5 6

  40. 41 Dyadic f l r (scalars vectors matrices) 0 1 2 whole / 99 1 10 100(, scalars whole)3 2 6 1 1 2 3 4 5 6 10 1 2 3 4 5 6 100 1 2 3 4 5 6

  41. 42 Outer Product 1 2 3 . 1 2 3 4 1 0 0 0 0 1 0 0 0 0 1 0 1 2 3( 0 99)1 2 3 4 0 0 0

  42. 43 Outer Product 1 2 3 . 1 2 3 4 1 0 0 0 0 1 0 0 0 0 1 0 1 2 3(, 0 99)1 2 3 4 1 1 2 3 4 2 1 2 3 4 3 1 2 3 4

  43. 44 Outer Product 1 2 3 . 1 2 3 4 1 0 0 0 0 1 0 0 0 0 1 0 1 2 3(, 0 99)1 2 3 4 1 1 1 2 1 3 1 4 2 1 2 2 2 3 2 4 3 1 3 2 3 3 3 4

  44. 45 Outer Product 1 2 3 . 1 2 3 4 1 0 0 0 0 1 0 0 0 0 1 0 1 2 3( 0 99)1 2 3 4 1 0 0 0 0 1 0 0 0 0 1 0

  45. 46 Inner Product Dyalog 09: The Rank Operator Roger Hui _Dot_ { ( 1) 1 99 } https://dyalog.tv/Dyalog09/?v= ui76NE5cMWo (2 3 6) +_Dot_ 3 4 12 38 44 50 56 83 98 113 128 (2 3 6) +. 3 4 12 38 44 50 56 83 98 113 128

  46. 47 Ambivalent f m l r n 2 3 2 12 1 2 3 4 5 6 7 8 9 10 11 12

  47. 48 Ambivalent f m l r n 2 3 2 12 ( 3 1 2)n 7 8 9 10 11 12 1 2 3 4 5 6

  48. 49 Ambivalent f m l r n 2 3 2 12 1 2( 3 1 2)n 3 6 5 2 1 4 9 12 11 8 7 10

  49. 50 The Rank Operator Returns 3rd September 2020 Negative Rank k Multiple Rank j k Rank & Transpose k a

  50. 51 Next Webinar 6th August 2020 (15:00 UTC) Ad m presents Language Features of Dyalog version 18.0 in Depth (part 4)

More Related Content