11A. Inverse
J provides a comprehensive calculus of inverses:
a0=: I=: ^:_1 |
Inverse (adverb) |
m1 =: ^ I |
Natural log (^.); Inverse exponential |
m2 =: ^.I |
Exponential |
m3 =: 10&^. |
Base 10 log |
m4 =: m3 I |
Inverse base 10 log (10&^) |
m5 =: ] -: m4@m3 |
Tautology (test that m4 is left inverse) |
m6 =: ] -: m3@m4 |
Tautology (test that m4 is right inverse) |
m7 =: ssc=: +/\ |
Sum scan (subtotals) |
m8 =: ssc I |
Inverse sum scan; first differences |
m9 =: (]-:m8@m7)*.(]-:m7@m8) |
Tautology |
m10=: assc=: -/\ |
Alternating sum scan |
m11=: assc I |
|
m12=: ] -: |
|
m13=: * /\ I |
e.g. * /\ m13 3 1 4 15 9 26 5 3 |
m14=: % /\ I |
e.g. % /\ m14 3 1 4 15 9 26 5 3 |
m15=: ~:/\ I |
e.g. ~:/\ m15 1 1 0 1 1 0 1 1 |
m16=: = /\ I |
e.g. = /\ m16 1 1 0 1 1 0 1 1 |
m17=: + /\. I |
e.g. + /\. m17 3 1 4 15 9 26 5 3 |
m18=: - /\. I |
e.g. - /\. m18 3 1 4 15 9 26 5 3 |
m19=: * /\. I |
e.g. * /\. m19 3 1 4 15 9 26 5 3 |
m20=: % /\. I |
e.g. % /\. m20 3 1 4 15 9 26 5 3 |
m21=: ~:/\. I |
e.g. ~:/\. m21 1 1 0 1 1 0 1 1 |
m22=: = /\. I |
e.g. =/\. m22 1 1 0 1 1 0 1 1 |
d23=: # I |
Expand; 'ab' -: 1 0 1 # 1 0 1 d23 'ab' |
m24=: p: I |
p (n) the number of primes less than n |
m25=: x: I |
Floating point approx. of a rational. e.g. m25 3r7 |
m26=: 1&+ I |
Inverse increment; decrement |
m27=: +&1 I |
Inverse increment; decrement |
m28=: >: I |
Inverse increment; decrement |
m29=: _1&+ I |
Inverse decrement; increment |
m30=: +&_1 I |
Inverse decrement; increment |
m31=: -&1 I |
Inverse decrement; increment |
m32=: <: I |
Inverse decrement; increment |
m33=: 2&* I |
Inverse double; halve |
m34=: *&2 I |
Inverse double; halve |
m35=: +: I |
Inverse double; halve |
m36=: 0.5&* I |
Inverse halve; double |
m37=: *&0.5 I |
Inverse halve; double |
m38=: %&2 I |
Inverse halve; double |
m39=: -: I |
Inverse halve; double |
m40=: ^&2 I |
Inverse square |
m41=: ^&3 I |
Inverse cube |
m42=: ^&0.5 I |
Inverse square root |
m43=: ^&1r3 I |
Inverse cube root |
m44=: 2&^ I |
Inverse 2 with power; base 2 log |
m45=: 10&^ I |
Inverse 10 with power; base 10 log |
m46=: 2&! I |
Inverse triangular number. e.g. +/i.<.2&! I m |
m47=: +~ I |
Inverse double |
m48=: *~ I |
Inverse square |
m49=: ^~ I |
e.g. x^x=: ^~ I 12 |
m50=: (3&+)@(%&2)I -: (%&2 I)@(3&+ I) |
Inverse of composition is composition of inverses |
These inverses may be illustrated as follows:
x=: 2 3 5 7 ,.(] ; m1 ; m2 ; m1@m2) x +---------------------------------+ ¦2 3 5 7 ¦ +---------------------------------¦ ¦0.6931472 1.09861 1.60944 1.94591¦ +---------------------------------¦ ¦7.38906 20.0855 148.413 1096.63 ¦ +---------------------------------¦ ¦2 3 5 7 ¦ +---------------------------------+ (] ; m7 ; m8 ; m9) x +---------------------------+ ¦2 3 5 7¦2 5 10 17¦2 1 2 2¦1¦ +---------------------------+ (];m10;m11;m11@m10) x +-----------------------------------+ ¦2 3 5 7¦2 _1 4 _3¦2 _1 2 _2¦2 3 5 7¦ +-----------------------------------+
