예제 #1
0
파일: epia.c 프로젝트: shattered/linux-m68k
static void epia_read_block( PIA *pi, char * buf, int count )

{       int     k, ph, a, b;

        switch (pi->mode) {

        case 0: w0(0x81); w2(1); w2(3); w0(0xc1);
                ph = 1;
                for (k=0;k<count;k++) {
                        w2(2+ph); a = r1();
                        w2(4+ph); b = r1();
                        buf[k] = j44(a,b);
                        ph = 1 - ph;
                } 
                w0(0); w2(4);
                break;

        case 1: w0(0x91); w2(1); w0(0x10); w2(3); 
                w0(0x51); w2(5); w0(0xd1); 
                ph = 1;
                for (k=0;k<count;k++) {
                        w2(4+ph);
                        a = r1(); b = r2();
                        buf[k] = j53(a,b);
                        ph = 1 - ph;
                }
                w0(0); w2(4);
                break;

        case 2: w0(0x89); w2(1); w2(0x23); w2(0x21); 
                ph = 1;
                for (k=0;k<count;k++) {
                        w2(0x24+ph);
                        buf[k] = r0();
                        ph = 1 - ph;
                }
                w2(6); w2(4);
                break;

        case 3: if (count > 512) WR(0x84,3);
		w3(0); w2(0x24);
                for (k=0;k<count;k++) buf[k] = r4();
                w2(4); WR(0x84,0);
                break;

        case 4: if (count > 512) WR(0x84,3);
		w3(0); w2(0x24);
		for (k=0;k<count/2;k++) ((u16 *)buf)[k] = r4w();
                w2(4); WR(0x84,0);
                break;

        case 5: if (count > 512) WR(0x84,3);
		w3(0); w2(0x24);
                for (k=0;k<count/4;k++) ((u32 *)buf)[k] = r4l();
                w2(4); WR(0x84,0);
                break;

        }
}
예제 #2
0
파일: main.cpp 프로젝트: ZeRuS04/DeviceInfo
int main(int argc, char *argv[])
{
    QApplication a(argc, argv);
    DeviceViewer w;

    QTextCodec *codec = QTextCodec::codecForName("CP1251");
    QTextCodec::setCodecForLocale(codec);

    /****Add Test Devices ****/
    QList<MemRegion> memList;


    MemRegion r1("Region1", rand(),"EEPROM1",0,     256*256*14);
    MemRegion r2("Region2", rand(),"EEPROM2",256*256*14, 256*256*25);
    MemRegion r3("Region3", rand(),"EEPROM3",256*256*25, 256*256*40);
    MemRegion r4("Region4", rand(),"EEPROM1",256*256*40, 256*256*58);
    MemRegion r5("Region5", rand(),"EEPROM2",256*256*58, 256*256*80);
    MemRegion r6("Region6", rand(),"EEPROM3",256*256*80, 256*256*99);
    memList << r1 << r2 << r3 << r4 << r5 << r6;

    QList<Node> nodeList;
    for(int i = 0; i < 9; i++){
        Node n;
        n.serialNum = rand();
        n.info = QString("Something about node %1 of Device1").arg(i);
        nodeList << n;
    }
    Device dev1("Device1", "Т0000255", nodeList, memList);

    nodeList.clear();
    for(int i = 0; i < 6; i++){
        Node n;
        n.serialNum = rand();
        n.info = QString("Something about node %1 of Device2").arg(i);
        nodeList << n;
    }
    Device dev2("Device2", "И0000364", nodeList, memList);

    nodeList.clear();
    for(int i = 0; i < 3; i++){
        Node n;
        n.serialNum = rand();
        n.info = QString("Something about node %1 of Device3").arg(i);
        nodeList << n;
    }
    Device dev3("Device3", "Я0000982", nodeList, memList);

    w.addDevice(&dev1);
    w.addDevice(&dev2);
    w.addDevice(&dev3);

    /*************************/

    w.show();

    return a.exec();
}
예제 #3
0
static void kbic_read_block( PIA *pi, char * buf, int count )

