-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathTODO
46 lines (34 loc) · 1.83 KB
/
TODO
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
IMPORTANT:
- Remember to add the default values of Gsom.Phase.Phase and predefined
kernel functions.
general:
- remember to check out
http://cdsmith.wordpress.com/2007/05/27/snapshotting-a-neat-problem-and-solution-in-haskell/
could be helpfull
node.hs;
- try to express the type Node rather as type Maybe Node because otherwise
I'm just constantly reinventing the Maybe wheel with Leaf as Nothing.
On the other hand the better way would probably be to change the neighbour
representation to an association list having an (Int, TVar Node) pair as
entries where each pair (i, n) means that n is the neigbour in direction
i and where a missing entry for an index i means that there is no
neighbour in direction i. This may get rid of Leafs alltogether.
- Change the interface of Gsom.Node. Restrict creation of nodes so that
every newly created node is wrapped in a TVar.
- Refactor Gsom.Node.update to have a simpler type signature. Right now
it's just ridiculous.
tests.hs:
- add test to check whether normlize acts as id on inputs which are already
between 0 and 1 and which have active bounds
(NOTE: this is different from normlize/idempotent)
- add tests for distance and bmu
- add a test case to catch the bug in Gsom.Lattice.new. The bug was, that
all new nodes where initialized with their own TVars but they should've
been initialized with neihgbouring TVars shared.
- refactor the clunky normalize_unnormalize_id test.
- add test that the node given as an argument to neighbourhood is actually
an element of the returned neighbourhood.
- add test that checks whether neighbourhood actually calculates the
correct neighbourhood to prevent the duplicating old nodes bug.
(looks like neighbourhood really should have a few tests)
- add test for Gsom.Node.newWeight.