void test_mutex_timed_lock(P &sm)

{
   {
      shared_val = 0;

      data<P> m1(1, sm, 3);
      data<P> m2(2, sm, 3);

      // Locker one launches, holds the lock for 3*BaseSeconds seconds.
      boost::thread tm1(thread_adapter<P>(&timed_wait_and_sleep, &m1, sm));

      //Wait 1*BaseSeconds
      boost::thread::sleep(xsecs(1*BaseSeconds));

      // Locker two launches, holds the lock for 3*BaseSeconds seconds.
      boost::thread tm2(thread_adapter<P>(&timed_wait_and_sleep, &m2, sm));

      //Wait completion
      tm1.join();
      tm2.join();

      //Both should succeed locking
      assert(m1.m_value == 1);
      assert(m2.m_value == 2);
   }
   {
      shared_val = 0;

      data<P> m1(1, sm, 3);
      data<P> m2(2, sm, 3);

      // Locker one launches, holds the lock for 3*BaseSeconds seconds.
      boost::thread tm1(thread_adapter<P>(&timed_wait_and_sleep, &m1, sm));

      //Wait 1*BaseSeconds
      boost::thread::sleep(xsecs(1*BaseSeconds));

      // Locker two launches, holds the lock for 3*BaseSeconds seconds.
      boost::thread tm2(thread_adapter<P>(&timed_wait_and_sleep, &m2, sm));

      //Wait completion
      tm1.join();
      tm2.join();

      //Both should succeed locking
      assert(m1.m_value == 1);
      assert(m2.m_value == 2);
   }
}
    void test_buflen()
    {
      {
        coil::TimeMeasure tm0(1);
        CPPUNIT_ASSERT(tm0.count() == 0);
        tm0.tick();
        tm0.tack();
        CPPUNIT_ASSERT(tm0.count() == 1);
      }

      {
        const unsigned int count(1024);
        coil::TimeMeasure tm1(count);

        for (unsigned int i(0); i < count; ++i)
          {
            CPPUNIT_ASSERT(tm1.count() == i);
            tm1.tick();
            tm1.tack();
          }
        for (unsigned int i(0); i < count; ++i)
          {
            tm1.tick();
            tm1.tack();
            CPPUNIT_ASSERT(tm1.count() == (count + 1));
          }

      }
    }
示例#3
0
int GetSeconds(COleDateTime& time1)
{
	SYSTEMTIME sm1;
	time1.GetAsSystemTime(sm1);
	CTime tm1(sm1);
	return (int)(tm1.GetTime());
}
示例#4
0
int GetSeconds(COleDateTime& time1, COleDateTime& time2)
{
	SYSTEMTIME sm1, sm2;
	time1.GetAsSystemTime(sm1);
	time2.GetAsSystemTime(sm2);
	CTime tm1(sm1);
	CTime tm2(sm2);
	return (int)(tm1.GetTime() - tm2.GetTime());
}
示例#5
0
double getTransMass(Double_t px1,  Double_t py1,  Double_t mass1, 
		    Double_t mag2, Double_t phi2, Double_t mass2 ) {
  TVector2 tm1(px1, py1);
  TVector2 tm2; tm2.SetMagPhi(mag2, phi2);
  Double_t pt1 = tm1.Mod();
  Double_t pt2 = mag2;
  Double_t ptTot = (tm1+tm2).Mod();
  Double_t etZ1 = sqrt( pt1*pt1 + mass1*mass1 );
  Double_t etZ2 = sqrt( pt2*pt2 + mass2*mass2 );
  Double_t etZZtot = etZ1+etZ2;
  Double_t transverseMassZZ = sqrt(etZZtot*etZZtot - ptTot*ptTot);

  return transverseMassZZ;
}
示例#6
0
WidgetEdit::WidgetEdit(
    gdi::GraphicApi & drawable,
    Widget & parent, NotifyApi* notifier, const char * text,
    int group_id, BGRColor fgcolor, BGRColor bgcolor, BGRColor focus_color,
    Font const & font, std::size_t edit_position, int xtext, int ytext)
