int ccdl::ConstrainedWeightedLeastSquaresFit ( int const nobs, int const nparam, double const * A_obs_by_param, double * x_param, double const * b_obs, double const * w_obs, int const ncon, double const * D_con_by_param, double const * c_con ) { std::vector<double> sqrtw( w_obs, w_obs + nobs ); for ( int i=0; i<nobs; ++i ) if ( w_obs[i] > 1.e-14 ) sqrtw[i] = std::sqrt( w_obs[i] ); std::vector<double> WA( A_obs_by_param, A_obs_by_param + nparam*nobs ); for ( int j=0; j<nparam; ++j ) for ( int i=0; i<nobs; ++i ) WA[i+j*nobs] *= sqrtw[i]; std::vector<double> WB( b_obs, b_obs + nobs ); for ( int i=0; i<nobs; ++i ) WB[i] *= sqrtw[i]; return ccdl::ConstrainedLeastSquaresFit ( nobs, nparam, WA.data(), x_param, WB.data(), ncon, D_con_by_param, c_con ); /* // min (xt.At-bt).W.(A.x-b) s.t. D.x = c std::vector<double> WA( A_obs_by_param, A_obs_by_param + nparam*nobs ); for ( int j=0; j<nparam; ++j ) for ( int i=0; i<nobs; ++i ) WA[i+j*nobs] *= w_obs[i]; std::vector<double> AtWtb( nparam, 0. ); double alpha = 1.; double beta = 0.; int inc = 1; dgemv_( "T", &nobs, &nparam, &alpha, WA.data(), &nobs, b_obs, &inc, &beta, AtWtb.data(), &inc ); std::vector<double> AtWtA( nparam*nparam, 0. ); dgemm_( "T","N", &nparam, &nparam, &nobs, &alpha, WA.data(), &nobs, A_obs_by_param, &nobs, &beta, AtWtA.data(), &nparam ); return ccdl::ConstrainedLeastSquaresFit ( nparam, nparam, AtWtA.data(), x_param, AtWtb.data(), ncon, D_con_by_param, c_con ); */ }
Double_t Interference(Double_t* x, Double_t *par) // par = m, w, coupl { Double_t xx = x[0]*x[0]; Double_t MA = par[0]; Double_t beta = TMath::Sqrt(1-4*MTOP*MTOP/xx); Double_t y_t= TMath::Log((1+beta)/(1-beta)); Double_t yt2 = y_t*y_t; Double_t beta2 = beta*beta; Double_t pi2 = TMath::Pi() * TMath::Pi(); Double_t constant= -1. * pow(ALPHAS,2)*GF*pow(MTOP,4)/( 32*TMath::Pi()*TMath::Sqrt(2) ); Double_t value = constant * y_t / xx * ( (xx-MA*MA)*(pi2-yt2) + 2*TMath::Pi()*MA*WA(x,par)*y_t) * BW(x,par); return value; }
main( ) { FreeGroup F; cout << "Enter a free group:" << endl << flush; Chars errMesg = cin >> F; if ( errMesg.length() > 0 ) { cout << errMesg << endl << endl; exit; } else cout << "\n\nYou typed:\n" << F << endl << endl; cout << "Enter a seed (1000-2000):" << endl << flush; int seed; cin >> seed; cout << "Enter an average number of Whitehead automorphisms to apply:" << endl << flush; int avgGenNum; cin >> avgGenNum; cout << "How many tests you want to run:" << endl << flush; int numOfTests; cin >> numOfTests; RandomPrimitiveElement rp(F,seed); for ( int i = 0; i < numOfTests; i++ ) { Word elt = rp.getElement( avgGenNum ); cout << elt << endl; WhiteheadAutomorphisms WA( F ); WA.startComputation( elt ); while ( !WA.continueComputation() ); if ( WA.isPrimitive() ) cout << "PRIMITIVE." << endl << flush; else cout << "NOT PRIMITIVE!!!!!!!!!!!!!!!?" << endl << flush; } return 1; }
GenericPluginModel::GenericPluginModel(PluginManager* owner): m_owner(owner) { static const export_name ExportsNames[] = { WA("GetGlobalInfoW"), WA("SetStartupInfoW"), WA("OpenW"), WA("ClosePanelW"), WA("GetPluginInfoW"), WA("GetOpenPanelInfoW"), WA("GetFindDataW"), WA("FreeFindDataW"), WA("GetVirtualFindDataW"), WA("FreeVirtualFindDataW"), WA("SetDirectoryW"), WA("GetFilesW"), WA("PutFilesW"), WA("DeleteFilesW"), WA("MakeDirectoryW"), WA("ProcessHostFileW"), WA("SetFindListW"), WA("ConfigureW"), WA("ExitFARW"), WA("ProcessPanelInputW"), WA("ProcessPanelEventW"), WA("ProcessEditorEventW"), WA("CompareW"), WA("ProcessEditorInputW"), WA("ProcessViewerEventW"), WA("ProcessDialogEventW"), WA("ProcessSynchroEventW"), WA("ProcessConsoleInputW"), WA("AnalyseW"), WA("CloseAnalyseW"), WA("GetContentFieldsW"), WA("GetContentDataW"), WA("FreeContentDataW"), WA(""), // OpenFilePlugin not used WA(""), // GetMinFarVersion not used }; static_assert(ARRAYSIZE(ExportsNames) == ExportsCount, "Not all exports names are defined"); m_ExportsNames = ExportsNames; }
int zysem() { ptscblk->len = msgcopy( WA(word), errors, ptscblk->str ); SET_XR( ptscblk ); return NORMAL_RETURN; }
int ccdl::WeightedLeastSquaresFit ( int const nobs, int const nparam, double const * A_obs_by_param, double * x_param, double const * b_obs, double const * w_obs, double relative_accuracy_of_the_obs ) { std::vector<double> sqrtw( w_obs, w_obs + nobs ); for ( int i=0; i<nobs; ++i ) if ( w_obs[i] > 1.e-14 ) sqrtw[i] = std::sqrt( w_obs[i] ); std::vector<double> WA( A_obs_by_param, A_obs_by_param + nparam*nobs ); for ( int j=0; j<nparam; ++j ) for ( int i=0; i<nobs; ++i ) WA[i+j*nobs] *= sqrtw[i]; std::vector<double> WB( b_obs, b_obs + nobs ); for ( int i=0; i<nobs; ++i ) WB[i] *= sqrtw[i]; return ccdl::LeastSquaresFit ( nobs, nparam, WA.data(), x_param, WB.data(), relative_accuracy_of_the_obs ); /* // min (xt.At-bt).W.(A.x-b) // At.W.A.x = At.W.b // A'.x = b' // A' = At.W.A // b' = At.W.b std::vector<double> WA( A_obs_by_param, A_obs_by_param + nparam*nobs ); for ( int j=0; j<nparam; ++j ) for ( int i=0; i<nobs; ++i ) WA[i+j*nobs] *= w_obs[i]; std::vector<double> AtWtb( nparam, 0. ); double alpha = 1.; double beta = 0.; int inc = 1; dgemv_( "T", &nobs, &nparam, &alpha, WA.data(), &nobs, b_obs, &inc, &beta, AtWtb.data(), &inc ); std::vector<double> AtWtA( nparam*nparam, 0. ); dgemm_( "T","N", &nparam, &nparam, &nobs, &alpha, WA.data(), &nobs, A_obs_by_param, &nobs, &beta, AtWtA.data(), &nparam ); int INFO = 0; { std::vector<int> ipiv( nparam, 0 ); int LWORK = -1; dsysv_("U",&nparam,&inc,AtWtA.data(),&nparam,ipiv.data(),AtWtb.data(), &nparam,WA.data(),&LWORK,&INFO); LWORK = WA[0]+1; WA.resize( LWORK ); #ifdef PDBG std::printf("dsysv_\n"); #endif dsysv_("U",&nparam,&inc,AtWtA.data(),&nparam,ipiv.data(),AtWtb.data(), &nparam,WA.data(),&LWORK,&INFO); #ifdef PDBG std::printf("return %i\n",INFO); #endif if ( INFO > 0 ) throw ccdl::SingularMatrixException("ccdl::WeightedLeastSquaresFit"); std::copy( AtWtb.data(), AtWtb.data()+nparam, x_param ); } return INFO; */ }
Double_t BW(Double_t* x, Double_t* par) { Double_t xx = x[0]*x[0]; Double_t value = 1/(pow(xx-par[0]*par[0],2)+pow(par[0]*WA(x,par),2)); return value; }