Esempio n. 1
0
CAMLprim value LFUN(scal_mat_stub)(
  value vM, value vN,
  value vALPHA,
  value vAR, value vAC, value vA)
{
  CAMLparam1(vA);
  integer GET_INT(M), GET_INT(N);

  if ( M > 0 && N > 0) {
    CREATE_NUMBER(ALPHA);
    MAT_PARAMS(A);
    INIT_NUMBER(ALPHA);
    caml_enter_blocking_section();
      if (rows_A == M) {
        integer MN = M * N;
        FUN(scal)(&MN, &ALPHA, A_data, &integer_one);
      } else {
        NUMBER *A_last = A_data + rows_A * N;
        do {
          FUN(scal)(&M, &ALPHA, A_data, &integer_one);
          A_data += rows_A;
        } while (A_data != A_last);
      }
    caml_leave_blocking_section();
  }

  CAMLreturn(Val_unit);
}
Esempio n. 2
0
CAMLprim value LFUN(syrk_diag_stub)(
  value vTRANS,
  value vN, value vK,
  value vAR, value vAC, value vA,
  value vOFSY,
  value vY,
  value vALPHA,
  value vBETA)
{
  CAMLparam2(vA, vY);

  integer GET_INT(N), GET_INT(K);
  char GET_INT(TRANS);

  CREATE_NUMBER(ALPHA);
  CREATE_NUMBER(BETA);

  MAT_PARAMS(A);
  VEC_PARAMS(Y);

  unsigned long iter_incr_A;
  integer dot_incr_A;
  NUMBER *last_Y = Y_data + N;

  INIT_NUMBER(ALPHA);
  INIT_NUMBER(BETA);

  caml_enter_blocking_section();  /* Allow other threads */

  if (TRANS == 'N') {
    iter_incr_A = 1;
    dot_incr_A = rows_A;
  } else {
    iter_incr_A = rows_A;
    dot_incr_A = 1;
  }

  COMMON_DIAG_LOOP(SYRK)

  caml_leave_blocking_section();  /* Disallow other threads */

  CAMLreturn(Val_unit);
}
Esempio n. 3
0
CAMLprim value LFUN(fill_mat_stub)(
  value vM, value vN,
  value vAR, value vAC, value vA,
  value vX)
{
  CAMLparam1(vA);
  integer GET_INT(M), GET_INT(N);

  if (M > 0 && N > 0) {
    int i;
    MAT_PARAMS(A);
    CREATE_NUMBER(X);
    NUMBER *A_last = A_data + rows_A * N;
    INIT_NUMBER(X);
    caml_enter_blocking_section();
      do {
        for (i = 0; i < M; ++i) A_data[i] = X;
        A_data += rows_A;
      } while (A_data != A_last);
    caml_leave_blocking_section();
  }

  CAMLreturn(Val_unit);
}
Esempio n. 4
0
static void lpc_tree_number P2(parse_node_t *, dest, int, num) {
    CREATE_NUMBER(dest->v.expr, num);
}
BOOL GameSelectWorld::init(DWORD currentTime, LPDIRECTDRAW directDrawObject)
{
    INIT_WORLD();

    for (int i=0; i<10; i++)
    {
        char filename[20];
        sprintf(filename,"%d.bmp",i);

        itsNumberImages[i] = new ScreenImage();
        itsNumberImages[i]->init(directDrawObject,its8BitReader,filename,&colorKey);
        itsImages->addElement(itsNumberImages[i]);
    }

    // room 0
    NEW_ROOM("CustomGame1",bgImage,56,FALSE);

    ADD_WALL(0,0,640,32,56);

    ADD_WALL(0,0,32,384,56);
    ADD_WALL(608,0,32,384,56);

    ADD_WALL(0,352,256,32,56);
    ADD_WALL(384,352,256,32,56);

    END_NEW_ROOM(TRUE,FALSE);

    // room 1
    NEW_ROOM("CustomGame2",bgImage,145,FALSE);

    ADD_WALL(0,0,256,32,145);
    ADD_WALL(384,0,256,32,145);

    ADD_WALL(0,352,640,32,145);

    // IMPORTANT!!! The order of the walls must stay the same!
    ADD_WALL(24,0,4,384,0);
    ADD_WALL(616,0,4,384,0);

    ADD_WALL(544,0,32,320,145);
    ADD_WALL(576,0,64,256,145);
    ADD_WALL(608,288,32,96,145);


    END_NEW_ROOM(FALSE,FALSE);

    // room 2
    NEW_ROOM("SelectGameCustom",bgImage,3,FALSE);
    END_NEW_ROOM(FALSE,FALSE);

    // room 3
    NEW_ROOM("SelectGameCustomDifficult",bgImage,3,FALSE);
    END_NEW_ROOM(FALSE,FALSE);

    MAKE_ROOM_CONNECTION(0,1,RoomConnector::CONNECTION_LOCATION_BOTTOM);

    MAKE_ROOM_CONNECTION(1,0,RoomConnector::CONNECTION_LOCATION_TOP);
    MAKE_ROOM_CONNECTION(1,2,RoomConnector::CONNECTION_LOCATION_LEFT);
    MAKE_ROOM_CONNECTION(1,3,RoomConnector::CONNECTION_LOCATION_RIGHT);


    for (int j=0; j<10; j++)
    {
        int y = 34 + (j*32);
        if ( ((theNumberOfGames) <= 9) && j == 0)
            continue;
        CREATE_NUMBER(64,y,0,j);
        if ((theNumberOfGames) > 9)
        {
            CREATE_NUMBER(560,y,0,j);
        }
        else if ((theNumberOfGames) <= j)
        {
            break;
        }
    }

    CREATE_EXTRA_ITEM_THINGY(145,290,1);
    CREATE_TEXT(8,162,1,"easy.bmp");
    CREATE_TEXT(486,330,1,"difficult.bmp");

    itsPlayerStartX = 312;
    itsPlayerStartY = 64;
    CREATE_PLAYER();

    END_WORLD();

    theEventDispatcher.registerForEvent(EventDispatcher::EVENT_TYPE_DROP,this,GameObject::GAMEOBJECT_TYPE_NUMBER);
    theEventDispatcher.registerForEvent(EventDispatcher::EVENT_TYPE_GRAB,this,GameObject::GAMEOBJECT_TYPE_NUMBER);
    theEventDispatcher.registerForEvent(EventDispatcher::EVENT_TYPE_ENTER,this,GameObject::GAMEOBJECT_TYPE_PLAYER);
    return TRUE;

}