Dan Baronet: Difference between revisions

From APL Wiki
Jump to navigation Jump to search
mNo edit summary
m (Text replacement - "</source>" to "</syntaxhighlight>")
Line 6: Line 6:
== The "Dan Baronet special" ==
== The "Dan Baronet special" ==


Baronet was famous for innovative uses of APL primitives. He's credited with discovering that <source lang=APL inline>b⊥b</source> or, as he preferred writing it, <source lang=APL inline>⊥⍨b</source>, counts the number of trailing ones in the Boolean vector <source lang=APL inline>b</source>:<ref>Roger Hui. [http://danielbaronet.rip/ Tribute to Daniel Baronet]. DanielBaronet.RIP</ref>
Baronet was famous for innovative uses of APL primitives. He's credited with discovering that <source lang=APL inline>b⊥b</syntaxhighlight> or, as he preferred writing it, <source lang=APL inline>⊥⍨b</syntaxhighlight>, counts the number of trailing ones in the Boolean vector <source lang=APL inline>b</syntaxhighlight>:<ref>Roger Hui. [http://danielbaronet.rip/ Tribute to Daniel Baronet]. DanielBaronet.RIP</ref>


<source lang=apl inline>⊥</source> ([[Decode]]) performs base conversion. If the left argument is a vector, it performs ''mixed'' base conversion.
<source lang=apl inline>⊥</syntaxhighlight> ([[Decode]]) performs base conversion. If the left argument is a vector, it performs ''mixed'' base conversion.


For a base vector <math>b = b_n,\cdots,b_0</math> and a digit vector <math>a = a_n,\cdots, a_0</math>, <source lang=apl inline>b ⊥ a</source> converts <math>a</math> to the mixed base <math>b</math>, i.e., it computes <math>b_0\cdots b_{n-1}a_n + \cdots + b_0b_1a_2 + b_0a_1 + a_0</math>.
For a base vector <math>b = b_n,\cdots,b_0</math> and a digit vector <math>a = a_n,\cdots, a_0</math>, <source lang=apl inline>b ⊥ a</syntaxhighlight> converts <math>a</math> to the mixed base <math>b</math>, i.e., it computes <math>b_0\cdots b_{n-1}a_n + \cdots + b_0b_1a_2 + b_0a_1 + a_0</math>.


Now, in a monadic context, <source lang=apl inline>⍨</source> ([[Commute]]) causes the function to the left to be called with equal left and right arguments.
Now, in a monadic context, <source lang=apl inline>⍨</syntaxhighlight> ([[Commute]]) causes the function to the left to be called with equal left and right arguments.


So <source lang=apl inline>⊥⍨b</source> is defined as <source lang=apl inline>b⊥b</source>, which computes <math>a_0\cdots a_n + \cdots + a_0a_1a_2 + a_0a_1 + a_0</math>, the sum of all cumulative products from the right to the left.
So <source lang=apl inline>⊥⍨b</syntaxhighlight> is defined as <source lang=apl inline>b⊥b</syntaxhighlight>, which computes <math>a_0\cdots a_n + \cdots + a_0a_1a_2 + a_0a_1 + a_0</math>, the sum of all cumulative products from the right to the left.


For <source lang=apl inline>k</source> trailing ones, the <source lang=apl inline>k</source> rightmost products are <source lang=apl inline>1</source> and all others are <source lang=apl inline>0</source>, so their sum is equal to <source lang=apl inline>k</source>.<ref>Stack User "Dennis". [https://codegolf.stackexchange.com/a/98764 Answer] in [[Dyalog APL]] to [[Adám Brudzewsky]]'s [[code golf]] challenge. Code Golf and Coding Challenges Stack Exchange.</ref>
For <source lang=apl inline>k</syntaxhighlight> trailing ones, the <source lang=apl inline>k</syntaxhighlight> rightmost products are <source lang=apl inline>1</syntaxhighlight> and all others are <source lang=apl inline>0</syntaxhighlight>, so their sum is equal to <source lang=apl inline>k</syntaxhighlight>.<ref>Stack User "Dennis". [https://codegolf.stackexchange.com/a/98764 Answer] in [[Dyalog APL]] to [[Adám Brudzewsky]]'s [[code golf]] challenge. Code Golf and Coding Challenges Stack Exchange.</ref>


== Publications ==
== Publications ==

Revision as of 21:23, 10 September 2022

Daniel Baronet (far left) at IPSA50 reunion

Daniel Baronet (6 May 1956–1 Nov 2016), also known as APLtrainer, was an APL (and later J) programmer since 1976, working for I.P. Sharp Associates in Melbourne, Toronto, Montreal, and Copenhagen, from 1983 to 1988, and for Dyalog Ltd from 2006 until his death.

Baronet was responsible for Dyalog's Simple APL Library Toolkit (SALT) and its framework for user commands (affectionately known as spice), but also worked on many other APL tools through his company Milinta Inc, specialising in the development of free open-source tools to transfer of APL code between dialects.[1] He was a prolific writer and presented at many events.

The "Dan Baronet special"

Baronet was famous for innovative uses of APL primitives. He's credited with discovering that <source lang=APL inline>b⊥b</syntaxhighlight> or, as he preferred writing it, <source lang=APL inline>⊥⍨b</syntaxhighlight>, counts the number of trailing ones in the Boolean vector <source lang=APL inline>b</syntaxhighlight>:[2]

<source lang=apl inline>⊥</syntaxhighlight> (Decode) performs base conversion. If the left argument is a vector, it performs mixed base conversion.

For a base vector and a digit vector , <source lang=apl inline>b ⊥ a</syntaxhighlight> converts to the mixed base , i.e., it computes .

Now, in a monadic context, <source lang=apl inline>⍨</syntaxhighlight> (Commute) causes the function to the left to be called with equal left and right arguments.

So <source lang=apl inline>⊥⍨b</syntaxhighlight> is defined as <source lang=apl inline>b⊥b</syntaxhighlight>, which computes , the sum of all cumulative products from the right to the left.

For <source lang=apl inline>k</syntaxhighlight> trailing ones, the <source lang=apl inline>k</syntaxhighlight> rightmost products are <source lang=apl inline>1</syntaxhighlight> and all others are <source lang=apl inline>0</syntaxhighlight>, so their sum is equal to <source lang=apl inline>k</syntaxhighlight>.[3]

Publications

APL conferences

Dyalog user meetings

References

  1. Rick Procter. Obituary for Daniel Baronet. APL Borealis.
  2. Roger Hui. Tribute to Daniel Baronet. DanielBaronet.RIP
  3. Stack User "Dennis". Answer in Dyalog APL to Adám Brudzewsky's code golf challenge. Code Golf and Coding Challenges Stack Exchange.
APL community [edit]
Activities ConferencesUser groups and meetupsIverson AwardExercises
Chat rooms and forums APL FarmAPL OrchardAPL Wiki
People Phil AbramsBrian BeckerBob BerneckyLarry BreedCharles BrennerJim BrownAdám BrudzewskyGitte ChristensenPeter DonnellyJohn EarnestAdin FalkoffGarth FosterLib GibsonAaron HsuRoger HuiKen IversonMorten KrombergDick LathwellMarshall LochbaumEugene McDonnellRoger MooreTrenchard MoreAlan PerlisRaghu RanganathanHenry RichAl RoseJohn ScholesIan SharpBob SmithGeoff StreeterJoey TuttleArthur Whitney
Other APL TrustAPL Quote QuadBlogsBooksCase studiesFamous APL usersHumourJobsMerchandisePapersPodcastsTryAPLTry It OnlineVideo channels