128!: Miscellaneous

>> << Ndx Usr Pri Phr Dic Rel Voc !: wd Help Dictionary

Miscellaneous | 128!:

`128!:0 y` | QR. Produces the QR decomposition of a complex matrix`y` (in the domain of matrix inverse`%.`),`` an Hermitian matrix and a square upper triangular matrix, individually boxed.
       x=: +/ . *                  NB. Matrix product
       A=: j./?. 2 7 4$10          NB. A random complex matrix
       $A
    7 4
       'Q R'=: 128!:0 A
       $Q
    7 4
       $R
    4 4
       >./|,(=i.4) - (+|:Q) x Q    NB. Q is Hermitian
    2.70972e_16
       0~:R                        NB. R is upper triangular
    1 1 1 1
    0 1 1 1
    0 0 1 1
    0 0 0 1
       A -: Q x R
    1
`128!:1 y` | R Inv. Invert square upper triangular matrix.
`x 128!:2 y` | Apply.`x 128!:2 y` applies the verb in string`x` to`y` .`` For example:
       '+/' 128!:2 i.2 5
    5 7 9 11 13
       '+/' 128!:2"1 i.2 5
    10 35
       '+/"1' 128!:2 i.2 5
    10 35
       ('+/';'|.';'|."1') 128!:2&.><i.2 5
    +-----------+---------+---------+
    |5 7 9 11 13|5 6 7 8 9|4 3 2 1 0|
    |           |0 1 2 3 4|9 8 7 6 5|
    +-----------+---------+---------+

       '2 3' 128!:2 i.2 5
    |syntax error
    |   '2 3'    128!:2 i.2 5

       '@' 128!:2 i.2 5
    |syntax error
    |   '@'    128!:2 i.2 5
The ranks of`128!:2` are`1 _` ,`` that is, apply the lists in the left argument to the right argument in toto.
`[x] 128!:3 y` | CRC. A CRC polynomial is a boolean list or an integer. The following CRC polynomials`p` and`q` are equivalent:
       p=: 1 1 1 0  1 1 0 1  1 0 1 1  1 0 0 0  1 0 0 0  0 0 1 1  0 0 1 0  0 0 0 0
       q=: _306674912

       _8]\p
    1 1 1 0 1 1 0 1
    1 0 1 1 1 0 0 0
    1 0 0 0 0 0 1 1
    0 0 1 0 0 0 0 0

       q -: (_2 _2,30$2) #. p
    1
       p -: (32$2) #: q
    1
`x 128!:3 y` computes the CRC encoding of string`y` according to`x` ,`` which may be`p` or`p;i` ,`` where`p` is a CRC polynomial and`i` is the initial CRC value. If`i` is elided then`_1` is used.`128!:3 y` is equivalent to`_306674912 (128!:3) y` . The monad`x&(128!:3)` is supported by special code which pre-computes a look-up table of CRC values for each byte. Examples:
       f=: 128!:3
       f '123456789'
    _873187034
       f 'assiduously avoid any and all asinine alliterations'
    1439575093

>> << Ndx Usr Pri Phr Dic Rel Voc !: wd Help Dictionary