bool it_should_calculate_the_original_cost () { bool answ; unsigned int set_size = 12; ElementSet original_set ("", set_size, 100); bool * is_fixed = new bool[set_size]; for (unsigned int i = 0; i < set_size; i++) if (i < 5) is_fixed[i] = true; else is_fixed[i] = false; Partition part (&original_set, is_fixed); delete[] is_fixed; ElementSet * fixed_set = part.get_fixed_elm_set (); ElementSubset part_subset ("", fixed_set); part_subset.add_element (0); part_subset.add_element (2); part_subset.add_element (4); PartitionNode P (&part, &part_subset); SubsetSum orig_f (&original_set); PartCost P_f (&orig_f, &P); ElementSubset X ("", part.get_unfixed_elm_set ()); X.add_element (0); X.add_element (2); X.add_element (3); ElementSubset * orig_X = P.get_original_subset (&X); answ = orig_f.cost (orig_X) == P_f.cost (&X); delete orig_X; return answ; }
void abSyn::ODElearn(double dt) { static double tmp1, tmp2; tmp1= 1.0; tmp2= 1.0; for (int i= 0; i < p->ODE.eta; i++) { tmp1*= D; tmp2*= P; } graw+= dt * p->ODE.gamma*(P*tmp1 - D*tmp2); g= gFilter(graw); P+= dt * (P_f(buffered ? pre->getBufferedV(bufferHandle) : pre->V) - p->ODE.betaP * P); D+= dt * (D_f(post->V) - p->ODE.betaD * D); }