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); }
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); }
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); }
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; }