SOM implementation in c