{       int     k, a, b;

        switch (pi->mode) {

        case 0: w0(0x98); w2(4); w2(6); w2(4);
                for (k=0;k<count/2;k++) {
			w2(1); w0(8);    a = r1();
			       w0(0x28); b = r1();
			buf[2*k]   = j44(a,b);
			w2(5);           b = r1();
			       w0(8);    a = r1();
			buf[2*k+1] = j44(a,b);
			w2(4);
                } 
                break;

        case 1: w0(0xb8); w2(4); w2(6); w2(4); 
                for (k=0;k<count/4;k++) {
                        w0(0xb8); 
			w2(4); w2(5); 
                        w0(8);    buf[4*k]   = j53(r12w());
			w0(0xb8); buf[4*k+1] = j53(r12w());
			w2(4); w2(5);
			          buf[4*k+3] = j53(r12w());
			w0(8);    buf[4*k+2] = j53(r12w());
                }
                w2(4);
                break;

        case 2: w0(0x88); w2(4); w2(6); w2(4);
                for (k=0;k<count/2;k++) {
                        w2(0xa0); w2(0xa1); buf[2*k] = r0();
                        w2(0xa5); buf[2*k+1] = r0();
                }
                w2(4);
                break;

        case 3: w0(0xa0); w2(4); w2(6); w2(4); w3(0);
                for (k=0;k<count;k++) buf[k] = r4();
                w2(4); w2(0); w2(4);
                break;

	case 4: w0(0xa0); w2(4); w2(6); w2(4); w3(0);
                for (k=0;k<count/2;k++) ((u16 *)buf)[k] = r4w();
                w2(4); w2(0); w2(4);
                break;

        case 5: w0(0xa0); w2(4); w2(6); w2(4); w3(0);
                for (k=0;k<count/4;k++) ((u32 *)buf)[k] = r4l();
                w2(4); w2(0); w2(4);
                break;


        }
}
예제 #4
0
/* Public functions */
void VGCRectangleTest::run(){
	VGCRectangle r0;
	VGCAssert(VGCVector(0, 0) == r0.getPosition());
	VGCAssert(0 == r0.getWidth());
	VGCAssert(0 == r0.getHeight());

	r0.setPosition(VGCVector(1, 2));
	VGCAssert(VGCVector(1, 2) == r0.getPosition());
	r0.setWidth(1);
	VGCAssert(1 == r0.getWidth());
	r0.setHeight(2);
	VGCAssert(2 == r0.getHeight());

	VGCRectangle r1(VGCVector(1, 2), 1, 2);
	VGCAssert(VGCVector(1, 2) == r1.getPosition());
	VGCAssert(1 == r1.getWidth());
	VGCAssert(2 == r1.getHeight());

	VGCRectangle r2(r1);
	VGCAssert(VGCVector(1, 2) == r2.getPosition());
	VGCAssert(1 == r2.getWidth());
	VGCAssert(2 == r2.getHeight());

	VGCRectangle r3;
	r3 = r2;
	VGCAssert(VGCVector(1, 2) == r3.getPosition());
	VGCAssert(1 == r3.getWidth());
	VGCAssert(2 == r3.getHeight());

	VGCRectangle r4(VGCVector(1, 2), 2, 3);
	VGCAssert(r4.isInside(VGCVector(1, 2)));
	VGCAssert(r4.isInside(VGCVector(2, 2)));
	VGCAssert(r4.isInside(VGCVector(1, 3)));
	VGCAssert(r4.isInside(VGCVector(2, 3)));
	VGCAssert(r4.isInside(VGCVector(1, 4)));
	VGCAssert(r4.isInside(VGCVector(2, 4)));
	VGCAssert(!r4.isInside(VGCVector(0, 3)));
	VGCAssert(!r4.isInside(VGCVector(2, 5)));


	VGCRectangle a0(VGCVector(0, 0), 0, 0);
	VGCRectangle a1(VGCVector(0, 0), 0, 1);
	VGCRectangle a2(VGCVector(0, 0), 1, 0);
	VGCRectangle a3(VGCVector(0, 1), 0, 0);
	VGCRectangle b0(VGCVector(0, 0), 0, 0);
	VGCRectangle b1(VGCVector(0, 0), 0, 1);
	VGCRectangle b2(VGCVector(0, 0), 1, 0);
	VGCRectangle b3(VGCVector(0, 1), 0, 0);
	VGCAssert(a0 == b0);
	VGCAssert(a1 == b1);
	VGCAssert(a2 == b2);
	VGCAssert(a3 == b3);
	VGCAssert(a0 != a1);
	VGCAssert(a0 != a2);
	VGCAssert(a0 != a3);
}
예제 #5
0
TEST(buffer, buffer_agg_avg)
{
    Buffer buf;
    buf.set_aggmode(Buffer::AVG);

    ReadingIdentifier::Ptr pRid;
    struct timeval t1;
    t1.tv_sec = 1;
    t1.tv_usec = 0;
    {
        Reading r1(1.0, t1, pRid);
        buf.push(r1);

        buf.aggregate(0, false);
        // now assert exact one, not deleted:
        ASSERT_EQ(buf.size(), (size_t)1);
        Reading &r = *buf.begin();
        ASSERT_TRUE(!r.deleted());
        // first case: no prev. value, just one data -> return value as AVG.
        ASSERT_EQ(r.value(), 1.0);
        r.mark_delete();
    }
    // now add a 2nd value:
    {
        t1.tv_sec = 2;
        Reading r2(2.0, t1, pRid);
        buf.push(r2);
        buf.aggregate(0, false);
        buf.clean();
        ASSERT_EQ(buf.size(), (size_t)1);
        Reading &r = *buf.begin();
        ASSERT_TRUE(!r.deleted());
        // 2nd case: prev. value (1.0 at 1s), just one new data (2.0 at 2s)-> return 1.0 as AVG (2.0 has no time yet!)
        ASSERT_EQ(r.value(), 1.0);
        r.mark_delete();
    }
    // now add 2 values:
    {
        t1.tv_sec = 4;
        Reading r3(3.0, t1, pRid);
        buf.push(r3);
        t1.tv_sec = 7;
        Reading r4(4.0, t1, pRid);
        buf.push(r4);

        buf.aggregate(0, false);
        buf.clean();
        ASSERT_EQ(buf.size(), (size_t)1);
        Reading &r = *buf.begin();
        ASSERT_TRUE(!r.deleted());
        // 3rd case: prev. value (2.0 at 2s), two new data (3.0 at 4s and 4.0 at 7s)-> return (2*2+3*3)/5 as AVG (4.0 has no time yet!)
        ASSERT_EQ(((2.0*2.0)+(3.0*3.0))/5.0, r.value());
        r.mark_delete();
    }
}
예제 #6
0
CCreateWaveDlg::CCreateWaveDlg(CWnd* pParent /*=NULL*/)
	: CDialog(CCreateWaveDlg::IDD, pParent)
{
//   IDD_CREATEWAV DIALOGEX 0, 0, 151, 173
   CRect rect(CPoint(0,0),CSize(151,173));
   MapDialogRect(&rect);
   setFixedSize(rect.Width(),rect.Height());
   
//       DEFPUSHBUTTON   "Begin",IDC_BEGIN,37,152,52,14
   CButton* mfc1 = new CButton(this);
   CRect r1(CPoint(37,152),CSize(52,14));
   MapDialogRect(&r1);
   mfc1->Create(_T("Begin"),0,r1,this,IDC_BEGIN);
   mfc1->setDefault(true);
   mfcToQtWidget.insert(IDC_BEGIN,mfc1);
   QObject::connect(mfc1,SIGNAL(clicked()),this,SLOT(begin_clicked()));
//       PUSHBUTTON      "Cancel",IDCANCEL,92,152,52,14
   CButton* mfc2 = new CButton(this);
   CRect r2(CPoint(92,152),CSize(52,14));
   MapDialogRect(&r2);
   mfc2->Create(_T("Cancel"),0,r2,this,IDCANCEL);
   mfcToQtWidget.insert(IDCANCEL,mfc2);
   QObject::connect(mfc2,SIGNAL(clicked()),this,SLOT(cancel_clicked()));
//       GROUPBOX        "Song length",IDC_STATIC,7,7,137,47
   CGroupBox* mfc3 = new CGroupBox(this);
   mfc3->setTitle("Song length");
   CRect r3(CPoint(7,7),CSize(137,47));
   MapDialogRect(&r3);
   mfc3->setGeometry(r3);
   // IDC_STATIC do not get added to MFC-to-Qt map.
//       CONTROL         "Play the song",IDC_RADIO_LOOP,"Button",BS_AUTORADIOBUTTON,14,20,59,10
   CButton* mfc4 = new CButton(this);
   CRect r4(CPoint(14,20),CSize(59,10));
   MapDialogRect(&r4);
   mfc4->Create(_T("Play the song"),BS_AUTORADIOBUTTON,r4,this,IDC_RADIO_LOOP);
   mfcToQtWidget.insert(IDC_RADIO_LOOP,mfc4);
   QObject::connect(mfc4,SIGNAL(clicked()),this,SLOT(radioLoop_clicked()));
//       CONTROL         "Play for",IDC_RADIO_TIME,"Button",BS_AUTORADIOBUTTON,14,38,41,10
   CButton* mfc5 = new CButton(this);
   CRect r5(CPoint(14,38),CSize(41,10));
   MapDialogRect(&r5);
   mfc5->Create(_T("Play for"),BS_AUTORADIOBUTTON,r5,this,IDC_RADIO_TIME);
   mfcToQtWidget.insert(IDC_RADIO_TIME,mfc5);
   QObject::connect(mfc5,SIGNAL(clicked()),this,SLOT(radioTime_clicked()));
//       EDITTEXT        IDC_TIMES,73,19,36,12,ES_AUTOHSCROLL
//       CONTROL         "",IDC_SPIN_LOOP,"msctls_updown32",UDS_ALIGNRIGHT | UDS_AUTOBUDDY | UDS_ARROWKEYS,105,17,11,17
//       LTEXT           "time(s)",IDC_STATIC,115,20,21,10,SS_CENTERIMAGE
//       EDITTEXT        IDC_SECONDS,53,37,44,12,ES_AUTOHSCROLL
//       CONTROL         "",IDC_SPIN_TIME,"msctls_updown32",UDS_ALIGNRIGHT | UDS_AUTOBUDDY | UDS_ARROWKEYS,93,36,11,14
//       LTEXT           "mm:ss",IDC_STATIC,106,38,21,10,SS_CENTERIMAGE
//       GROUPBOX        "Channels",IDC_STATIC,7,60,137,87
//       LISTBOX         IDC_CHANNELS,14,71,124,70,LBS_OWNERDRAWFIXED | LBS_HASSTRINGS | LBS_NOINTEGRALHEIGHT | WS_VSCROLL | WS_TABSTOP
}
예제 #7
0
void test_base() {
	Range16 r(0, 5);

	BOOST_CHECK(r.length() == 6);
	BOOST_CHECK(r.begin() == 0);
	BOOST_CHECK(r.end() == 5);

	BOOST_CHECK(r.contains(0));
	BOOST_CHECK(r.contains(3));
	BOOST_CHECK(r.contains(5));
	BOOST_CHECK(!r.contains(6));
	BOOST_CHECK(!r.contains(100));

	BOOST_CHECK_THROW(r.begin(6), std::exception);
	BOOST_CHECK_NO_THROW(r.begin(5));
	BOOST_CHECK(r.length() == 1);
	BOOST_CHECK_NO_THROW(r.end(10));
	BOOST_CHECK(r.begin() == 5);
	BOOST_CHECK(r.end() == 10);
	BOOST_CHECK(r.length() == 6);

	Range16 r1(0, 5);
	Range16 r2(0, 2);
	BOOST_CHECK(r1.contains(r2));
	BOOST_CHECK(r1.contains(0, 0));
	BOOST_CHECK(r1.contains(Range16(5, 5)));
	BOOST_CHECK(r1.contains(5, 6));
	BOOST_CHECK(!r1.contains(6, 6));

	BOOST_CHECK(r1.containsFull(r2));
	BOOST_CHECK(r1.containsFull(0, 4));
	BOOST_CHECK(r1.containsFull(0, 5));
	BOOST_CHECK(!r1.containsFull(0, 6));
	BOOST_CHECK(r1.containsFull(5, 5));
	BOOST_CHECK(r1.containsFull(Range16(1, 5)));
	BOOST_CHECK(!r1.containsFull(Range16(6, 6)));
	BOOST_CHECK(!r1.containsFull(5, 10));

	Range16 r3(20, 30);
	Range16 r4( 3, 10);
	BOOST_CHECK(!r3.contains(r4));
	BOOST_CHECK(!r3.borders(r4));

	// test comparison operators
	BOOST_CHECK(r1 != r2);
	BOOST_CHECK(r2 != r1);
	BOOST_CHECK(r3 != r4);
//	BOOST_CHECK(r3 > r4);
//	BOOST_CHECK(r4 < r3);
}
예제 #8
0
파일: Obstacle.cpp 프로젝트: Ablu/freeorion
void 
OpenSteer::
BoxObstacle::
findIntersectionWithVehiclePath (const AbstractVehicle& vehicle,
                                 PathIntersection& pi) const
{
    // abbreviations
    const float w = width; // dimensions
    const float h = height;
    const float d = depth;
    const Vec3 s = side (); // local space
    const Vec3 u = up ();
    const Vec3 f = forward ();
    const Vec3 p = position ();
    const Vec3 hw = s * (0.5f * width); // offsets for face centers
    const Vec3 hh = u * (0.5f * height);
    const Vec3 hd = f * (0.5f * depth);
    const seenFromState sf = seenFrom ();

    // the box's six rectangular faces
    RectangleObstacle r1 (w, h,  s,  u,  f, p + hd, sf); // front
    RectangleObstacle r2 (w, h, -s,  u, -f, p - hd, sf); // back
    RectangleObstacle r3 (d, h, -f,  u,  s, p + hw, sf); // side
    RectangleObstacle r4 (d, h,  f,  u, -s, p - hw, sf); // other side
    RectangleObstacle r5 (w, d,  s, -f,  u, p + hh, sf); // top
    RectangleObstacle r6 (w, d, -s, -f, -u, p - hh, sf); // bottom

    // group the six RectangleObstacle faces together
    ObstacleGroup faces;
    faces.push_back (&r1);
    faces.push_back (&r2);
    faces.push_back (&r3);
    faces.push_back (&r4);
    faces.push_back (&r5);
    faces.push_back (&r6);

    // find first intersection of vehicle path with group of six faces
    PathIntersection next;
    firstPathIntersectionWithObstacleGroup (vehicle, faces, pi, next);

    // when intersection found, adjust PathIntersection for the box case
    if (pi.intersect)
    {
        pi.obstacle = this;
        pi.steerHint = ((pi.surfacePoint - position ()).normalize () *
                        (pi.vehicleOutside ? 1.0f : -1.0f));
    }
}
예제 #9
0
static void on26_read_block( PIA *pi, char * buf, int count )

