void setRegionHeight (int height) { if (isFlipY()) { setV(v2 + height / (float) texture.getHeight()); } else { setV2(v + height / (float) texture.getHeight()); } }
long long setV(int node, int left, int right, int v) { long long change; if ( start[node] == finish[node] ) { arr[start[node]-1] = v; change = value[node]; value[node] = (long long)(v); value[node] *= value[node]; return -change + value[node]; } change = 0l; if ( left <= middle[node]) { change += setV(node*2, left, miN(middle[node], right), v ); } if ( right >= middle[node] +1 ) { change += setV(node*2+1, maX(middle[node]+1 , left),right, v ); } value[node] += change; return change; }
void SplitterWindow2::setMinSize(wxWindow* window, const wxSize& minSize) { assert(m_splitMode != SplitMode_Unset); assert(minSize.x >= 0 && minSize.y != 0); wxSize splitterMinSize; for (size_t i = 0; i < NumWindows; ++i) { if (m_windows[i] == window) m_minSizes[i] = minSize; setH(splitterMinSize, h(splitterMinSize) + h(m_minSizes[i])); setV(splitterMinSize, std::max(v(splitterMinSize), v(m_minSizes[i]))); } SetMinClientSize(splitterMinSize); }
int main() { int nCases, N, Q, cm, st, nd, val; s(nCases); for ( int nC = 0; nC < nCases; nC++ ) { s(N); s(Q); for ( int i = 0; i < N; i++ ) { scanf("%d", arr + i); } build(1, 1, N); printf("Case %d:\n", nC+1); for ( int i = 0; i < Q; i++ ) { s(cm); s(st); s(nd); if ( cm == 0) { s(val); setV(1, st, nd, val); } else if ( cm == 1) { s(val); add(1, st, nd, val); } else { printf("%d\n", query(1, st, nd)); } } } return 0; }
void readInput() { NodeList NList; cout << "> "; cout.flush(); string line, command; getline (cin, line); // Get a line from standard input while (!cin.eof()) { // Put the line in a stringstream for parsing // Making a new stringstream for each line so flags etc. are in a known state stringstream lineStream (line); lineStream >> command; //call function depending on command if(command == "insertR") insertR(lineStream, NList); else if (command == "setV") setV(lineStream, NList); else if (command == "unsetV") unsetV(lineStream, NList); else if (command == "solve") solve(lineStream, NList); else if (command == "modifyR") modifyR(lineStream, NList); else if (command == "printR") printR(lineStream, NList); else if (command == "printNode") printNode(lineStream, NList); else if (command == "deleteR") deleteR(lineStream, NList); else if (command == "draw") draw(NList); else cout << "Error: invalid command" << endl; command = " "; cout << "> "; cout.flush(); getline (cin, line); } // End input loop until EOF. return; }
void GlyphSliderGroup::addSlicesMap(int x, int y, int z, int alpha, int value) { QVBoxLayout* tempOutLayout = new QVBoxLayout(); QHBoxLayout* tempLayout = new QHBoxLayout(); QPushButton* button = new QPushButton("Remove"); QPushButton* buttonx = new QPushButton("X"); QPushButton* buttony = new QPushButton("Y"); QPushButton* buttonz = new QPushButton("Z"); QPushButton* buttonv = new QPushButton("V"); QPushButton* buttont = new QPushButton("Toggle"); button -> setCheckable(1); buttonx -> setCheckable(1); buttony -> setCheckable(1); buttonz -> setCheckable(1); buttonv -> setCheckable(1); buttont -> setCheckable(1); buttonz -> setChecked(1); MapNode* current; QSlider* slider = new QSlider(); current = cmaplist -> addMap(x, y, z, alpha, value); current -> setButtons(buttonx, buttony, buttonz, buttonv); slider -> setMaximum(256); slider -> setMinimum(1); slider -> setOrientation(Qt::Horizontal); connect(slider, SIGNAL(valueChanged(int)), current, SLOT(uValue(int))); connect(slider, SIGNAL(sliderPressed()), current, SLOT(setActive())); connect(button, SIGNAL(clicked()), button, SLOT(close())); connect(button, SIGNAL(clicked()), buttonx, SLOT(close())); connect(button, SIGNAL(clicked()), buttony, SLOT(close())); connect(button, SIGNAL(clicked()), buttonz, SLOT(close())); connect(button, SIGNAL(clicked()), buttonv, SLOT(close())); connect(button, SIGNAL(clicked()), buttont, SLOT(close())); connect(button, SIGNAL(clicked()), slider, SLOT(close())); connect(button, SIGNAL(clicked()), current, SLOT(selfDestruct())); connect(buttonx, SIGNAL(clicked()), current, SLOT(setX())); connect(buttony, SIGNAL(clicked()), current, SLOT(setY())); connect(buttonz, SIGNAL(clicked()), current, SLOT(setZ())); connect(buttonv, SIGNAL(clicked()), current, SLOT(setV())); connect(buttont, SIGNAL(clicked()), current, SLOT(setToggle())); connect(current, SIGNAL(closeMe()), button, SLOT(close())); connect(current, SIGNAL(closeMe()), buttonx, SLOT(close())); connect(current, SIGNAL(closeMe()), buttony, SLOT(close())); connect(current, SIGNAL(closeMe()), buttonz, SLOT(close())); connect(current, SIGNAL(closeMe()), buttonv, SLOT(close())); connect(current, SIGNAL(closeMe()), buttont, SLOT(close())); connect(current, SIGNAL(closeMe()), slider, SLOT(close())); //tempLayout->addWidget(slider); tempOutLayout->addWidget(slider); tempLayout->addWidget(buttonx); tempLayout->addWidget(buttony); tempLayout->addWidget(buttonz); tempLayout->addWidget(buttonv); tempLayout->addWidget(buttont); tempLayout->addWidget(button); tempOutLayout->addLayout(tempLayout); layout->addLayout(tempOutLayout); return; }
void multiplyScalar(double c) { for (int i = 1; i <= n(); ++i) { setV(i, V(i) * c); } }
void setRegionY (int y) { setV(y / (float) texture.getHeight()); }
static int analop_esil(RAnal *a, RAnalOp *op, ut64 addr, const ut8 *buf) { int ret = -1; ut8 opcode = buf[0]; if (!op) { return 2; } r_strbuf_init (&op->esil); r_strbuf_set (&op->esil, ""); switch (opcode >> 4) { case H8300_CMP_4BIT: //acc. to manual this is how it's done, could use == in esil r_strbuf_appendf(&op->esil, "0x%02x,r%u%c,-", imm, rdB(0)); //setZ setV("%o"); setN; setHb_B; setCb_B; maskB(0); setZ; return 0; case H8300_OR_4BIT: r_strbuf_appendf(&op->esil, "0x%02x,r%u%c,|=", imm, rdB(0)); //setZ setV("0"); setN; maskB(0); setZ; return 0; case H8300_XOR_4BIT: r_strbuf_appendf(&op->esil, "0x%02x,r%u%c,^=", imm, rdB(0)); //setZ setN; setV("0"); maskB(0); setZ; return 0; case H8300_AND_4BIT: r_strbuf_appendf(&op->esil, "0x%02x,r%u%c,&=", imm, rdB(0)); //setZ setN; setV("0"); maskB(0); setZ; return 0; case H8300_ADD_4BIT: r_strbuf_appendf(&op->esil, "0x%02x,r%u%c,+=", imm, rdB(0)); //setZ setV("%o"); setN; setH_B; setC_B; maskB(0); setZ; return 0; case H8300_ADDX_4BIT: r_strbuf_appendf(&op->esil, "0x%02x,C,+,r%u%c,+= ", imm, rdB(0), rdB(0)); //setZ setV("%o"); setN; setH_B; setC_B; maskB(0); setZ; return 0; case H8300_SUBX_4BIT: //Rd – imm – C → Rd r_strbuf_appendf(&op->esil, "0x%02x,r%u%c,-=,C,r%u%c,-=", imm, rdB(0), rdB(0)); //setZ setV("%o"); setN; setHb_B; setCb_B; maskB(0); setZ; return 0; case H8300_MOV_4BIT_2: /*TODO*/ case H8300_MOV_4BIT_3: /*TODO*/ case H8300_MOV_4BIT: /*TODO*/ return 0; default: break; }; switch (opcode) { case H8300_NOP: r_strbuf_set (&op->esil, ","); return 0; case H8300_SLEEP: /* TODO */ return 0; case H8300_STC: r_strbuf_appendf(&op->esil, "ccr,r%u%c,=", rdB(1)); return 0; case H8300_LDC: r_strbuf_appendf(&op->esil, "r%u%c,ccr,=", rdB(1)); return 0; case H8300_ORC: r_strbuf_appendf(&op->esil, "0x%02x,ccr,|=", imm); return 0; case H8300_XORC: r_strbuf_appendf(&op->esil, "0x%02x,ccr,^=", imm); return 0; case H8300_ANDC: r_strbuf_appendf(&op->esil, "0x%02x,ccr,&=", imm); return 0; case H8300_LDC_2: r_strbuf_appendf(&op->esil, "0x%02x,ccr,=", imm); return 0; case H8300_ADDB_DIRECT: r_strbuf_appendf(&op->esil, "r%u%c,r%u%c,+=", rsB(), rdB(1)); setH_B; setV("%o"); setC_B ; setN; //setZ; maskB(1); setZ; return 0; case H8300_ADDW_DIRECT: r_strbuf_appendf (&op->esil, "r%u,r%u,+=", rs(), rd()); setH_W; setV("%o"); setC_W; setN; mask(); setZ; return 0; case H8300_INC: r_strbuf_appendf(&op->esil, "1,r%u%c,+=", rdB(1)); //setZ setV("%o") ; setN; maskB(1); setZ; return 0; case H8300_ADDS: r_strbuf_appendf (&op->esil, "%d,r%u,+=", ((buf[1] & 0xf0) == 0x80) ? 2 : 1, rd()); return 0; case H8300_MOV_1: /*TODO check if flags are set internally or not*/ r_strbuf_appendf (&op->esil, "r%u%c,r%u%c,=", rsB(), rdB(1)); //setZ setN; maskB(1); setZ; return 0; case H8300_MOV_2: r_strbuf_appendf(&op->esil, "r%u,r%u,=", rs(), rd()); //setZ setN; mask(); setZ; return 0; case H8300_ADDX: //Rd + (Rs) + C → Rd r_strbuf_appendf (&op->esil, "r%u%c,C,+,r%u%c,+=", rsB(), rdB(1), rdB(1)); //setZ setV("%o"); setN; setH_B ; setC_B; maskB(1); setZ; return 0; case H8300_DAA: /*TODO*/ return 0; case H8300_SHL: /*TODO*/ return 0; case H8300_SHR: /*TODO*/ return 0; case H8300_ROTL: /*TODO*/ return 0; case H8300_ROTR: /*TODO*/ return 0; case H8300_OR: r_strbuf_appendf(&op->esil, "r%u%c,r%u%c,|=", rsB(), rdB(1)); //setZ setV("0"); setN; maskB(1); setZ; return 0; case H8300_XOR: r_strbuf_appendf(&op->esil, "r%u%c,r%u%c,^=", rsB(), rdB(1)); //setZ setV("0") ; setN; maskB(1); setZ; return 0; case H8300_AND: r_strbuf_appendf(&op->esil, "r%u%c,r%u%c,&=", rsB(), rdB(1)); //setZ setV("0"); setN; maskB(1); setZ; return 0; case H8300_NOT_NEG: if ((buf[1] & 0xf0) == 0x80) { //NEG r_strbuf_appendf(&op->esil, "r%u%c,0,-,r%u%c,=", rdB(1), rdB(1)); //setZ setHb_B; setV("%o") ; setCb_B ; setN; maskB(1); setZ; } else if ((buf[1] & 0xf0) == 0x00) { //NOT r_strbuf_appendf(&op->esil, "r%u%c,!=", rdB(1)); //setZ setV("0"); setN; maskB(1); setZ; } return 0; case H8300_SUB_1: r_strbuf_appendf(&op->esil, "r%u%c,r%u%c,-=", rsB(), rdB(1)); //setZ setHb_B; setV("%o"); setCb_B; setN; maskB(1); setZ; return 0; case H8300_SUBW: r_strbuf_appendf (&op->esil, "r%u,r%u,-=", rs(), rd()); setHb_W; setV ("%o"); setCb_W; setN; mask(); setZ; return 0; case H8300_DEC: r_strbuf_appendf (&op->esil, "1,r%u%c,-=", rdB(1)); //setZ setV("%o"); setN; maskB(1); setZ; return 0; case H8300_SUBS: r_strbuf_appendf(&op->esil, "%d,r%u,-=", ( (buf[1] & 0xf0) == 0x80) ? 2 : 1, rd()); return 0; case H8300_CMP_1: r_strbuf_appendf(&op->esil, "r%u%c,r%u%c,-", rsB(), rdB(1)); //setZ setHb_B; setV("%o"); setCb_B; setN; maskB(1); setZ; return 0; case H8300_CMP_2: r_strbuf_appendf(&op->esil, "r%u,r%u,-", rs(), rd()); //setZ setHb_W; setV("%o"); setCb_W; setN; mask(); setZ; return 0; case H8300_SUBX: //Rd – (Rs) – C → Rd r_strbuf_appendf(&op->esil, "r%u%c,r%u%c,-=,C,r%u%c,-=", rsB(), rdB(1), rdB(1)); //setZ setHb_B; setV("%o"); setCb_B; setN; maskB(1); setZ; return 0; case H8300_DAS: /*TODO*/ return 0; case H8300_BRA: r_strbuf_appendf(&op->esil, "0x%02x,pc,+=", buf[1]); return 0; case H8300_BRN: r_strbuf_appendf(&op->esil,","); return 0; case H8300_BHI: r_strbuf_appendf(&op->esil, "C,Z,|,!,?{0x%02x,pc,+=}", buf[1]); return 0; case H8300_BLS: r_strbuf_appendf(&op->esil, "C,Z,|,?{0x%02x,pc,+=}", buf[1]); return 0; case H8300_BCC: r_strbuf_appendf(&op->esil, "C,!,?{0x%02x,pc,+=}", buf[1]); return 0; case H8300_BCS: r_strbuf_appendf(&op->esil, "C,?{0x%02x,pc,+=}", buf[1]); return 0; case H8300_BNE: r_strbuf_appendf(&op->esil, "Z,!,?{0x%02x,pc,+=}", buf[1]); return 0; case H8300_BEQ: r_strbuf_appendf(&op->esil, "Z,?{0x%02x,pc,+=}", buf[1]); return 0; case H8300_BVC: r_strbuf_appendf(&op->esil, "V,!,?{0x%02x,pc,+=}", buf[1]); return 0; case H8300_BVS: r_strbuf_appendf(&op->esil, "V,?{0x%02x,pc,+=}", buf[1]); return 0; case H8300_BPL: r_strbuf_appendf(&op->esil, "N,!,?{0x%02x,pc,+=}", buf[1]); return 0; case H8300_BMI: r_strbuf_appendf(&op->esil, "N,?{0x%02x,pc,+=}", buf[1]); return 0; case H8300_BGE: r_strbuf_appendf(&op->esil, "N,V,^,!,?{0x%02x,pc,+=}", buf[1]); return 0; case H8300_BLT: r_strbuf_appendf(&op->esil, "N,V,^,?{0x%02x,pc,+=}", buf[1]); return 0; case H8300_BGT: r_strbuf_appendf(&op->esil, "Z,N,V,^,|,!,?{0x%02x,pc,+=}", buf[1]); return 0; case H8300_BLE: r_strbuf_appendf(&op->esil, "Z,N,V,^,|,?{0x%02x,pc,+=}", buf[1]); return 0; case H8300_MULXU: //Refer to pg. 100 of the manual linked at the beginning r_strbuf_appendf(&op->esil, "r%u%c,r%ul,*,r%u,=", rsB(), rd(), rd()); return 0; case H8300_DIVXU: /*TODO*/ return 0; case H8300_RTS: /*TODO*/ return 0; case H8300_BSR: /*TODO*/ return 0; case H8300_RTE: /*TODO*/ return 0; case H8300_JMP_1: /*TODO*/ return 0; case H8300_JMP_2: /*TODO*/ return 0; case H8300_JMP_3: /*TODO*/ return 0; case H8300_JSR_1: /*TODO*/ return 0; case H8300_JSR_2: /*TODO*/ return 0; case H8300_JSR_3: /*TODO*/ return 0; //NOTE - cases marked with TODO have mem. access also(not impl.) case H8300_BSET_1: /*TODO*/ //set rs&0x7th bit of rd. expr.- rd|= 1<<(rs&0x07) r_strbuf_appendf(&op->esil, "0x7,r%u%c,&,1,<<,r%u%c,|=", rsB(), rdB(1)); return 0; case H8300_BNOT_1: /*TODO*/ //invert rs&0x7th bit of rd. expr.- rd^= 1<<(rs&0x07) r_strbuf_appendf(&op->esil,"0x07,r%u%c,&,1,<<,r%u%c,^=", rsB(), rdB(1)); return 0; case H8300_BCLR_R2R8: /*TODO*/ //clear rs&0x7th bit of rd. expr.- rd&= !(1<<(rs&0x07)) r_strbuf_appendf(&op->esil, "0x7,r%u%c,&,1,<<,!,r%u%c,&=", rsB(), rdB(1)); return 0; case H8300_BTST_R2R8: /*TODO*/ //¬ (<Bit No.> of <EAd>) → Z, extract bit value and shift it back r_strbuf_appendf(&op->esil, "0x7,r%u%c,&,0x7,r%u%c,&,1,<<,r%u%c,&,>>,!,Z,=", rsB(), rsB(), rdB(1)); return 0; case H8300_BST_BIST: /*TODO*/ if (!(buf[1] & 0x80)) { //BST r_strbuf_appendf(&op->esil,"%d,C,<<,r%u%c,|=",rs(),rdB(1)); } else { //BIST r_strbuf_appendf (&op->esil, "%d,C,!,<<,r%u%c,|=", rs (), rdB (1)); } return 0; case H8300_MOV_R82IND16: /*TODO*/ return 0; case H8300_MOV_IND162R16: /*TODO*/ return 0; case H8300_MOV_R82ABS16: /*TODO*/ return 0; case H8300_MOV_ABS162R16: /*TODO*/ return 0; case H8300_MOV_R82RDEC16: /*TODO*/ return 0; case H8300_MOV_INDINC162R16: /*TODO*/ return 0; case H8300_MOV_R82DISPR16: /*TODO*/ return 0; case H8300_MOV_DISP162R16: /*TODO*/ return 0; case H8300_BSET_2: /*TODO*/ //set imm bit of rd. expr.- rd|= (1<<imm) r_strbuf_appendf(&op->esil, "%d,1,<<,r%u%c,|=", rs(), rdB(1)); return 0; case H8300_BNOT_2: /*TODO*/ //inv. imm bit of rd. expr.- rd^= (1<<imm) r_strbuf_appendf(&op->esil,"%d,1,<<,r%u%c,^=",rs(),rdB(1)); return 0; case H8300_BCLR_IMM2R8: //clear imm bit of rd. expr.- rd&= !(1<<imm) r_strbuf_appendf(&op->esil, "%d,1,<<,!,r%u%c,&=", rs(), rdB(1)); return 0; case H8300_BTST: /*TODO*/ //see BTST above r_strbuf_appendf(&op->esil, "%d,%d,1,<<,r%u%c,&,>>,!,Z,=", rs(), rs(), rdB(1)); return 0; case H8300_BOR_BIOR: /*TODO*/ if (!(buf[1] & 0x80)) { //BOR //C|=(rd&(1<<imm))>>imm r_strbuf_appendf(&op->esil, "%d,%d,1,<<,r%u%c,&,>>,C,|=", rs(), rs(), rdB(1)); } else { //BIOR //C|=!(rd&(1<<imm))>>imm r_strbuf_appendf (&op->esil, "%d,%d,1,<<,r%u%c,&,>>,!,C,|=", rs (), rs (), rdB (1)); } return 0; case H8300_BXOR_BIXOR: /*TODO*/ if (!(buf[1] & 0x80)) { //BXOR //C^=(rd&(1<<imm))>>imm r_strbuf_appendf(&op->esil, "%d,%d,1,<<,r%u%c,&,>>,C,^=", rs(), rs(), rdB(1)); } else { //BIXOR r_strbuf_appendf (&op->esil, "%d,%d,1,<<,r%u%c,&,>>,!,C,^=", rs (), rs (), rdB (1)); } return 0; case H8300_BAND_BIAND: /*TODO check functionality*/ //C&=(rd&(1<<imm))>>imm if (!(buf[1] & 0x80)) { //BAND r_strbuf_appendf(&op->esil, "%d,%d,1,<<,r%u%c,&,>>,C,&=", rs(), rs(), rdB(1)); } else { //BIAND r_strbuf_appendf (&op->esil, "%d,%d,1,<<,r%u%c,&,>>,!,C,&=", rs (), rs (), rdB (1)); } return 0; case H8300_BILD_IMM2R8: /*TODO*/ if (!(buf[1] & 0x80)) { //BLD r_strbuf_appendf(&op->esil, "%d,%d,1,<<,r%u%c,&,>>,C,=", rs(), rs(), rdB(1)); } else { //BILD r_strbuf_appendf (&op->esil, "%d,%d,1,<<,r%u%c,&,>>,!,C,=", rs (), rs (), rdB (1)); } return 0; case H8300_MOV_IMM162R16: /*TODO*/ return 0; case H8300_EEPMOV: /*TODO*/ return 0; case H8300_BIAND_IMM2IND16: /*TODO*/ return 0; case H8300_BCLR_R2IND16: /*TODO*/ return 0; case H8300_BIAND_IMM2ABS8: /*TODO*/ return 0; case H8300_BCLR_R2ABS8: /*TODO*/ return 0; default: break; }; return ret; }
void CDispRigidBody::performDragnDrop(DragnDropCollider * collider) { real_t dt = collider->dt(); setV(math::Vector<2>(collider->dx()/dt, collider->dy()/dt)); // setPos(getX() + collider->getDx(), getY() + collider->getDy()); }