### sequence function: normed-frequency-class

```    description:
normed-frequency-class(e, X)
implement the normed frequency class equation
where: e is a ket, X is a superposition, and the result is in [0,1]
1 for exact match, 0 for not in set, values in between otherwise

if all coeffs in X are equal, it gives 1 for membership, and 0 for non-membership
if the coeffs are not all equal, then it has fuzzier properties

this function is the back-end to the map-to-topic function
and works particularly well when X is a frequency list

the algorithm:
drop all elements <= 0 from X
smallest = the min coeff in X
largest = the max coeff in X
f = the value of e.label in X

if largest <= 0 or f <= 0:
return 0
fc_max = math.floor(0.5 - math.log(smallest / largest, 2)) + 1
return 1 - math.floor(0.5 - math.log(f / largest, 2)) / fc_max

examples:
-- all coeffs in X equal:
-- b is a member of |a> + |b> + |c> + |d> + |e>
normed-frequency-class(|b>, |a> + |b> + |c> + |d> + |e>)
|number: 1.0>

-- all coeffs in X equal:
-- c is a member of 7.2 |a> + 7.2 |b> + 7.2 |c> + 7.2 |d>
normed-frequency-class(|c>, 7.2 |a> + 7.2 |b> + 7.2 |c> + 7.2 |d>)
|number: 1.0>

-- e is not a member of |a> + |b> + |c>
normed-frequency-class(|e>, |a> + |b> + |c>)
|number: 0>

-- a "not all coeffs equal" example:
-- consider:
smooth[0.5]^5 |10>
0.001|7.5> + 0.01|8> + 0.044|8.5> + 0.117|9> + 0.205|9.5> + 0.246|10> + 0.205|10.5> + 0.117|11> + 0.044|11.5> + 0.01|12> + 0.001|12.5>

-- this has this shape:
bar-chart[40] smooth[0.5]^5 |10>
----------
7.5  :
8    : |
8.5  : |||||||
9    : |||||||||||||||||||
9.5  : |||||||||||||||||||||||||||||||||
10   : ||||||||||||||||||||||||||||||||||||||||
10.5 : |||||||||||||||||||||||||||||||||
11   : |||||||||||||||||||
11.5 : |||||||
12   : |
12.5 :
----------

-- now see the results:
fc |*> #=> round[3] frequency-class(|_self>, smooth[0.5]^5 |10>)
nfc |*> #=> round[3] normed-frequency-class(|_self>, smooth[0.5]^5 |10>)
table[number, fc, nfc] range(|6>, |14>, |0.5>)
+--------+----+-------+
| number | fc | nfc   |
+--------+----+-------+
| 6      | 9  | 0     |
| 6.5    | 9  | 0     |
| 7      | 9  | 0     |
| 7.5    | 8  | 0.111 |
| 8      | 5  | 0.444 |
| 8.5    | 2  | 0.778 |
| 9      | 1  | 0.889 |
| 9.5    | 0  | 1.0   |
| 10     | 0  | 1.0   |
| 10.5   | 0  | 1.0   |
| 11     | 1  | 0.889 |
| 11.5   | 2  | 0.778 |
| 12     | 5  | 0.444 |
| 12.5   | 8  | 0.111 |
| 13     | 9  | 0     |
| 13.5   | 9  | 0     |
| 14     | 9  | 0     |
+--------+----+-------+