MACfns v4.0 Update
Updated Functions
The base ∆CPULEVEL for MACfns remains at 2 or 3 (a 486). While
some functions remain at level 0 or 1 (and therefore work on a
386), the majority exploit features of, and require, more
advanced processors.
This release contains ∆DTBLENS, which is the basis for the
results of ∆MATDS, ∆MATNV, ∆MATSS, and ∆RJUST, and replaces
NBLENGTH from the 'ASMFNS' workspace. ∆ROWIOTA replaces ROWFIND
from the 'ASMFNS' workspace; it works on numeric as well as
character matrices, and is about 1.5-2.5 times faster.
New capability L ∆ROWFIND R flags rows of character array L which
contain text R anywhere in the row; it is typically 20 times
faster than ∨/R⍷L, and is also faster for the special cases of
L^.=R and ∨/L=R.
∆DATEBASE and ∆DATEREP replace DATEBASE and DATEREP from the
'DATES' workspace, but have several advantages, including
being typically 30 times faster and returning smaller results.
∆DATE2BAS and ∆DATE2REP are variants for small arguments.
∆DATEPACK and ∆DATEUNP facilitate packing, unpacking, and
repacking of YYYY MM DD dates to and from integers in a variety
of readable formats.
Improved Documentation
General documentation has been improved with the addition of a
GLOSSARY, a summary of INVERSES, the PAPER06 from the 2006 APL
User Conference, and additions to ASMFNS.
Sped up Functions
Many functions have slight speedups, with ∆COERCE, ∆DECH, ∆INCH,
∆NOT, and ∆SIGN being up to 20% faster on fpt arguments.
New Functions
Here are the new functions:
∆DATEBASE Compute days since 1Jan1900 from YYYY MM DD dates.
∆DATEPACK Pack YYYY MM DD dates as scalars {per L={0-5}}.
∆DATEREP Compute YYYY MM DD dates from days since 1Jan1900.
∆DATEUNP Unpack scalars as YYYY MM DD dates {per L={0-5{,cuspyear}}}.
∆DATE2BAS Compute days since 1Jan1900 from two YYYY MM DD dates.
∆DATE2REP Compute YYYY MM DD dates from two days since 1Jan1900.
∆DTBLENS Length of rows sans trailing blanks: +/∨\' '≠⌽R
∆ROWFIND Flag rows of character L containing vector R: ∨/R⍷1/L
∆ROWIOTA Locate rows of R in matrix L; ⎕IO-1 if not found ⍝ ⎕CT=0
Bug Fixes
∆HDIV was fixed to correct a small Boolean inaccuracy, and
aCRC1 was fixed to a bug in setting ⎕IO.