{       int     k, a, b;

        switch (pi->mode) {

        case 0: w0(1); P1; w0(1); P2; w0(2); P1; w0(0x18); P2; w0(0); P1;
		udelay(10);
		for (k=0;k<count;k++) {
                        w2(6); a = r1();
                        w2(4); b = r1();
                        buf[k] = j44(a,b);
                }
		w0(2); P1; w0(8); P2; 
                break;

        case 1: w0(1); P1; w0(1); P2; w0(2); P1; w0(0x19); P2; w0(0); P1;
		udelay(10);
                for (k=0;k<count/2;k++) {
                        w2(0x26); buf[2*k] = r0();  
			w2(0x24); buf[2*k+1] = r0();
                }
                w0(2); P1; w0(9); P2;
                break;

        case 2: w3(1); w3(1); w2(5); w4(1); w2(4);
		w3(0); w3(0); w2(0x24);
		udelay(10);
                for (k=0;k<count;k++) buf[k] = r4();
                w2(4);
                break;

        case 3: w3(1); w3(1); w2(5); w4(1); w2(4);
                w3(0); w3(0); w2(0x24);
                udelay(10);
                for (k=0;k<count/2;k++) ((u16 *)buf)[k] = r4w();
                w2(4);
                break;

        case 4: w3(1); w3(1); w2(5); w4(1); w2(4);
                w3(0); w3(0); w2(0x24);
                udelay(10);
                for (k=0;k<count/4;k++) ((u32 *)buf)[k] = r4l();
                w2(4);
                break;

        }
}
예제 #10
0
파일: jhc.cpp 프로젝트: jbirkel/jhblib
cli::Error_e cmdValKey( CLIARGS args, cli::Param_t prm) {

   typedef ValKeyA ValKey;

   {  ValKey r( "jhcValKeyRoot", "k1", true );
      r.SetVal( "String1", "Helloo"   );
      r.SetVal( "Dword1" , 1111  );  

      {  ValKey r2( r, "k2", true );
         r2.SetVal( "String2", "Helloo22" );   
         r2.SetVal( "Dword2" , 2222 );      
         r2.SetVal( "Dword3" , 3333 );      
   
         {  ValKey r3( r2, "k3", true );   
            r3.SetVal( "Dword4" , 4444 );         
            DumpKey( r3 );   
         }   
   
         ValKey r4( r, "k4" );
         r4.SetVal( "Dword5", 5555 );         
         
         DumpKey( r2 );   
         DumpKey( r4 );
      }
      r.SetVal( "Dword6" , 6666 );        
      DumpKey( r );
   }   
         
   
//   char sz[100]; memset( sz, 0, sizeof sz );
//   r.GetVal( "String1"    , sz, 100 ); printf( "String1: %s\n", sz );   
//   r.GetVal( "k2\\String2", sz, 100 ); printf( "String2: %s\n", sz );
//   
//   DWORD dw = 0;
//   r.GetVal( "k3\\Dword1"    , dw ); printf( "Dword1: %u\n", dw );   
//   r.GetVal( "k4\\Dword2"    , dw ); printf( "Dword2: %u\n", dw );   
//   r.GetVal( "k4\\k5\\Dword3", dw ); printf( "Dword3: %u\n", dw );
   
   printf("\n");   
   
   printf("\n");   
   ValStore<char> VS;
   VS.Deserialize( "jhcValKeyRoot" );
   VS.Dump( ConOut );
   
   return cli::ERR_GENERAL;
}
예제 #11
0
파일: algebra.cpp 프로젝트: aramadia/cs488
// Return a matrix to represent a displacement of the given vector.
Matrix4x4 translation(const Vector3D& displacement)
{
  Matrix4x4 t;
  // Fill me in!

  double x = displacement[0];
  double y = displacement[1];
  double z = displacement[2];

  Vector4D r1(1, 0, 0, x);
  Vector4D r2(0, 1, 0, y);
  Vector4D r3(0, 0, 1, z);
  Vector4D r4(0, 0, 0, 1);

  t = Matrix4x4(r1,r2,r3,r4);

  return t;
}
예제 #12
0
파일: algebra.cpp 프로젝트: aramadia/cs488
// Return a matrix to represent a nonuniform scale with the given factors.
Matrix4x4 scaling(const Vector3D& scale)
{
  Matrix4x4 s;


  double x = scale[0];
  double y = scale[1];
  double z = scale[2];

  Vector4D r1(x, 0, 0, 0);
  Vector4D r2(0, y, 0, 0);
  Vector4D r3(0, 0, z, 0);
  Vector4D r4(0, 0, 0, 1);

  s = Matrix4x4(r1,r2,r3,r4);


  return s;
}
예제 #13
0
int main()
{
	MALib::LOG_Initialize(true);
	MALib::RANDOM_Initialize();

	MALib::RECT r1(24, 24, 320, 320);
	MALib::RECT r2(1, 4, 32, 21);
	MALib::RECT r3(280, 150, 340, 180);
	MALib::RECT r4(48, 60, 300, 280);

	MALib::LOG_Out1Bool("RECT TEST SHOULD BE FALSE",  MALib::Clipping(r1, r2));
	MALib::LOG_Out1Bool("RECT TEST SHOULD BE TRUE ",  MALib::Clipping(r1, r3));
	MALib::LOG_Out1Bool("RECT TEST SHOULD BE TRUE ",  MALib::Clipping(r1, r4));
	
	MALib::LOG_Out1Bool("RECT TEST SHOULD BE FALSE",  MALib::InsideRect(r1, MALib::POINT(1, 23)));
	MALib::LOG_Out1Bool("RECT TEST SHOULD BE TRUE ",  MALib::InsideRect(r1, MALib::POINT(190, 320)));

	MALib::POINT p1 = MALib::Displacement(r1, MALib::RECT(480, 24, 560, 380));
	MALib::POINT p2 = MALib::Displacement(r1, MALib::RECT(-128, 2, 80, -240));
	MALib::LOG_Out2i("DISLPACEMENT TEXT", p1.x, p1.y);
	MALib::LOG_Out2i("DISLPACEMENT TEXT", p2.x, p2.y);

	r1.resize(120, 120);

	bool t1 = MALib::INPUT::MOUSE.left;

	MALib::SURFACE* s = 0;
	MALib::CreateSurface(&s, "", 10200, 6600, MALib::PIXELFORMAT_BGR, 0);
	//MALib::ExportBMPFile("test_big.bmp", s);
	MALib::FreeSurface(&s);
	
	MALib::LOG_Out1i("2 POW 2", MALib::Pow(2u, 2u));
	MALib::LOG_Out1i("3 POW 4", MALib::Pow(3u, 4u));
	MALib::LOG_Out1i("9 POW 0", MALib::Pow(9, 0u));
	MALib::LOG_Out1i("-4 POW 3", MALib::Pow(-4, 3u));
	MALib::LOG_Out1f("2, 2 MAGNITUDE", MALib::Magnitude(MALib::POINT(2, 2)));
	MALib::LOG_Out1f("0, -4 MAGNITUDE", MALib::Magnitude(MALib::POINT(0, -4)));
	MALib::LOG_Out1f("(2, 2) (7, 4) DISTANCE", MALib::Distance(MALib::POINT(2, 2), MALib::POINT(7, 4)));
	MALib::LOG_Out1f("(-3, 2) (-6, 0) DISTANCE", MALib::Distance(MALib::POINT(-3, 2), MALib::POINT(-6, 0)));

	MALib::LOG_Unitialize();
	return 0;
}
예제 #14
0
파일: ex4.cpp 프로젝트: socumbersome/cpp
int main( int argc, char* argv [ ] )
{
   rational r1( 1, 2 );
   rational r2( -2, 7 ); 
   rational r3( 1, 3 );
   rational r4( 2, 8 );
   matrix m1 = { { r1, r2 }, { r3, r4 } };
   std::cout << m1 << "\n";
   
   r1 = rational(1, -3);
   r2 = rational(2, 5);
   r3 = rational(2, 7);
   r4 = rational(-1, 7);
   matrix m2 = { { r1, r2 }, { r3, r4 } };
   std::cout << m2 << "\n";
   
   matrix m12 = m1 * m2;
   std::cout << m12 << "\n";
   std::cout << m1.inverse() << "\n" << m1.determinant() << "\n";
}
예제 #15
0
void constructProblem(int nElements, int nBits, int nPartitions, int nTime, char * fileName) {
    srand(time(NULL));
    Cronometro c(Cronometro::NANO_S);
    c.start();
    gmp_randclass r4(gmp_randinit_default);
    r4.seed(c.elapsed());
    c.end();
    ofstream filestr(fileName);
    filestr << nTime << endl;
    filestr << "~" << endl;
    filestr << nElements << endl;
    filestr << "~" << endl;
    filestr << nPartitions << endl;
    filestr << "~" << endl;
    for (int i = 0; i < nElements; i++) {
        mpz_class num(r4.get_z_bits(nBits));
        filestr << num << endl;
    }
    filestr.close();
}
예제 #16
0
bool QMLManager::checkDuration(DiveObjectHelper *myDive, struct dive *d, QString duration)
{
	if (myDive->duration() != duration) {
		int h = 0, m = 0, s = 0;
		QRegExp r1(QStringLiteral("(\\d*)\\s*%1[\\s,:]*(\\d*)\\s*%2[\\s,:]*(\\d*)\\s*%3").arg(tr("h")).arg(tr("min")).arg(tr("sec")), Qt::CaseInsensitive);
		QRegExp r2(QStringLiteral("(\\d*)\\s*%1[\\s,:]*(\\d*)\\s*%2").arg(tr("h")).arg(tr("min")), Qt::CaseInsensitive);
		QRegExp r3(QStringLiteral("(\\d*)\\s*%1").arg(tr("min")), Qt::CaseInsensitive);
		QRegExp r4(QStringLiteral("(\\d*):(\\d*):(\\d*)"));
		QRegExp r5(QStringLiteral("(\\d*):(\\d*)"));
		QRegExp r6(QStringLiteral("(\\d*)"));
		if (r1.indexIn(duration) >= 0) {
			h = r1.cap(1).toInt();
			m = r1.cap(2).toInt();
			s = r1.cap(3).toInt();
		} else if (r2.indexIn(duration) >= 0) {
			h = r2.cap(1).toInt();
			m = r2.cap(2).toInt();
		} else if (r3.indexIn(duration) >= 0) {
			m = r3.cap(1).toInt();
		} else if (r4.indexIn(duration) >= 0) {
			h = r4.cap(1).toInt();
			m = r4.cap(2).toInt();
			s = r4.cap(3).toInt();
		} else if (r5.indexIn(duration) >= 0) {
			h = r5.cap(1).toInt();
			m = r5.cap(2).toInt();
		} else if (r6.indexIn(duration) >= 0) {
			m = r6.cap(1).toInt();
		}
		d->dc.duration.seconds = d->duration.seconds = h * 3600 + m * 60 + s;
		if (same_string(d->dc.model, "manually added dive")) {
			free(d->dc.sample);
			d->dc.sample = 0;
			d->dc.samples = 0;
		} else {
			qDebug() << "changing the duration on a dive that wasn't manually added - Uh-oh";
		}
		return true;
	}
	return false;
}
예제 #17
0
파일: dstr.c 프로젝트: 0-T-0/ps4-linux
static void dstr_read_block( PIA *pi, char * buf, int count )

