00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030
00031
00032
00033
00034
00035
00036
00037
00038 #include "CINNIC/contourNeuronProp.H"
00039 #include "Util/log.H"
00040
00041
00042
00043
00044
00045
00046
00047
00048
00049
00050
00051
00052
00053
00054
00055
00056
00057 template <class CH, class X, class Y>
00058 ContourNeuronProp<CH,X,Y>::ContourNeuronProp()
00059 {
00060 }
00061
00062 template <class CH, class X, class Y>
00063 ContourNeuronProp<CH,X,Y>::~ContourNeuronProp()
00064 {
00065 }
00066
00067 template <class CH, class X, class Y>
00068 CH& ContourNeuronProp<CH,X,Y>::getCharge()
00069 {
00070 return charge;
00071 }
00072
00073 template <class CH, class X, class Y>
00074 CH& ContourNeuronProp<CH,X,Y>::getThreshold()
00075 {
00076 return threshold;
00077 }
00078
00079 template <class CH, class X, class Y>
00080 CH& ContourNeuronProp<CH,X,Y>::getSupressionMod()
00081 {
00082 return supressionMod;
00083 }
00084
00085 template <class CH, class X, class Y>
00086 void ContourNeuronProp<CH,X,Y>::setSupressionMod(CH& sup)
00087 {
00088 supressionMod = sup;
00089 }
00090
00091 template <class CH, class X, class Y>
00092 void ContourNeuronProp<CH,X,Y>::setSupressionBool()
00093 {
00094 supress = false;
00095 }
00096
00097 template <class CH, class X, class Y>
00098 void ContourNeuronProp<CH,X,Y>::setSupressionThresh(CH& thresh, CH& changeVal, CH& max)
00099 {
00100 supressionModThresh = thresh;
00101 supressionModChange = changeVal;
00102 supressionCeiling = max;
00103 }
00104
00105 template <class CH, class X, class Y>
00106 void ContourNeuronProp<CH,X,Y>::Charge(CH& _charge, bool _pol, bool _sender)
00107 {
00108 if(_pol == true)
00109 {
00110 if(_charge > 0)
00111 {
00112 chargePos+=(_charge*(float)(1/resistance));
00113
00114 }
00115 }
00116 else
00117 {
00118 if(_charge > 0)
00119 {
00120 chargeNeg+=(_charge*(float)(1/resistance));
00121
00122 }
00123 }
00124 charge+=_charge;
00125 }
00126
00127 template <class CH, class X, class Y>
00128 void ContourNeuronProp<CH,X,Y>::ChargeSimple(CH& _charge)
00129 {
00130 charge+=_charge;
00131 }
00132
00133
00134
00135
00136 template <class CH, class X, class Y>
00137 CH& ContourNeuronProp<CH,X,Y>::DisCharge(bool _pol, bool _sender, int a, int cascadeType)
00138 {
00139 if(_sender == true)
00140 {
00141 discharge = 0;
00142 }
00143 else
00144 {
00145 if((a == 0) || (cascadeType == 2))
00146 {
00147 discharge = chargePos + chargeNeg;
00148 }
00149 else
00150 {
00151 if(_pol == true)
00152 {
00153 discharge = chargePos;
00154 }
00155 else
00156 {
00157 discharge = chargeNeg;
00158 }
00159 }
00160 }
00161 return discharge;
00162 }
00163
00164
00165
00166
00167 template <class CH, class X, class Y>
00168 void ContourNeuronProp<CH,X,Y>::setThreshold(CH& Threshold, CH& Resistance)
00169 {
00170 threshold = Threshold;
00171 resistance = 1/Resistance;
00172 }
00173
00174
00175
00176
00177 template <class CH, class X, class Y>
00178 void ContourNeuronProp<CH,X,Y>::ResetTempCharge()
00179 {
00180 chargePos = 0;
00181 chargeNeg = 0;
00182 }
00183
00184 template <class CH, class X, class Y>
00185 void ContourNeuronProp<CH,X,Y>::ResetCharge()
00186 {
00187 charge = 0;
00188 }
00189
00190 template <class CH, class X, class Y>
00191 void ContourNeuronProp<CH,X,Y>::ResetChargeAll()
00192 {
00193 charge = 0;
00194 chargePos = 0;
00195 chargeNeg = 0;
00196 }
00197
00198 template <class CH, class X, class Y>
00199 void ContourNeuronProp<CH,X,Y>::setUpperLimit()
00200 {
00201
00202
00203
00204
00205 }
00206
00207 #if 0
00208
00209
00210 void ContourNeuronPropVec::setSize(int t, int i, int j, int k)
00211 {
00212 T=t;I=i;J=j;K=k;
00213 LINFO("setting image size as %d,%d,%d,%d",T,I,J,K);
00214 ContourNeuronProp<float,int,int> Ptemp[T][I][J][K];
00215 NeuronMatrix[T][I][J][K] = ****Ptemp;
00216 LINFO("done");
00217 }
00218
00219 int ContourNeuronPropVec::getSizeT()
00220 {
00221 return T;
00222 }
00223
00224 #endif
00225
00226 template class ContourNeuronProp<float, int, int>;
00227
00228
00229
00230
00231
00232