+-×÷*⍟⌹○
Contents
+-×÷*⍟⌹○#
Arithmetic +-×÷#
Dyadic +-×÷ are what you expect from mathematics:
3+8
4×12
144×11
3-7
11
48
1584
¯4
0÷0 is 1 by default, but you can make all n÷0 into 0 by setting ⎕DIV←1:
0÷0
1
⎕DIV←1
0÷0
⎕DIV←0 ⍝ default setting
0
Reciprocal ÷A#
Question:
How can we make 0÷0 throw an error?
Multiply with the reciprocal:
0×÷0 ⍝ DOMAIN ERROR: Divide by zero
DOMAIN ERROR: Divide by zero
0×÷0 ⍝ DOMAIN ERROR: Divide by zero
∧
Monadic ÷ is the reciprocal, i.e. ÷x is 1÷x.
Direction ×A#
Monadic × is direction, i.e. a complex number which has magnitude 1 but same angle as the argument. For real numbers this means signum (sign).
÷5 ⍝ reciprocal: 1÷5
×12 ¯33 0 ⍝ signum
×32j¯24 ⍝ direction
0.2
1 ¯1 0
0.8J¯0.6
Power *#
Dyadic * is power, and the default left argument (i.e. for the monadic form) is e. So, monadic * is e-to-the-power-of.
2*10 ⍝ ⍺ to the power of ⍵
*1 ⍝ e to the power of ⍵
1024
2.718281828
Log ⍟#
The inverse of * is ⍟; logarithm. The monadic form is the natural logarithm and the dyadic is left-arg logarithm, so 10⍟n is log(n):
10⍟10000000 ⍝ log(10000000)
7
Matrix divide ⌹#
⌹ is matrix division. Give it a coefficients’ matrix on the right and it will invert the matrix. If you also put a vector on the left and it will solve your system of equations. If over-determined, it will give you the least squares fit.
For example, in order to solve the following set of simultaneous equations,
\(\begin{array}{lcl} 3x + 2y & = & 13 \\ x - y & = & 1 \end{array}\)
we can use ⌹ like so:
13 1 ⌹ 2 2⍴3 2 1 ¯1
3 2
Circular ○#
Monadic ○ multiplies by π:
○2 ⍝ 2 times π
6.283185307
Dyadic ○ is circular. It uses an integer left argument to select which trigonometric function to apply. The most common ones are 1, 2 and 3, which are sin, cos and tan. The negative versions ¯1, ¯2 and ¯3 are arcsin, arccos and arctan.
1○○1 ⍝ sin π
2○○1 ⍝ cos π
¯2○2○○1 ⍝ arccos cos π
1.224646799E¯16
¯1
3.141592654
The entire list of ○’s left arguments is here.