{       int     k, a, b;

        w0(0x81); P1;
        if (pi->mode) { w0(0x19); } else { w0(9); }
	P2; w0(0x82); P1; P3; w0(0x20); P1;

        switch (pi->mode) {

        case 0: for (k=0;k<count;k++) {
                        w2(6); a = r1(); w2(4);
                        w2(6); b = r1(); w2(4);
                        buf[k] = j44(a,b);
                } 
                break;

        case 1: w0(0);
                for (k=0;k<count;k++) {
                        w2(0x26); buf[k] = r0(); w2(0x24);
                }
                w2(4);
                break;

        case 2: w2(0x24); 
                for (k=0;k<count;k++) buf[k] = r4();
                w2(4);
                break;

        case 3: w2(0x24); 
                for (k=0;k<count/2;k++) ((u16 *)buf)[k] = r4w();
                w2(4);
                break;

        case 4: w2(0x24); 
                for (k=0;k<count/4;k++) ((u32 *)buf)[k] = r4l();
                w2(4);
                break;

        }
}
예제 #18
0
파일: rect.cpp 프로젝트: jgrande/ginga
TEST( rect, aside ) {
	canvas::Rect r1(100,100,100,100);
	canvas::Rect r2(100,100,10,100);
	canvas::Rect r3(190,100,10,100);
	canvas::Rect r4(100,100,100,10);
	canvas::Rect r5(100,190,100,10);
	canvas::Rect r6(125,125,50,50);

	ASSERT_TRUE(r2.aside(r1));
	ASSERT_TRUE(r3.aside(r1));
	ASSERT_TRUE(r4.aside(r1));
	ASSERT_TRUE(r5.aside(r1));
	ASSERT_FALSE(r6.aside(r1));
	ASSERT_FALSE(r1.aside(r1));
	
	ASSERT_FALSE(r1.aside(r2));
	ASSERT_FALSE(r1.aside(r3));
	ASSERT_FALSE(r1.aside(r4));
	ASSERT_FALSE(r1.aside(r5));
	ASSERT_FALSE(r1.aside(r6));
}
예제 #19
0
void alignedvector3()
{
  Scalar s1 = internal::random<Scalar>();
  Scalar s2 = internal::random<Scalar>();
  typedef Matrix<Scalar,3,1> RefType;
  typedef Matrix<Scalar,3,3> Mat33;
  typedef AlignedVector3<Scalar> FastType;
  RefType  r1(RefType::Random()), r2(RefType::Random()), r3(RefType::Random()),
           r4(RefType::Random()), r5(RefType::Random()), r6(RefType::Random());
  FastType f1(r1), f2(r2), f3(r3), f4(r4), f5(r5), f6(r6);
  Mat33 m1(Mat33::Random());
  
  VERIFY_IS_APPROX(f1,r1);
  VERIFY_IS_APPROX(f4,r4);

  VERIFY_IS_APPROX(f4+f1,r4+r1);
  VERIFY_IS_APPROX(f4-f1,r4-r1);
  VERIFY_IS_APPROX(f4+f1-f2,r4+r1-r2);
  VERIFY_IS_APPROX(f4+=f3,r4+=r3);
  VERIFY_IS_APPROX(f4-=f5,r4-=r5);
  VERIFY_IS_APPROX(f4-=f5+f1,r4-=r5+r1);
  VERIFY_IS_APPROX(f5+f1-s1*f2,r5+r1-s1*r2);
  VERIFY_IS_APPROX(f5+f1/s2-s1*f2,r5+r1/s2-s1*r2);
  
  VERIFY_IS_APPROX(m1*f4,m1*r4);
  VERIFY_IS_APPROX(f4.transpose()*m1,r4.transpose()*m1);
  
  VERIFY_IS_APPROX(f2.dot(f3),r2.dot(r3));
  VERIFY_IS_APPROX(f2.cross(f3),r2.cross(r3));
  VERIFY_IS_APPROX(f2.norm(),r2.norm());

  VERIFY_IS_APPROX(f2.normalized(),r2.normalized());

  VERIFY_IS_APPROX((f2+f1).normalized(),(r2+r1).normalized());
  
  f2.normalize();
  r2.normalize();
  VERIFY_IS_APPROX(f2,r2);
}
예제 #20
0
void *show_yes_no(void *t, void *msg, void *y, void *n)
{
  p_ref r1(t),r2(msg),r3(y),r4(n);
  t=eval(t); msg=eval(msg); y=eval(y); n=eval(n);
  int c;
  char *yes=lstring_value(y);
  char *no=lstring_value(n);
  do
  {
    dprintf("\n\n\n\n\n%s\n\n",lstring_value(t));
    void *v=msg;
    if (item_type(v)==L_CONS_CELL)
      while (v) { dprintf("** %s\n",lstring_value(CAR(v))); v=CDR(v); }
    else dprintf("** %s\n",lstring_value(v));
    char msg[100];
    fgets(msg,100,stdin);
    c=msg[0];
  } while (toupper(c)!=toupper(yes[0]) && toupper(c)!=toupper(no[0]));
  if (toupper(c)==toupper(yes[0]))
    return true_symbol;
  else return NULL;
}
예제 #21
0
void Ray2Tests::testRectIntersections()
{
  Rect2 rect(Vector2(1.0f, 1.0f), Vector2(4.0f, 4.0f));
  
  Ray2 r1(Vector2(-1.0f, 2.0f), Vector2(1.0f, 0.0f)); // Enter from left
  Ray2 r2(Vector2(5.0f, 2.0f), Vector2(-1.0f, 0.0f)); // right
  
  Ray2 r3(Vector2(2.0f, -1.0f), Vector2(0.0f, 1.0f)); // bottom  
  Ray2 r4(Vector2(2.0f, 5.0f), Vector2(0.0f, -1.0f)); // top    
  
  Ray2 r5(Vector2(-1.0f, 2.0f), Vector2(-1.0f, 0.0f)); // Outside left
  Ray2 r6(Vector2(5.0f, 2.0f), Vector2(1.0f, 0.0f)); // right
  
  Ray2 r7(Vector2(2.0f, -1.0f), Vector2(0.0f, -1.0f)); // bottom  
  Ray2 r8(Vector2(2.0f, 5.0f), Vector2(0.0f, 1.0f)); // top    
  
  Ray2 r9(Vector2(2.0f, 2.0f), Vector2(1.0f, 1.0f)); // Inside out    
  Ray2 r10(Vector2(2.0f, 3.0f), Vector2(1.0f, -2.0f)); // Inside out      
  Ray2 r11(Vector2(1.2f, 3.0f), Vector2(-1.0f, -2.0f)); // Inside out        
  
  Ray2 r12(Vector2(1.2f, 5.0f), Vector2(1.2f, 1.0f)); // Outside
    
  CPTAssert(r1.intersect(rect));
  CPTAssert(r2.intersect(rect));
  CPTAssert(r3.intersect(rect));
  CPTAssert(r4.intersect(rect));      
  
  CPTAssert(!r5.intersect(rect));
  CPTAssert(!r6.intersect(rect));
  CPTAssert(!r7.intersect(rect));
  CPTAssert(!r8.intersect(rect));      

  CPTAssert(r9.intersect(rect));  
  CPTAssert(r10.intersect(rect));  
  CPTAssert(r11.intersect(rect));      
  
  CPTAssert(!r12.intersect(rect));        
}
예제 #22
0
static void fit3_read_block( PIA *pi, char * buf, int count )

