void Sieve::CalculateOffsets2(void) { if (factorbase.size() == 0) return; if (Q(0) % 2 == 0) { OffsetValue off2(0, 2, std::log(2.0)); offsets.push_back(off2); CalculateOffsetsRec(0, 2, 2, std::log(2.0)); } else { OffsetValue off2(1, 2, std::log(2.0)); offsets.push_back(off2); CalculateOffsetsRec(1, 2, 2, std::log(2.0)); } for (std::vector<unsigned long int>::iterator it = factorbase.begin() + 1; it != factorbase.end(); ++it) { mpz_class retv = Tonelli_Shanks(*it, N); mpz_class cof = *it - retv; retv = (retv - N_sqrt) % *it; if (retv < 0) retv += *it; cof = (cof - N_sqrt) % *it; if (cof < 0) cof += *it; if (retv < SIEVESIZE && retv >= 0) { OffsetValue off(retv.get_ui(), *it, std::log((float)*it)); offsets.push_back(off); CalculateOffsetsRec(retv.get_ui(), *it, *it, std::log((float)*it)); } if (cof < SIEVESIZE && cof >= 0) { OffsetValue off(cof.get_ui(), *it, std::log((float)*it)); offsets.push_back(off); CalculateOffsetsRec(cof.get_ui(), *it, *it, std::log((float)*it)); } } }
CSeqDBIdxFile::CSeqDBIdxFile(CSeqDBAtlas & atlas, const string & dbname, char prot_nucl, CSeqDBLockHold & locked) : CSeqDBExtFile(atlas, dbname + ".-in", prot_nucl, locked), m_NumOIDs (0), m_VolLen (0), m_MaxLen (0), m_MinLen (0), m_HdrLease (atlas), m_SeqLease (atlas), m_AmbLease (atlas), m_OffHdr (0), m_EndHdr (0), m_OffSeq (0), m_EndSeq (0), m_OffAmb (0), m_EndAmb (0) { Verify(); // Input validation if (dbname.empty()) { NCBI_THROW(CSeqDBException, eArgErr, "Error: dbname should not be an empty string."); } if ((prot_nucl != 'p') && (prot_nucl != 'n')) { NCBI_THROW(CSeqDBException, eArgErr, "Error: Invalid sequence type requested."); } TIndx offset = 0; Uint4 f_format_version = 0; Uint4 f_db_seqtype = 0; CSeqDBMemLease lease (m_Atlas); offset = x_ReadSwapped(lease, offset, & f_format_version, locked); TIndx off1(0), off2(0), off3(0), offend(0); try { if (f_format_version != 4) { NCBI_THROW(CSeqDBException, eFileErr, "Error: Not a valid version 4 database."); } offset = x_ReadSwapped(lease, offset, & f_db_seqtype, locked); offset = x_ReadSwapped(lease, offset, & m_Title, locked); offset = x_ReadSwapped(lease, offset, & m_Date, locked); offset = x_ReadSwapped(lease, offset, & m_NumOIDs, locked); offset = x_ReadSwapped(lease, offset, & m_VolLen, locked); offset = x_ReadSwapped(lease, offset, & m_MaxLen, locked); TIndx region_bytes = 4 * (m_NumOIDs + 1); off1 = offset; off2 = off1 + region_bytes; off3 = off2 + region_bytes; offend = off3 + region_bytes; } catch(...) { m_Atlas.RetRegion(lease); throw; } m_Atlas.RetRegion(lease); char db_seqtype = ((f_db_seqtype == 1) ? 'p' : 'n'); if (db_seqtype != x_GetSeqType()) { NCBI_THROW(CSeqDBException, eFileErr, "Error: requested sequence type does not match DB."); } m_OffHdr = off1; m_EndHdr = off2; m_OffSeq = off2; m_EndSeq = off3; if (db_seqtype == 'n') { m_OffAmb = off3; m_EndAmb = offend; } else { m_OffAmb = m_EndAmb = 0; } }
void Tie::layout() { qreal _spatium = spatium(); // // show short bow // if (startNote() == 0 || endNote() == 0) { if (startNote() == 0) { qDebug("Tie::layout(): no start note"); return; } Chord* c1 = startNote()->chord(); if (_slurDirection == MScore::Direction::AUTO) { if (c1->measure()->mstaff(c1->staffIdx())->hasVoices) { // in polyphonic passage, ties go on the stem side _up = c1->up(); } else _up = !c1->up(); } else _up = _slurDirection == MScore::Direction::UP ? true : false; fixupSegments(1); SlurSegment* segment = segmentAt(0); segment->setSpannerSegmentType(SpannerSegmentType::SINGLE); segment->setSystem(startNote()->chord()->segment()->measure()->system()); SlurPos sPos; slurPos(&sPos); segment->layout(sPos.p1, sPos.p2); return; } calculateDirection(); qreal w = startNote()->headWidth(); qreal xo1 = w * 1.12; qreal h = w * 0.3; qreal yo = _up ? -h : h; QPointF off1(xo1, yo); QPointF off2(0.0, yo); #if 0 // yet(?) unused QPointF ppos(pagePos()); #endif // TODO: cleanup SlurPos sPos; slurPos(&sPos); // p1, p2, s1, s2 QList<System*>* systems = score()->systems(); setPos(0, 0); //--------------------------------------------------------- // count number of segments, if no change, all // user offsets (drags) are retained //--------------------------------------------------------- int sysIdx1 = systems->indexOf(sPos.system1); if (sysIdx1 == -1) { qDebug("system not found"); foreach(System* s, *systems) qDebug(" search %p in %p", sPos.system1, s); return; } int sysIdx2 = systems->indexOf(sPos.system2); if (sysIdx2 < 0) sysIdx2 = sysIdx1; unsigned nsegs = sysIdx2 - sysIdx1 + 1; fixupSegments(nsegs); int i = 0; for (uint ii = 0; ii < nsegs; ++ii) { System* system = (*systems)[sysIdx1++]; if (system->isVbox()) continue; SlurSegment* segment = segmentAt(i); segment->setSystem(system); // case 1: one segment if (sPos.system1 == sPos.system2) { segment->layout(sPos.p1, sPos.p2); segment->setSpannerSegmentType(SpannerSegmentType::SINGLE); } // case 2: start segment else if (i == 0) { qreal x = system->bbox().width(); segment->layout(sPos.p1, QPointF(x, sPos.p1.y())); segment->setSpannerSegmentType(SpannerSegmentType::BEGIN); } // case 4: end segment else { qreal x = firstNoteRestSegmentX(system) - 2 * _spatium; segment->layout(QPointF(x, sPos.p2.y()), sPos.p2); segment->setSpannerSegmentType(SpannerSegmentType::END); } ++i; } }
int main(void) { //int flag; TWI_init_master(); _delay_ms(100); //sei(); //_delay_ms(1000); InitLCD(0); _delay_ms(50); LCDClear(); _delay_ms(10); uart_0_ini(); uart_1_ini(); Init_LED(); sei(); _delay_ms(50); LCD(0,0,"VIT"); _delay_ms(500); LCDClear(); _delay_ms(10); LCD(0,0,"SURACSHA"); _delay_ms(100); LCDClear(); _delay_ms(100); while (1) { LCDvar(0,0,Y_Data,5); if (Y_Data > 2000 || Y_Data < -2000 ||X_Data > 2000 || X_Data < -2000||Z_Data > 2000 || Z_Data < -2000) { _delay_ms(50); LCDClear(); _delay_ms(70); LCD(0,1,"accident Happned"); //flag=1; glow3(); glow4(); LCDGotoXY(0,0); LCDWriteString("Waiting for GPS"); while(valid!='A'); LCDClear(); _delay_ms(100); LCDGotoXY(0,0); LCDWriteString("Fix Available"); _delay_ms(2000); LCDClear(); _delay_ms(100); sendlocation("9503139115"); //break; } else {_delay_ms(70); LCDGotoXY(0,1); LCDWriteString("Normal"); glow2(); glow3(); _delay_ms(50); off2(); off3(); } }}