: Widget(drawable, parent, notifier, group_id)
, label(drawable, *this, nullptr, text, 0, fgcolor, bgcolor, font, xtext, ytext)
, w_text(0)
, h_text(0)
, cursor_color(0x888888)
, focus_color(focus_color)
, drawall(false)
, draw_border_focus(true)
, font(font)
{
    if (text) {
        this->buffer_size = strlen(text);
        this->num_chars = UTF8Len(byte_ptr_cast(this->label.buffer));
        this->edit_pos = std::min(this->num_chars, edit_position);
        this->edit_buffer_pos = UTF8GetPos(reinterpret_cast<uint8_t *>(this->label.buffer), this->edit_pos);
        this->cursor_px_pos = 0;
        char c = this->label.buffer[this->edit_buffer_pos];
        this->label.buffer[this->edit_buffer_pos] = 0;
        gdi::TextMetrics tm1(this->font, this->label.buffer);
        this->w_text = tm1.width;
        this->cursor_px_pos = this->w_text;
        this->label.buffer[this->edit_buffer_pos] = c;
        // TODO: tm.height unused ?
        gdi::TextMetrics tm2(this->font, &this->label.buffer[this->edit_buffer_pos]);
        this->w_text += tm2.width;
    } else {
        this->buffer_size = 0;
        this->num_chars = 0;
        this->edit_buffer_pos = 0;
        this->edit_pos = 0;
        this->cursor_px_pos = 0;
    }

    // TODO: tm.width unused ?
    gdi::TextMetrics tm(this->font, "Édp");
    this->h_text = tm.height;
    this->h_text -= 1;

    this->pointer_flag = Pointer::POINTER_EDIT;
}
示例#7
0
void Objectness::trainObjectness(int numDetPerSize)
{
    CmTimer tm1("Train1"), tm2("Train 2");

    //* Learning stage I
    tm1.Start();
    generateTrianData();
    trainStageI();
    tm1.Stop();
    printf("Learning stage I takes %g seconds... \n", tm1.TimeInSeconds()); //*/

    //* Learning stage II
    tm2.Start();
    trainStateII(numDetPerSize);
    tm2.Stop();
    printf("Learning stage II takes %g seconds... \n", tm2.TimeInSeconds()); //*/
    return;
}
示例#8
0
int init() {
    QTextStream out(stdout);
    
    QDate dt1(2011, 4, 12);
    out << "The dae is " << dt1.toString() << endl;
    
    QDate dt2;
    dt2.setDate(2011, 3, 3);
    out << "The date is " << dt2.toString() << endl;
    
    QTime tm1(17, 30, 12, 55);
    out << "The time is " << tm1.toString("hh:mm:ss.zzz") << endl;
    
    QTime tm2;
    tm2.setHMS(13, 53, 45, 155);
    out << "The time is " << tm2.toString("hh:mm:ss.zzz") << endl;
    
    return 0;
}
示例#9
0
TEST(QxTest, TriMatrixAdd)
{
    TriMatrix tm1(
        Matrix(1, 0, 2,
               0, 0, 0,
              -1, 0,-2),
        Matrix(0,-1, 0,
               0, 0, 0,
               0, 1, 0),
        Matrix(0,-3, 1,
               0, 0, 0,
               0, 3,-1)
    );
    const TriMatrix tm2(
        Matrix(0, 2, 0,
               5, 0, 0,
               0, 0, 1),
        Matrix(3, 0, 0,
               0, 2, 0,
               0, 0, 1),
        Matrix(0, 0,-2,
               0,-1, 0,
               1, 0, 0)
    );
    const TriMatrix expected(
        Matrix(1, 2, 2,
               5, 0, 0,
              -1, 0,-1),
        Matrix(3,-1, 0,
               0, 2, 0,
               0, 1, 1),
        Matrix(0,-3,-1,
               0,-1, 0,
               1, 3,-1)
    );
    tm1 += tm2;
    EXPECT_EQ(expected.matrices[0], tm1.matrices[0]);
    EXPECT_EQ(expected.matrices[1], tm1.matrices[1]);
    EXPECT_EQ(expected.matrices[2], tm1.matrices[2]);
}
示例#10
0
YKString DateSpanArray::CalDate(const YKString& span, set<YK_INT>& weekList )
{
	YKString wstr = span;
	vector<YKString> dateVec;
	span.Parse<YKString>(dateVec, L"~");
	if(dateVec.size() == 1)
	{
		dateVec.clear();
		span.Parse<YKString>(dateVec, L"-");
		if(dateVec.size() == 1)
		{
			dateVec.clear();
			span.Parse<YKString>(dateVec, L"/");
		}
	}
	if ( L"*" == span )
	{		
		for(YK_INT i = 1; i <= 7; i++)
		{
			weekList.insert(i);
		}
	}
	else if(dateVec.size() == 1
		&&WeekCorrespond(dateVec[0]) >0)
	{
		weekList.insert(WeekCorrespond(dateVec[0]));
	}
	else if(dateVec.size() == 2)	/* 单个时间 */
	{
		vector<YKString> dateVec1;
		dateVec[0].Parse<YKString>(dateVec1, L"/");
		vector<YKString> dateVec2;
		dateVec[1].Parse<YKString>(dateVec2, L"/");
		if(dateVec1.size() == 3 && dateVec2.size() == 3)
		{
			time_t tm1(0),tm2(0);
			YK_INT year = 0,month = 0,day = 0;
			if(YKTools::AdjustStrToInt(dateVec1[0],year,3,1900,5000) == 0
				&& YKTools::AdjustStrToInt(dateVec1[1],month,3,1,12) == 0
				&& YKTools::AdjustStrToInt(dateVec1[2],day,3,1,31) == 0)
			{
				tm1 = YKDateTime(year,month,day).GetDateTime();
			}
			if(YKTools::AdjustStrToInt(dateVec2[0],year,3,1900,5000) == 0
				&& YKTools::AdjustStrToInt(dateVec2[1],month,3,1,12) == 0
				&& YKTools::AdjustStrToInt(dateVec2[2],day,3,1,31) == 0)
			{
				tm2 = YKDateTime(year,month,day).GetDateTime();
			}
			if(tm1 > 0 && tm2 >= tm1)
			{
				for(;tm1<=tm2;tm1 += 86400)
				{
					m_dateSpanArray.insert(tm1);
				}
			}
			else
			{
				m_errorFlg = true;
			}
		}
		else if(WeekCorrespond(dateVec[0]) >0 
			&&WeekCorrespond(dateVec[1]) >0 )
		{
			YK_INT w1 = WeekCorrespond(dateVec[0]);
			YK_INT w2 = WeekCorrespond(dateVec[1]);
			for(YK_INT i = w1/*min(w1,w2)*/; i != w2/*max(w1,w2)*/; i++)
			{
				weekList.insert(i);
				if(i>=7)
					i=0;
			}
			weekList.insert(w2);
		}
		else
			m_errorFlg = true;

	}
	else if(dateVec.size() == 3) //格式 2009-7-16
	{
		YK_INT year = 0,month = 0,day = 0;
		if(YKTools::AdjustStrToInt(dateVec[0],year,3,1900,5000) == 0
			&& YKTools::AdjustStrToInt(dateVec[1],month,3,1,12) == 0
			&& YKTools::AdjustStrToInt(dateVec[2],day,3,1,31) == 0)
		{
			YKDateTime sTm(year,month,day);
			m_dateSpanArray.insert(sTm.GetDateTime());
		}
		else m_errorFlg = true;
	}
	else m_errorFlg = true;
	return wstr;
}
示例#11
0
void CTTypes::RunTestCaseL(TInt aCurTestCase)
	{
	switch(aCurTestCase)
		{
	case 1:
		{
		__UHEAP_MARK;
		TestRgb tr1(0,0,0, this);
		TestRgb tr2(100,100,100, this);
		TestRgb tr3(10,20,30, this);
		TestRgb tr4(110,160,210, this);
		TestRgb tr5(255,255,255, this);
		INFO_PRINTF1(_L("TRgb"));
		tr1.Test();
		tr2.Test();
		tr3.Test();
		tr4.Test();
		tr5.Test();
		((CTTypesStep*)iStep)->CloseTMSGraphicsStep();
		__UHEAP_MARKEND;
		}
		break;
	case 2:
		{
		INFO_PRINTF1(_L("TTypeface"));
		TestTypeface ttf1(_L(""), 0, this);
		TestTypeface ttf2(_L("Font name"), 1, this);
		TestTypeface ttf3(_L("Font name"), 2, this);
		TestTypeface ttf4(_L("Font name"), 3, this);
		TestTypeface ttf5(_L("Font name"), 4, this);
		TestTypeface ttf6(_L("Font name"), 5, this);
		TestTypeface ttf7(_L("Font name"), 6, this);
		TestTypeface ttf8(_L("Another font name"), 7, this);
		ttf1.Test();
		ttf2.Test();
		ttf3.Test();
		ttf4.Test();
		ttf5.Test();
		ttf6.Test();
		ttf7.Test();
		ttf8.Test();
		}
		break;
	case 3:
		{
		TestMargins tm1(0,0,0,0, this);
		TestMargins tm2(10,20,30,40, this);
		TestMargins tm3(-10,-20,-30,-40, this);
		INFO_PRINTF1(_L("TMargins"));
		tm1.Test();
		tm2.Test();
		tm3.Test();
		}
		break;
	case 4:
		{
		TestPageSpec tps1(TPageSpec::EPortrait,TSize(0,0), this);
		TestPageSpec tps2(TPageSpec::ELandscape,TSize(0,0), this);
		TestPageSpec tps3(TPageSpec::EPortrait,TSize(10,-5), this);
		TestPageSpec tps4(TPageSpec::ELandscape,TSize(15,-20), this);
		TestPageSpec tps5(TPageSpec::EPortrait,TSize(1000,1500), this);
		TestPageSpec tps6(TPageSpec::ELandscape,TSize(2000,500), this);
		INFO_PRINTF1(_L("TPageSpec"));
		tps1.Test();
		tps2.Test();
		tps3.Test();
		tps4.Test();
		tps5.Test();
		tps6.Test();
		}
		break;
	case 5:
		{
		INFO_PRINTF1(_L("FontEffect"));
        	((CTTypesStep*)iStep)->SetTestStepID(_L("GRAPHICS-GDI-0002"));
		TestFontEffect te(this); 
		((CTTypesStep*)iStep)->RecordTestResultL();
		te.Test();
		}
		break;
	case 6:
		{
		INFO_PRINTF1(_L("TFontSyle"));
		TestTFontStyle ts(this);
		ts.Test();
		}
		break;
	case 7:
		{
		TTypeface typeface;
		typeface.iName=_L("Font name");
		TFontStyle fontstyle;
		TestFontSpec tfspec(typeface,200,fontstyle, this);
		INFO_PRINTF1(_L("TFontSpec"));
		tfspec.Test();
		}
		break;
	case 8:
		{
/*
		TestLine tl1(TPoint(10,10),TPoint(90,90), this);
		TestLine tl2(TPoint(100,150),TPoint(50,-50), this);
		TestLine tl3(TPoint(-50,50),TPoint(60,-40), this);
		TestLine tl4(TPoint(-100,0),TPoint(0,200), this);
		TestLine tl5(TPoint(150,-50),TPoint(50,75), this);
		TestLine tl6(TPoint(0,-100),TPoint(-50,-150), this);
		TestLine tl7(TPoint(-1000,-1000),TPoint(1000,1000), this);
		TestLine tl8(TPoint(1000,-1000),TPoint(-1000,1000), this);
		TestLine tl9(TPoint(500,-1000),TPoint(-500,1000), this);
		TestLine tl10(TPoint(-500,-1000),TPoint(500,1000), this);
		TestLine tl11(TPoint(1000,-500),TPoint(-1000,500), this);
		TestLine tl12(TPoint(1000,500),TPoint(-1000,-500), this);
		INFO_PRINTF1(_L("TLinearDDA"));
		tl1.Test();
		tl2.Test();
		tl3.Test();
		tl4.Test();
		tl5.Test();
		tl6.Test();
		tl7.Test();
		tl8.Test();
		tl9.Test();
		tl10.Test();
		tl11.Test();
		tl12.Test();
*/
		INFO_PRINTF1(_L("TLinearDDA is only for Graphics team. Removed."));
		}
		break;
	case 9:
		{
		INFO_PRINTF1(_L("CTypefaceStore"));
		TestTFStore ttfs(this);
		ttfs.Test();
		}
		break;
	case 10:
		{
		INFO_PRINTF1(_L("CFontCache"));
		TestFontCache tfc(this);
		tfc.Test();
		}
		break;
	case 11:
		{
/*
		INFO_PRINTF1(_L("CScaleCropPicture"));
		TestPicture tp(this);
		tp.Test();
*/
		INFO_PRINTF1(_L("CScaleCropPicture is only for Graphics team. Removed."));
		}
		break;
	case 12:
		{
/*
		INFO_PRINTF1(_L("CPalette"));
		TestPalette tpal(this);
		tpal.Test();
*/
		INFO_PRINTF1(_L("CPalette is only for Graphics team. Removed."));
		}
		break;
	case 13:
		{
		INFO_PRINTF1(_L("TDisplayModeUtils"));
		TestDisplayModeUtils tdmu(this);
		tdmu.Test();
		}
		break;
	case 14:
        	((CTTypesStep*)iStep)->SetOverallTestStepID(_L("GRAPHICS-GDI-0001"));
		((CTTypesStep*)iStep)->RecordTestResultL();
		((CTTypesStep*)iStep)->CloseTMSGraphicsStep();
		TestComplete();		
		break;
		}
	}