{	int  k, a, b, c, d;

	switch (pi->mode) {

	case 0: w2(0xc); w0(0x10); w2(0x8); w2(0xc);
		for (k=0;k<count/2;k++) {
		    w2(0xd); a = r1();
		    w2(0xf); b = r1();
		    w2(0xc); c = r1();
		    w2(0xe); d = r1();
		    buf[2*k  ] = j44(a,b);
		    buf[2*k+1] = j44(c,d);
		}
		w2(0xc);
		break;

	case 1: w2(0xc); w0(0x90); w2(0x8); w2(0xc);
		w2(0xec); w2(0xee);
		for (k=0;k<count/2;k++) {
		    w2(0xef); a = r0();
		    w2(0xee); b = r0();
                    buf[2*k  ] = a;
                    buf[2*k+1] = b;
		}
		w2(0xec);
		w2(0xc);
		break;

	case 2: w2(0xc); w0(0x90); w2(0x8); w2(0xc);
                w2(0xec);
		for (k=0;k<count;k++) buf[k] = r4();
                w2(0xc);
		break;

	}
}
예제 #23
0
static void comm_read_block( PIA *pi, char * buf, int count )

{       int     i, l, h;

        switch (pi->mode) {
        
        case 0: w0(0x48); P1;
                for(i=0;i<count;i++) {
                        w0(0); w2(6); l = r1();
                        w0(0x80); h = r1(); w2(4);
                        buf[i] = j44(l,h);
                }
                break;

        case 1: w0(0x68); P1; w0(0);
                for(i=0;i<count;i++) {
                        w2(0x26); buf[i] = r0(); w2(0x24);
                }
		w2(4);
		break;
		
	case 2: w3(0x68); (void)r1(); w2(0x24);
		for (i=0;i<count;i++) buf[i] = r4();
		w2(4);
		break;

        case 3: w3(0x68); (void)r1(); w2(0x24);
                for (i=0;i<count/2;i++) ((u16 *)buf)[i] = r4w();
                w2(4);
                break;

        case 4: w3(0x68); (void)r1(); w2(0x24);
                for (i=0;i<count/4;i++) ((u32 *)buf)[i] = r4l();
                w2(4);
                break;
		
	}
}
예제 #24
0
void integration_rk4(listv2d& r, listv2d& v, listv2d& a, const listdouble& m, const double h, double ti) {
  listv2d r1(ITEMS);
  listv2d r2(ITEMS);
  listv2d r3(ITEMS);
  listv2d r4(ITEMS);

  listv2d v2(ITEMS);
  listv2d v3(ITEMS);
  listv2d v4(ITEMS);

  listv2d a2(ITEMS);
  listv2d a3(ITEMS);
  listv2d a4(ITEMS);

  for (int i = 0; i < ITEMS; i++) {
    r2[i] = r[i] + 0.5 * h * v[i];
    v2[i] = v[i] + 0.5 * h * a[i];
  }

  calc_accel_multiple(r2, a2, m);

  for (int i = 0; i < ITEMS; i++) {
    r3[i] = r[i] + 0.5 * h * v2[i];
    v3[i] = v[i] + 0.5 * h * a2[i];
  }
  calc_accel_multiple(r3, a3, m);

  for (int i = 0; i < ITEMS; i++) {
    r4[i] = r[i] + h * v3[i];
    v4[i] = v[i] + h * a3[i];
  }
  calc_accel_multiple(r4, a4, m);

  for (int i = 0; i < ITEMS; i++) {
    r[i] = r[i] + h/6.0 * (v[i] + 2.0 * v2[i] + 2.0 * v3[i] + v4[i]);
    v[i] = v[i] + h/6.0 * (a[i] + 2.0 * a2[i] + 2.0 * a3[i] + a4[i]);
  }
}
예제 #25
0
파일: main.cpp 프로젝트: ducthangho/3D
int test2()
{
	Node enclosingRect(0, 0, 40, 40);
	MyRectangle r1(15, 30);
	MyRectangle r2(20, 25);
	MyRectangle r3(9, 7);
	MyRectangle r4(20, 8);
	MyRectangle r5(10, 10);

	std::vector<MyRectangle> listRect;
	listRect.push_back(r1);
	listRect.push_back(r2);
	listRect.push_back(r3);
	listRect.push_back(r4);
	listRect.push_back(r5);

	Time tt;
	for (int i = 0; i < 20000; i++)
	{
		auto w = rand() % 30 + 1;
		auto h = rand() % 40 + 1;
		MyRectangle a(w, h);
		listRect.push_back(a);
	}
	std::cout << "Data creation time = " << tt.duration() << " ms" << std::endl;
	Time t;
	Node enclosingRect2(0,0,5000, 5000);
	enclosingRect2.pack(listRect, enclosingRect2);
	std::cout << "Execution time = " << t.duration() << " ms" << std::endl;

	for (auto& a : listRect)
	{
		a.print();
	}
	return 0;
}
예제 #26
0
Dialog::Dialog(QWidget *parent) : QWidget(parent) {
    ui.setupUi(this);
    ui.pushButton->setText("&Exit");

    connect(ui.pushButton, SIGNAL(clicked()), this, SLOT(myexit()));
    connect(ui.r1, SIGNAL(clicked()), this, SLOT(r1()));
    connect(ui.r2, SIGNAL(clicked()), this, SLOT(r2()));
    connect(ui.r3, SIGNAL(clicked()), this, SLOT(r3()));
    connect(ui.r4, SIGNAL(clicked()), this, SLOT(r4()));
    connect(ui.betrag, SIGNAL(valueChanged(int)), this, SLOT(summechanged(int)));
    connect(ui.tilgung, SIGNAL(valueChanged(int)), this, SLOT(tilgungchanged(int)));
    connect(ui.zinsen, SIGNAL(valueChanged(double)), this, SLOT(zinssatzchanged(double)));
    connect(ui.dateEdit, SIGNAL(dateChanged(QDate)), this, SLOT(berechne()));
    connect(ui.restlaufzeit, SIGNAL(valueChanged(int)), this, SLOT(berechne_restlaufzeit(int)));
    ui.r2->setChecked(true);
    ui.radioTilgung->setChecked(true);

    // restore settings from last session
    ui.dateEdit->setDate(QDate::currentDate());
    summechanged(55555); // in cents [euro]
    tilgungchanged(5555); // in cents [euro]
    zinssatzchanged(6.75); // prozent/100
    r2(); // 4 == all 3 months
}
예제 #27
0
void *show_yes_no(void *t, void *msg, void *y, void *n)
{
  p_ref r1(t),r2(msg),r3(y),r4(n);
  y=eval(y);
  n=eval(n);
  put_title(lstring_value(eval(t)));

  int x1=0,y1=0,x2=79,y2=25;
  bar(x1,y1+1,x2,y2,176,0x01);  
  center_tbox(eval(msg),0x1f);
  int key;
  char *yes=lstring_value(y);
  char *no=lstring_value(n);
  set_cursor(0,25);
  do
  {
    key=getch();
    set_cursor(0,0);
  } while (toupper(key)!=toupper(yes[0]) && toupper(key)!=toupper(no[0]));
  cls();
  if (toupper(key)==toupper(yes[0]))
    return true_symbol;
  else return NULL;
}
예제 #28
0
파일: TypesTests.cpp 프로젝트: smistad/SIPL
TEST(TypesTests, RegionConstructors) {
    // 2D
    Region r(10,10);
    EXPECT_EQ(0, r.offset.x);
    EXPECT_EQ(0, r.offset.y);
    EXPECT_EQ(0, r.offset.z);
    EXPECT_EQ(10, r.size.x);
    EXPECT_EQ(10, r.size.y);
    EXPECT_EQ(0, r.size.z);

    Region r2(1,1, 10,10);
    EXPECT_EQ(1, r2.offset.x);
    EXPECT_EQ(1, r2.offset.y);
    EXPECT_EQ(0, r2.offset.z);
    EXPECT_EQ(10, r2.size.x);
    EXPECT_EQ(10, r2.size.y);
    EXPECT_EQ(0, r2.size.z);

    // 3D
    Region r3(10,10,10);
    EXPECT_EQ(0, r3.offset.x);
    EXPECT_EQ(0, r3.offset.y);
    EXPECT_EQ(0, r3.offset.z);
    EXPECT_EQ(10, r3.size.x);
    EXPECT_EQ(10, r3.size.y);
    EXPECT_EQ(10, r3.size.z);

    Region r4(1,1,1, 10,10,10);
    EXPECT_EQ(1, r4.offset.x);
    EXPECT_EQ(1, r4.offset.y);
    EXPECT_EQ(1, r4.offset.z);
    EXPECT_EQ(10, r4.size.x);
    EXPECT_EQ(10, r4.size.y);
    EXPECT_EQ(10, r4.size.z);

}
예제 #29
0
void testSkipListNode()
{
	SkipListNode head_bottom;
	SkipListNode head_mid;
	SkipListNode head_roof;

	head_roof.down = &head_mid; head_mid.down = &head_bottom;
	head_bottom.up = &head_mid; head_mid.up = &head_roof;

	SkipListNode b1(1), b2(2), b3(3), b4(4);
	SkipListNode m1(1), m2(2), m4(4);
	SkipListNode r1(1), r4(4);

	r1.down = &m1; m1.down = &b1;
	b1.up = &m1; m1.up = &r1;

	r4.down = &m4; m4.down = &b4;
	b4.up = &m4; m4.up = &r4;

	m2.down = &b2;
	b2.up = &m2;

	head_bottom.next = &b1; b1.next = &b2; b2.next = &b3; b3.next = &b4;
	b4.prev = &b3; b3.prev = &b2; b2.prev = &b1; b1.prev = &head_bottom;

	head_mid.next = &m1; m1.next = &m2; m2.next = &m4;
	m4.prev = &m2; m2.prev = &m1; m1.prev = &head_mid;

	head_roof.next = &r1; r1.next = &r4;
	r4.prev = &r1; r1.prev = &head_roof;

	std::cout<<head_roof;
	std::cout<<head_mid;
	std::cout<<head_bottom;

}
예제 #30
0
void CTinyCadDoc::InvalidateRect( CDRect r, BOOL erase, int grow, BOOL outline_only )
{
	if (outline_only)
	{
		CDRect r1( r.left, r.top, r.right, r.top );
		CDRect r2( r.right, r.top, r.right, r.bottom );
		CDRect r3( r.right, r.bottom, r.left, r.bottom );
		CDRect r4( r.left, r.bottom, r.left, r.top );
		InvalidateRect( r1, erase, grow );
		InvalidateRect( r2, erase, grow );
		InvalidateRect( r3, erase, grow );
		InvalidateRect( r4, erase, grow );
	}
	else
	{
		doc_invalidrect hint;
		hint.r = r;
		hint.grow = grow;
		if (m_pParent)
		{
			m_pParent->UpdateAllViews( NULL, erase ? DOC_UPDATE_INVALIDRECTERASE : DOC_UPDATE_INVALIDRECT, &hint );
		}
	}
}