source: cpp/gdk/neurocls-library.h @ 56

Last change on this file since 56 was 5, checked in by sz, 16 years ago

added the GDK (Genotype Development Kit)

File size: 7.1 KB
Line 
1// This file is a part of Framsticks GDK library.
2// Copyright (C) 2002-2006  Szymon Ulatowski.  See LICENSE.txt for details.
3// Refer to http://www.frams.alife.pl/ for further information.
4
5
6// do not edit - generated automatically from "f0.def"
7// (to be included in "neurolibrary.cpp")
8
9
10
11
12
13     
14static ParamEntry NI_StdNeuron_tab[]={
15{"Neuron",1, 4 ,"N",},
16
17{"in",1,0,"Inertia","f 0.0 1.0 0.8",},
18{"fo",1,0,"Force","f 0.0 999.0 0.04",},
19{"si",1,0,"Sigmoid","f -99999.0 99999.0 2.0",},
20{"s",2,0,"State","f -1.0 1.0 0.0",},
21 
22{0,0,0,},};
23addClass(new NeuroClass(NI_StdNeuron_tab,"Standard neuron",-1,1,0, 0,2));
24
25     
26static ParamEntry NI_StdUNeuron_tab[]={
27{"Unipolar neuron [EXPERIMENTAL!]",1, 4 ,"Nu",},
28{"in",1,0,"Inertia","f 0.0 1.0 0.8",},
29{"fo",1,0,"Force","f 0.0 999.0 0.04",},
30{"si",1,0,"Sigmoid","f -99999.0 99999.0 2.0",},
31{"s",2,0,"State","f -1.0 1.0 0.0",},
32 
33{0,0,0,},};
34addClass(new NeuroClass(NI_StdUNeuron_tab,"Works like standard neuron (N) but the output value is scaled to 0...+1 instead of -1...+1.\nHaving 0 as one of the saturation states should help in \"gate circuits\", where input signal is passed through or blocked depending on the other singal.",-1,1,0, 0,0));
35
36     static int Gyro_xy[]={83,8,7,100,50,90,50,90,40,70,40,80,50,70,60,90,60,90,50,12,43,24,48,24,48,19,38,19,38,24,43,24,43,54,48,54,48,64,43,69,38,64,38,54,43,54,5,63,69,58,74,48,79,38,79,28,74,23,69,1,43,79,43,74,1,23,69,26,66,1,63,69,60,66,1,55,76,53,73,1,31,75,33,72};   
37static ParamEntry NI_Gyro_tab[]={
38{"Gyroscope",1, 0 ,"G",},
39
40
41 
42{0,0,0,},};
43addClass(new NeuroClass(NI_Gyro_tab,"Equilibrium sensor.\n0=the stick is horizontal\n+1/-1=the stick is vertical",0,1,2, Gyro_xy,0,32));
44
45     static int Touch_xy[]={43,2,7,100,50,90,50,90,40,70,40,80,50,70,60,90,60,90,50,11,75,50,65,50,60,55,55,45,50,55,45,45,40,50,35,50,30,45,25,50,30,55,35,50};   
46static ParamEntry NI_Touch_tab[]={
47{"Touch",1, 0 ,"T",},
48
49
50 
51{0,0,0,},};
52addClass(new NeuroClass(NI_Touch_tab,"Touch sensor.\n-1=no contact\n0=just touching\n>0=pressing, value depends on the force applied",0,1,1, Touch_xy,0,32));
53
54     static int Smell_xy[]={64,5,7,100,50,90,50,90,40,70,40,80,50,70,60,90,60,90,50,3,10,40,15,45,15,55,10,60,5,20,30,25,35,30,45,30,55,25,65,20,70,4,15,35,20,40,22,50,20,60,15,65,5,75,50,50,50,45,45,40,50,45,55,50,50};   
55static ParamEntry NI_Smell_tab[]={
56{"Smell",1, 0 ,"S",},
57
58
59 
60{0,0,0,},};
61addClass(new NeuroClass(NI_Smell_tab,"Smell sensor. Aggregated \"smell of energy\" experienced from all energy objects (creatures and food pieces).\nClose objects have bigger influence than the distant ones: for each energy source, its partial feeling is proportional to its energy/(distance^2)",0,1,1, Smell_xy,0,32));
62
63     static int Const_xy[]={26,3,6,100,50,90,50,90,40,70,40,70,60,90,60,90,50,1,85,50,75,50,1,80,45,80,55};   
64static ParamEntry NI_Const_tab[]={
65{"Constant",1, 0 ,"*",},
66
67
68 
69{0,0,0,},};
70addClass(new NeuroClass(NI_Const_tab,"Constant value",0,1,0, Const_xy,0,1));
71
72     static int BendMuscle_xy[]={63,6,5,25,40,35,40,45,50,35,60,25,60,25,40,4,65,85,65,50,75,50,75,85,65,85,3,65,56,49,29,57,24,72,50,4,68,53,70,53,70,55,68,55,68,53,5,50,21,60,15,70,14,79,15,87,20,81,10,1,86,20,77,21};   
73static ParamEntry NI_BendMuscle_tab[]={
74{"Bend muscle",1, 2 ,"|",},
75
76
77{"p",0,0,"power","f 0.01 1.0 0.25",},
78{"r",0,0,"bending range","f 0.0 1.0 1.0",},
79 
80{0,0,0,},};
81addClass(new NeuroClass(NI_BendMuscle_tab,"",1,0,2, BendMuscle_xy,0,2+16+64+4));
82
83     static int RotMuscle_xy[]={62,5,5,25,40,35,40,45,50,35,60,25,60,25,40,4,65,85,65,50,75,50,75,85,65,85,1,69,10,77,17,10,59,15,57,17,57,22,60,26,69,27,78,26,82,21,82,16,79,12,69,10,80,6,3,65,50,65,20,75,20,75,50};   
84static ParamEntry NI_RotMuscle_tab[]={
85{"Rotation muscle",1, 1 ,"@",},
86
87
88{"p",0,0,"power","f 0.01 1.0 1.0",},
89 
90{0,0,0,},};
91addClass(new NeuroClass(NI_RotMuscle_tab,"",1,0,2, RotMuscle_xy,0,2+16+128+4));
92
93     
94static ParamEntry NI_Diff_tab[]={
95{"Differentiate",1, 0 ,"D",},
96 
97{0,0,0,},};
98addClass(new NeuroClass(NI_Diff_tab,"Calculate the difference between the current and previous input value. Multiple inputs are aggregated with respect to their weights",-1,1,0, 0,0));
99
100     static int FuzzyNeuro_xy[]={44,5,2,30,65,37,37,44,65,3,37,65,44,37,51,37,58,65,2,51,65,58,37,65,65,6,100,50,70,50,70,25,25,10,25,90,70,75,70,50,1,70,65,25,65};   
101static ParamEntry NI_FuzzyNeuro_tab[]={
102{"Fuzzy system [EXPERIMENTAL!]",1, 4 ,"Fuzzy",},
103
104{"ns",0,0,"number of fuzzy sets","d 1  ",},
105{"nr",0,0,"number of rules","d 1  ",},
106{"fs",0,0,"fuzzy sets","s 0 -1 0",},
107{"fr",0,0,"fuzzy rules","s 0 -1 0",},
108 
109{0,0,0,},};
110addClass(new NeuroClass(NI_FuzzyNeuro_tab,"Refer to publications to learn about this neuron",-1,1,0, FuzzyNeuro_xy,0,0));
111
112     
113static ParamEntry NI_Sticky_tab[]={
114{"Sticky [EXPERIMENTAL!]",1, 0 ,"Sti",},
115
116 
117{0,0,0,},};
118addClass(new NeuroClass(NI_Sticky_tab,"",1,0,1, 0,32));
119
120     
121static ParamEntry NI_LinearMuscle_tab[]={
122{"Linear muscle [EXPERIMENTAL!]",1, 1 ,"LMu",},
123
124{"p",0,0,"power","f 0.01 1.0 1.0",},
125 
126{0,0,0,},};
127addClass(new NeuroClass(NI_LinearMuscle_tab,"",1,0,2, 0,16));
128
129     
130static ParamEntry NI_WaterDetect_tab[]={
131{"Water detector",1, 0 ,"Water",},
132
133 
134{0,0,0,},};
135addClass(new NeuroClass(NI_WaterDetect_tab,"Output signal:\n0=on or above water surface\n1=under water (deeper than 1)\n0..1=in the transient area just below water surface",0,1,1, 0,32));
136
137     
138static ParamEntry NI_Energy_tab[]={
139{"Energy level",1, 0 ,"Energy",},
140
141 
142{0,0,0,},};
143addClass(new NeuroClass(NI_Energy_tab,"The current energy level divided by the initial energy level.\nUsually falls from initial 1.0 down to 0.0 and then the creature dies. It can rise above 1.0 if enough food is ingested",0,1,0, 0,32));
144
145     
146static ParamEntry NI_Channelize_tab[]={
147{"Channelize",1, 0 ,"Ch",},
148 
149{0,0,0,},};
150addClass(new NeuroClass(NI_Channelize_tab,"Combines all input signals into a single multichannel output; Note: ChSel and ChMux are the only neurons which support multiple channels. Other neurons discard everything except the first channel.",-1,1,0, 0,0));
151
152     
153static ParamEntry NI_ChMux_tab[]={
154{"Channel multiplexer",1, 0 ,"ChMux",},
155 
156{0,0,0,},};
157addClass(new NeuroClass(NI_ChMux_tab,"Outputs the selected channel from the second (multichannel) input. The first input is used as the selector value (-1=select first channel, .., 1=last channel)",2,1,0, 0,0));
158
159     
160static ParamEntry NI_ChSel_tab[]={
161{"Channel selector",1, 1 ,"ChSel",},
162{"ch",0,0,"channel","d   ",},
163 
164{0,0,0,},};
165addClass(new NeuroClass(NI_ChSel_tab,"Outputs a single channel (selected by the \"ch\" parameter) from multichannel input",1,1,0, 0,0));
166
167     
168static ParamEntry NI_Random_tab[]={
169{"Random noise",1, 0 ,"Rnd",},
170 
171{0,0,0,},};
172addClass(new NeuroClass(NI_Random_tab,"Generates random noise (subsequent random values in the range of -1..+1)",0,1,0, 0,0));
173
174     static int Sinus_xy[]={46,3,12,75,50,71,37,62,28,50,25,37,28,28,37,25,50,28,62,37,71,50,75,62,71,71,62,75,50,1,75,50,100,50,5,35,50,40,35,45,35,55,65,60,65,65,50};   
175static ParamEntry NI_Sinus_tab[]={
176{"Sinus generator",1, 2 ,"Sin",},
177
178{"f0",0,0,"base frequency","f -1.0 1.0 0.06283185307",},
179{"t",0,0,"time","f 0 6.283185307 0",},
180 
181{0,0,0,},};
182addClass(new NeuroClass(NI_Sinus_tab,"Output frequency = f0+input",1,1,0, Sinus_xy,0,0));
Note: See TracBrowser for help on using the repository browser.