Example #1
0
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;
}
Example #4
0
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;

}
Example #5
0
File: sysem.c Project: spitbol/x64
int zysem()
{
    ptscblk->len = msgcopy( WA(word), errors, ptscblk->str );
    SET_XR( ptscblk );
    return NORMAL_RETURN;
}
Example #6
0
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;
}