MCPcopy Create free account
hub / github.com/avaneev/biteopt / generateSol6

Method generateSol6

biteopt.h:1168–1200  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

1166 */
1167
1168 void generateSol6( CBiteRnd& rnd )
1169 {
1170 ptype* const Params = TmpParams;
1171
1172 const double r = rnd.getPow( 4.0 );
1173 const int si = (int) ( r * CurPopSize );
1174
1175 double v[ 2 ];
1176 v[ 0 ] = getRealValue( getParamsOrdered( si ),
1177 rnd.getInt( ParamCount ));
1178
1179 if( rnd.getBit() )
1180 {
1181 v[ 1 ] = getRealValue( getParamsOrdered( si ),
1182 rnd.getInt( ParamCount ));
1183 }
1184 else
1185 {
1186 v[ 1 ] = v[ 0 ];
1187 }
1188
1189 const double m = 1.0 - r * r;
1190 v[ 0 ] *= m; // Move towards real 0, useful for some functions.
1191 v[ 1 ] *= m;
1192
1193 int i;
1194
1195 for( i = 0; i < ParamCount; i++ )
1196 {
1197 Params[ i ] = (ptype) (( v[ rnd.getBit() ] - MinValues[ i ]) *
1198 DiffValuesI[ i ]);
1199 }
1200 }
1201
1202 /**
1203 * A solution generator that randomly combines solutions from the main

Callers

nothing calls this directly

Calls 3

getPowMethod · 0.80
getIntMethod · 0.80
getBitMethod · 0.80

Tested by

no test coverage detected