mixed do_wave_it(object ob, object with) { if (!try_to_acquire(ob)) return; if (!ob->wave(with)) { write(useless("Waving "+ob->the_short())); } }
//:FUNCTION direct_flip_obj //Handle parser checks for "flip OBJ" mixed direct_flip_obj(object ob) { if(!default_object_checks()) return 0; //:HOOK direct_flip //A yes/no/error hook called by direct_flip_obj(); if no hooks exists, the //useless message will be used. return call_hooks("direct_flip", HOOK_YES_NO_ERROR, useless( "Fiddling with " + ob->the_short())); }
//:FUNCTION direct_press_obj // Parser check for "press OBJ" mixed direct_press_obj( object ob ) { if(!default_object_checks()) return 0; return useless( "Pushing " + ob->the_short()); }
void function_minimizer::hess_routine_master() { int nvar=initial_params::nvarcalc(); // get the number of active parameters //if (adjm_ptr) set_labels_for_hess(nvar); independent_variables x(1,nvar); initial_params::xinit(x); // get the initial values into the x vector double f; double delta=1.e-6; dvector g1(1,nvar); dvector g2(1,nvar); dvector gbest(1,nvar); dvector hess(1,nvar); dvector hess1(1,nvar); dvector hess2(1,nvar); double eps=.1; gradient_structure::set_YES_DERIVATIVES(); gbest.fill_seqadd(1.e+50,0.); adstring tmpstring="admodel.hes"; if (ad_comm::wd_flag) tmpstring = ad_comm::adprogram_name + ".hes"; uostream ofs((char*)tmpstring); ofs << nvar; { pvm_master_function_evaluation(f,x,g1,nvar); double sdelta1; double sdelta2; for (int i=1;i<=nvar;i++) { hess_calcreport(i,nvar); double f=0.0; double xsave=x(i); sdelta1=x(i)+delta; useless(sdelta1); sdelta1-=x(i); x(i)=xsave+sdelta1; pvm_master_function_evaluation(f,x,g1,nvar); sdelta2=x(i)-delta; useless(sdelta2); sdelta2-=x(i); x(i)=xsave+sdelta2; pvm_master_function_evaluation(f,x,g2,nvar); x(i)=xsave; hess1=(g1-g2)/(sdelta1-sdelta2); sdelta1=x(i)+eps*delta; useless(sdelta1); sdelta1-=x(i); x(i)=xsave+sdelta1; pvm_master_function_evaluation(f,x,g1,nvar); x(i)=xsave-eps*delta; sdelta2=x(i)-eps*delta; useless(sdelta2); sdelta2-=x(i); x(i)=xsave+sdelta2; pvm_master_function_evaluation(f,x,g2,nvar); x(i)=xsave; dvariable vf=initial_params::reset(dvar_vector(x)); double eps2=eps*eps; hess2=(g1-g2)/(sdelta1-sdelta2); hess=(eps2*hess1-hess2) /(eps2-1.); ofs << hess; //if (adjm_ptr) ad_update_hess_stats_report(nvar,i); } } gradient_structure::set_NO_DERIVATIVES(); }