# Vocabulary/star

 * y Signum

Rank 0 -- operates on individual atoms of y, producing a result of the same shape -- WHY IS THIS IMPORTANT?

The sign of the number y

 Condition Result of *y y>0 1 y=0 0 y<0 _1

### Common uses

Locate negative elements in an array for special treatment

```   ] z=: 10 - ?6 6 \$ 20
7 _6  5  7 10 _7
_5  2  1  6  6  0
_3 _8 _1  6 _1 _9
3 _2  5  3  3 _7
_1 _5  5 _8 _3  0
_1 _4  6  9 _6 _4

*z
1 _1  1  1  1 _1
_1  1  1  1  1  0
_1 _1 _1  1 _1 _1
1 _1  1  1  1 _1
_1 _1  1 _1 _1  0
_1 _1  1  1 _1 _1
```

### Related Primitives

Real/Imag (+. y), Length/Angle (*. y), Magnitude (| y), Imaginary * Complex (j.), Circle Functions (x o. y), Angle * Polar (r.)

### Details

1. * y uses tolerant comparison; use *!.0 for intolerant comparison. The tolerance for * is absolute: any number whose magnitude is less than the tolerance is considered to equal 0.

```   1e_30 = 0   NB. not zero by relative tolerance
0
* 1e_30   NB. zero by absolute tolerance
0
```

2. If y is complex, values that are not tolerantly equal to 0 produce (y % | y), which is a point on the unit circle on the line going from the origin to y (similar to a normalized or unit vector).

```   * -3j4
_0.6j_0.8
-3r5j4r5
_0.6j_0.8
| * -3j4
1
```

 x * y Times

Rank 0 0 -- operates on individual atoms of x and y, producing a result of the same shape -- WHY IS THIS IMPORTANT?

The product of two numeric nouns, x and y

```   5 * 7
35

z */ z=. >: i.10	NB. multiplication table
1  2  3  4  5  6  7  8  9  10
2  4  6  8 10 12 14 16 18  20
3  6  9 12 15 18 21 24 27  30
4  8 12 16 20 24 28 32 36  40
5 10 15 20 25 30 35 40 45  50
6 12 18 24 30 36 42 48 54  60
7 14 21 28 35 42 49 56 63  70
8 16 24 32 40 48 56 64 72  80
9 18 27 36 45 54 63 72 81  90
10 20 30 40 50 60 70 80 90 100
```

### Common uses

1. Multiply two numbers

```   100 * 0 1 2
0 100 200
```

2. Multiply the numbers in a given list

```   */2 3 4
24
```

### Details

1. Any number multiplied by 0, even the infinities _ and __, produces 0.
The result has positive sign. This does not conform to IEEE-754, which mandates that the zero result have the proper sign and that multiplying by an infinity raise an error.

### Use These Combinations

Combinations using x * y that have exceptionally good performance include:

 What it does Type; Precisions; Ranks Syntax Variants; Restrictions Benefits; Bug Warnings Boolean reductions on partitions Boolean x +//. y = <. >. +. * *. ~: in place of + avoids building argument cells Polynomial Multiplication x +//.@(*/) y avoids building argument cells Odometer function (y gives the size of each wheel; result is all readings from 0 0 0 0 to y) integer (#: i.@(*/)) y @: in place of @