示例#12
0
int
main ( int argc, char *argv[] )
{
     TuringMachine<5> tm1 ( 9, 0, 11, 1, 15, 2, 17, 3, 11, 4, 23, 5, 24, 6, 3,  7, 21, 9, 0 ); // Marxen-Buntrock, 4097
     TuringMachine<5> tm2 ( 9, 0, 11, 1, 18, 2, 15, 3, 23, 4, 3,  5, 15, 7, 29, 8, 5,  9, 8 ); // Marxen-Buntrock, 4096
     TuringMachine<5> tm3 ( 9, 0, 11, 1, 5,  2, 15, 3, 20, 4, 3,  5, 15, 7, 29, 8, 24, 9, 11 ); // Marxen-Buntrock, 4095
     TuringMachine<5> tm4 ( 9, 0, 11, 1, 5,  2, 15, 3, 20, 4, 3,  5, 15, 7, 29, 8, 15, 9, 11 ); // Marxen-Buntrock, 4095
     TuringMachine<5> tm5 ( 9, 0, 11, 1, 5,  2, 15, 3, 9,  4, 5,  5, 21, 6, 5,  7, 27, 9, 12 ); // Marxen-Buntrock, 4097
     TuringMachine<5> tm6 ( 9, 0, 11, 1, 5,  2, 15, 3, 23, 4, 3,  5, 15, 7, 26, 8, 15, 9, 11 ); // Marxen-Buntrock, 4096
     TuringMachine<5> tm7 ( 9, 0, 11, 2, 15, 3, 17, 4, 26, 5, 18, 6, 15, 7, 6,  8, 23, 9, 5 ); // Uhing, 1471
     TuringMachine<5> tm8 ( 9, 0, 11, 1, 15, 2, 0,  3, 18, 4, 3,  6, 9,  7, 29, 8, 20, 9, 8 ); // Uhing, 1915
     TuringMachine<5> tm9 ( 9, 0, 11, 1, 12, 2, 17, 3, 23, 4, 3,  5, 8,  6, 26, 8, 15, 9, 5 ); // Schult, 501
     TuringMachine<5> tm10 ( 9, 0, 9,  1, 12, 2, 15, 3, 21, 4, 29, 5, 1,  7, 24, 8, 2,  9, 27 );// 160
     TuringMachine<5> tm11 ( 9, 0, 21, 1, 9,  2, 24, 3, 6,  4, 3,  5, 20, 6, 17, 7, 0,  9, 15 );// 32
     TuringMachine<5> tm12 ( 9, 0, 9,  1, 11, 2, 17, 3, 21, 4, 19, 5, 29, 6, 5,  7, 6,  8, 8 );// 26
     TuringMachine<5> tm13 ( 9, 0, 9,  1, 11, 2, 15, 3, 20, 4, 21, 5, 27, 6, 4,  7, 2,  8, 12 );// 21
     TuringMachine<5> tm14 ( 9, 0, 9,  1, 11, 2, 26, 3, 23, 4, 27, 5, 2,  7, 17, 8, 5,  9, 13 );// 19
     TuringMachine<5> tm15 ( 9, 0, 9,  1, 11, 2, 5,  3, 20, 4, 17, 5, 24, 7, 29, 8, 15, 9, 1 );// 14
     TuringMachine<5> tm16 ( 9, 0, 9,  1, 11, 2, 5,  3, 20, 4, 15, 5, 0,  6, 26, 7, 17, 8, 27 );// 15
     TuringMachine<5> tm17 ( 9, 0, 9,  1, 11, 2, 5,  3, 20, 4, 27, 5, 29, 7, 17, 8, 8,  9, 0 );// 16
     TuringMachine<5> tm18 ( 9, 0, 9,  1, 11, 2, 12, 3, 23, 4, 18, 5, 15, 6, 29, 7, 5,  8, 2 );// 17
     TuringMachine<5> tm19 ( 9, 0, 9,  1, 11, 2, 5,  3, 23, 4, 27, 6, 17, 7, 20, 8, 0,  9, 13 );// 18
     TuringMachine<5> tm20 ( 9, 0, 9,  1, 11, 2, 5,  3, 20, 4, 15, 5, 0,  6, 27, 7, 17, 9, 1 );// 13 1 marad a 14-esbol.
     TuringMachine<5> tm21 ( 9, 0, 9,  1, 11, 2, 5,  3, 20, 4, 15, 5, 0,  7, 17, 8, 15, 9, 1 );// 12
     TuringMachine<5> tm22 ( 9, 0, 9,  1, 14, 2, 5,  3, 21, 4, 8,  5, 1,  6, 3,  8, 15, 9, 1 );// 11
     TuringMachine<5> tm23 ( 9, 0, 6,  1, 17, 2, 15, 3, 3,  4, 5,  5, 20, 6, 3,  8, 15, 9, 1 );// 10
     TuringMachine<5> tm24 ( 9, 0, 9,  1, 17, 2, 18, 3, 1,  4, 5,  6, 15, 7, 29, 8, 15, 9, 1 );// 9
     TuringMachine<5> tm25 ( 9, 0, 9,  1, 14, 2, 18, 3, 3,  4, 5,  6, 15, 7, 29, 8, 15, 9, 1 );// 8
     TuringMachine<5> tm26 ( 9, 0, 25, 1, 11, 2, 23, 3, 27, 4, 1,  5, 21, 6, 5,  7, 16, 8, 21 );// 6
     TuringMachine<5> tm27 ( 9, 0, 25, 1, 11, 2, 23, 4, 23, 5, 27, 6, 5,  7, 17, 8, 9,  9, 29 ); // 5
     TuringMachine<5> tm28 ( 9, 0, 9,  1, 11, 2, 5,  3, 20, 4, 17, 5, 24, 7, 29, 8, 15, 9, 1 );// 4
     TuringMachine<5> tm29 ( 9, 0, 16, 1, 14, 2, 18, 3, 11, 4, 27, 5, 29, 7, 27, 8, 21, 9, 12 ); // 3
     TuringMachine<5> tm30 ( 9, 0, 16, 1, 14, 2, 18, 3, 12, 4, 27, 5, 9,  6, 26, 7, 0,  8, 29 ); // 2
     TuringMachine<5> mbR ( 9, 0, 11, 1, 15, 2, 17, 3, 1,  4, 23, 5, 24, 6, 3,  7, 21, 9, 0 );// Marxen-Buntrock, (recombinated 70740809, 4097)

     // NEITHER OrchMach1 NOR TuringMachine OBJECTS CAN BE USED IN PARALLEL

     OrchMach1<5>* om;

     if ( std::getenv ( "SLURM_ARRAY_TASK_ID" ) ) {

          switch ( std::atoi ( std::getenv ( "SLURM_ARRAY_TASK_ID" ) ) ) {

               // Breeds that were surely divergent were deleted.

          case 1:
               om = new OrchMach1<5> ( 18,
                                       &tm10, &tm11, &tm12, &tm13, &tm14,
                                       &tm15, &tm16, &tm17, &tm18, &tm19,
                                       &tm20, &tm21, &tm22, &tm23, &tm24,
                                       &tm25, &tm29, &tm30
                                     );
               break;

          case 4:
               om = new OrchMach1<5> ( 17,
                                       &tm10, &tm12, &tm13, &tm14, &tm15,
                                       &tm16, &tm17, &tm18, &tm19, &tm20,
                                       &tm21, &tm22, &tm23, &tm24, &tm25,
                                       &tm29, &tm30
                                     );
               break;

          case 7:
               om = new OrchMach1<5> ( 31-7,
                                       &tm8, &tm9, &tm10,
                                       &tm11, &tm12, &tm13, &tm14, &tm15,
                                       &tm16, &tm17, &tm18, &tm19, &tm20,
                                       &tm21, &tm22, &tm23, &tm24, &tm25,
                                       &tm26, &tm27, &tm28, &tm29, &tm30,
                                       &mbR
                                     );
               break;
          case 8:
               om = new OrchMach1<5> ( 31-8,
                                       &tm9, &tm10,
                                       &tm11, &tm12, &tm13, &tm14, &tm15,
                                       &tm16, &tm17, &tm18, &tm19, &tm20,
                                       &tm21, &tm22, &tm23, &tm24, &tm25,
                                       &tm26, &tm27, &tm28, &tm29, &tm30,
                                       &mbR
                                     );
               break;

          case 9:
               om = new OrchMach1<5> ( 31-9,
                                       &tm10,
                                       &tm11, &tm12, &tm13, &tm14, &tm15,
                                       &tm16, &tm17, &tm18, &tm19, &tm20,
                                       &tm21, &tm22, &tm23, &tm24, &tm25,
                                       &tm26, &tm27, &tm28, &tm29, &tm30,
                                       &mbR
                                     );
               break;
          case 10:
               om = new OrchMach1<5> ( 31-10,
                                       &tm11, &tm12, &tm13, &tm14, &tm15,
                                       &tm16, &tm17, &tm18, &tm19, &tm20,
                                       &tm21, &tm22, &tm23, &tm24, &tm25,
                                       &tm26, &tm27, &tm28, &tm29, &tm30,
                                       &mbR
                                     );
               break;

          case 12:
               om = new OrchMach1<5> ( 15,

                                       &tm11, &tm12, &tm13, &tm14, &tm15,
                                       &tm21, &tm22, &tm23, &tm24, &tm25,
                                       &tm26, &tm27, &tm28, &tm29, &tm30

                                     );
               break;

          case 13:
               om = new OrchMach1<5> ( 18,
                                       &tm10, &tm11, &tm12, &tm13, &tm14,
                                       &tm15, &tm16, &tm17, &tm18, &tm19,
                                       &tm20, &tm21, &tm22, &tm23, &tm24,
                                       &tm25, &tm29, &tm30
                                     );
               break;

          case 16:
               om = new OrchMach1<5> ( 17,
                                       &tm10, &tm12, &tm13, &tm14, &tm15,
                                       &tm16, &tm17, &tm18, &tm19, &tm20,
                                       &tm21, &tm22, &tm23, &tm24, &tm25,
                                       &tm29, &tm30
                                     );
               break;

          case 19:
               om = new OrchMach1<5> ( 31-7,
                                       &tm8, &tm9, &tm10,
                                       &tm11, &tm12, &tm13, &tm14, &tm15,
                                       &tm16, &tm17, &tm18, &tm19, &tm20,
                                       &tm21, &tm22, &tm23, &tm24, &tm25,
                                       &tm26, &tm27, &tm28, &tm29, &tm30,
                                       &mbR
                                     );
               break;
          case 20:
               om = new OrchMach1<5> ( 31-8,
                                       &tm9, &tm10,
                                       &tm11, &tm12, &tm13, &tm14, &tm15,
                                       &tm16, &tm17, &tm18, &tm19, &tm20,
                                       &tm21, &tm22, &tm23, &tm24, &tm25,
                                       &tm26, &tm27, &tm28, &tm29, &tm30,
                                       &mbR
                                     );
               break;

          case 21:
               om = new OrchMach1<5> ( 31-9,
                                       &tm10,
                                       &tm11, &tm12, &tm13, &tm14, &tm15,
                                       &tm16, &tm17, &tm18, &tm19, &tm20,
                                       &tm21, &tm22, &tm23, &tm24, &tm25,
                                       &tm26, &tm27, &tm28, &tm29, &tm30,
                                       &mbR
                                     );
               break;
          case 22:
               om = new OrchMach1<5> ( 31-10,
                                       &tm11, &tm12, &tm13, &tm14, &tm15,
                                       &tm16, &tm17, &tm18, &tm19, &tm20,
                                       &tm21, &tm22, &tm23, &tm24, &tm25,
                                       &tm26, &tm27, &tm28, &tm29, &tm30,
                                       &mbR
                                     );
               break;

          case 24:
               om = new OrchMach1<5> ( 15,

                                       &tm11, &tm12, &tm13, &tm14, &tm15,
                                       &tm21, &tm22, &tm23, &tm24, &tm25,
                                       &tm26, &tm27, &tm28, &tm29, &tm30

                                     );
               break;


          }

     } else
          om = new OrchMach1<5> ( 5,  &tm2, &tm12, &tm13, &tm14, &tm15 );


     om->experiment();

     delete om;
}