本文整理汇总了C++中ArraySize函数的典型用法代码示例。如果您正苦于以下问题:C++ ArraySize函数的具体用法?C++ ArraySize怎么用?C++ ArraySize使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了ArraySize函数的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: getTempPath
// Compiles HLSL code into executable binaries
ShaderBlob *Renderer::compileToBinary(gl::InfoLog &infoLog, const char *hlsl, const char *profile, UINT optimizationFlags, bool alternateFlags)
{
if (!hlsl)
{
return NULL;
}
HRESULT result = S_OK;
UINT flags = 0;
std::string sourceText;
if (gl::perfActive())
{
flags |= D3DCOMPILE_DEBUG;
#ifdef NDEBUG
flags |= optimizationFlags;
#else
flags |= D3DCOMPILE_SKIP_OPTIMIZATION;
#endif
std::string sourcePath = getTempPath();
sourceText = std::string("#line 2 \"") + sourcePath + std::string("\"\n\n") + std::string(hlsl);
writeFile(sourcePath.c_str(), sourceText.c_str(), sourceText.size());
}
else
{
flags |= optimizationFlags;
sourceText = hlsl;
}
// Sometimes D3DCompile will fail with the default compilation flags for complicated shaders when it would otherwise pass with alternative options.
// Try the default flags first and if compilation fails, try some alternatives.
const static UINT extraFlags[] =
{
0,
D3DCOMPILE_AVOID_FLOW_CONTROL,
D3DCOMPILE_PREFER_FLOW_CONTROL
};
const static char * const extraFlagNames[] =
{
"default",
"avoid flow control",
"prefer flow control"
};
int attempts = alternateFlags ? ArraySize(extraFlags) : 1;
pD3DCompile compileFunc = reinterpret_cast<pD3DCompile>(mD3DCompileFunc);
for (int i = 0; i < attempts; ++i)
{
ID3DBlob *errorMessage = NULL;
ID3DBlob *binary = NULL;
result = compileFunc(hlsl, strlen(hlsl), gl::g_fakepath, NULL, NULL,
"main", profile, flags | extraFlags[i], 0, &binary, &errorMessage);
if (errorMessage)
{
const char *message = (const char*)errorMessage->GetBufferPointer();
infoLog.appendSanitized(message);
TRACE("\n%s", hlsl);
TRACE("\n%s", message);
errorMessage->Release();
errorMessage = NULL;
}
if (SUCCEEDED(result))
{
return (ShaderBlob*)binary;
}
else
{
#if defined(ANGLE_PLATFORM_WINRT)
if (result == E_OUTOFMEMORY)
#else
if (result == D3DERR_OUTOFVIDEOMEMORY || result == E_OUTOFMEMORY)
#endif // #if defined(ANGLE_PLATFORM_WINRT)
{
return gl::error(GL_OUT_OF_MEMORY, (ShaderBlob*) NULL);
}
infoLog.append("Warning: D3D shader compilation failed with ");
infoLog.append(extraFlagNames[i]);
infoLog.append(" flags.");
if (i + 1 < attempts)
{
infoLog.append(" Retrying with ");
infoLog.append(extraFlagNames[i + 1]);
infoLog.append(".\n");
}
}
}
return NULL;
}
示例2: ArraySize
void DL_Jww::CreateMoji(DL_CreationInterface* creationInterface, CDataMoji& DMoji)
{
string lName = HEX[DMoji.m_nGLayer > ArraySize(HEX)-1 ? ArraySize(HEX)-1: DMoji.m_nGLayer] + "-" +
HEX[DMoji.m_nLayer > ArraySize(HEX)-1 ? ArraySize(HEX)-1: DMoji.m_nLayer];
// add layer
creationInterface->addLayer(DL_LayerData(lName,0));
int width;
if(DMoji.m_nPenWidth > 26)
width = 0;
else
width = DMoji.m_nPenWidth;
int color = colTable[DMoji.m_nPenColor > ArraySize(colTable)-1 ? ArraySize(colTable)-1 : DMoji.m_nPenColor];
attrib = DL_Attributes(values[8], // layer
color, // color
width, // width
lTable[DMoji.m_nPenStyle > ArraySize(lTable)-1 ? ArraySize(lTable)-1 : DMoji.m_nPenStyle]); // linetype
creationInterface->setAttributes(attrib);
creationInterface->setExtrusion(0.0, 0.0, 1.0, 0.0 );
DL_TextData d(
// insertion point
DMoji.m_start.x, DMoji.m_start.y, 0.0,
// alignment point
0.0, 0.0, 0.0,
// height
DMoji.m_dSizeY,
// x scale
1.0,
// generation flags
0,
// h just
0,
// v just
0,
// text
DMoji.m_string,
// style
string("japanese"),
// angle
DMoji.m_degKakudo / 180.0 * M_PI);
creationInterface->addText(d);
#ifdef FINISHED
QTextCodec* codec = QTextCodec::codecForName("SJIS");
RS_TextData data3(RS_Vector(0.0, 0.0),
10,//double height,
10,//double width,
RS2::VAlignMiddle,
RS2::HAlignCenter,
RS2::LeftToRight,
RS2::AtLeast,
1.0,//double lineSpacingFactor,
RS_String(""),//const RS_String& text,
RS_String(""),
0.0,//double angle,
RS2::Update);
RS_Text* text;
data3.insertionPoint = RS_Vector(DMoji.m_start.x, DMoji.m_start.y);
data3.height = DMoji.m_dSizeY;
data3.width = DMoji.m_dSizeX;
data3.valign = RS2::VAlignBottom;//VAlignMiddle;
data3.halign = RS2::HAlignLeft;//HAlignCenter;
data3.drawingDirection = RS2::LeftToRight;
data3.lineSpacingStyle = RS2::Exact;
data3.lineSpacingFactor = DMoji.m_dKankaku;//1.0;
//コード変換
size_t left = DMoji.m_string.length();
char* sjis = (char *)DMoji.m_string.c_str();
char buf[200];
//memset(buf, NULL, 1000);
char* p = buf;
size_t bufleft = 200;
#ifdef _WINDOWS
// エンコーディングの変換:iconvを使う場合
iconv_t cd = iconv_open(UTF8_CES, SHIFTJIS_CES);
#ifdef DEBUG
printf("sjis = %x, p = %x\n", sjis, p);
#endif
size_t r = iconv(cd, (const char **)(&sjis), &left, &p, &bufleft);//const_cast<char**>
#ifdef DEBUG
printf("sjis = %x, p = %x\n", sjis, p);
printf("sjis = %x %x %x %x, p = %x %x %x %x\n", sjis[0],sjis[1],sjis[2],sjis[3], buf[0],buf[1],buf[2],buf[3]);
printf("r = %d, left = %d, bufleft = %d\n", r, left, bufleft);
#endif
*p = '\0';
iconv_close(cd);
#else
// int ires = SJIS2UTF8N(sjis,buf,bufleft);
int nBytesOut;
strcpy(buf,(const char *)CUnicodeF::sjis_to_euc((const unsigned char *)sjis/*, &nBytesOut*/));
// QTextCodec* codec = QTextCodec::codecForName("eucJP");
// data3.text = codec->toUnicode(buf);
#endif
// data3.text = codec->toUnicode(sjis);
data3.text = RS_String::fromUtf8(buf);
data3.style = RS_String("japanese-euc");
data3.angle = DMoji.m_degKakudo / 180.0 * M_PI;
//.........这里部分代码省略.........
示例3: encodeExpToDjango
void encodeExpToDjango(char *outFile)
/* Write out Django model declaration for encodeExp into outfile. */
{
FILE *f = mustOpen(outFile, "w");
/* Write series model. */
fprintf(f, "\n");
fprintf(f, "class Series(models.Model):\n");
fprintf(f, " \"\"\"\n");
fprintf(f, " Represents a series of experiments of the same type done for\n");
fprintf(f, " the same project.\n");
fprintf(f, " \"\"\"\n");
fprintf(f, " term = models.CharField(max_length=50)\n");
fprintf(f, " dataType = models.CharField(max_length=40)\n");
fprintf(f, " grantee = models.CharField(max_length=255)\n");
fprintf(f, "\n");
fprintf(f, " class Meta:\n");
fprintf(f, " db_table = '%s%s'\n", cvDbPrefix, "series");
fprintf(f, "\n");
fprintf(f, " def __unicode__(self):\n");
fprintf(f, " return self.term\n");
fprintf(f, "\n");
/* Write experiment model. */
fprintf(f, "\n");
fprintf(f, "class Experiment(models.Model):\n");
fprintf(f, " \"\"\"\n");
fprintf(f, " A defined set of conditions for an experiment. There may be\n");
fprintf(f, " multiple replicates of an experiment, but they are all done\n");
fprintf(f, " under the same conditions. Often many experiments are done in\n");
fprintf(f, " a 'Series' under sets of conditions that vary in defined ways\n");
fprintf(f, " Some experiments may be designated controls for the series.\n ");
fprintf(f, " \"\"\"\n");
int i;
for (i=1; i<ArraySize(expRequiredFields); ++i) // Start at one so django makes id field itself
{
struct field *field = &expRequiredFields[i];
fprintf(f, " %s = models.%s\n", field->name, field->djangoType);
}
for (i=0; i<ArraySize(expOptionalFields); ++i)
{
char *name = expOptionalFields[i];
fprintf(f, " %s = models.ForeignKey(%c%s, db_column='%s', blank=True, null=True)\n",
name, toupper(name[0]), name+1, name);
}
fprintf(f, "\n");
fprintf(f, " class Meta:\n");
fprintf(f, " db_table = '%s%s'\n", cvDbPrefix, "experiment");
fprintf(f, "\n");
fprintf(f, " def __unicode__(self):\n");
fprintf(f, " return self.accession\n");
fprintf(f, "\n");
/* Write results model. */
fprintf(f, "\n");
fprintf(f, "class Result(models.Model):\n");
fprintf(f, " \"\"\"\n");
fprintf(f, " A result of an experiment - generally either a data file or a\n");
fprintf(f, " database table. Intermediate as well as final results may be found\n");
fprintf(f, " here. Some results may be replicated a number of times\n");
fprintf(f, " \"\"\"\n");
fprintf(f, " experiment = models.ForeignKey(Experiment, db_column='experiment')\n");
fprintf(f, " replicate = models.CharField(max_length=50, blank=True)\n");
fprintf(f, " view = models.CharField(max_length=50)\n");
fprintf(f, " objType = models.CharField(max_length=50)\n");
fprintf(f, " fileName = models.CharField(max_length=255)\n");
fprintf(f, " md5sum = models.CharField(max_length=255)\n");
fprintf(f, " tableName = models.CharField(max_length=100, blank=True)\n");
fprintf(f, " dateSubmitted = models.CharField(max_length=40)\n");
fprintf(f, " dateResubmitted = models.CharField(max_length=40, blank=True)\n");
fprintf(f, " dateUnrestricted = models.CharField(max_length=40)\n");
fprintf(f, "\n");
fprintf(f, " class Meta:\n");
fprintf(f, " db_table = '%s%s'\n", cvDbPrefix, "results");
fprintf(f, "\n");
fprintf(f, " def __unicode__(self):\n");
fprintf(f, " return self.fileName\n");
fprintf(f, "\n");
carefulClose(&f);
}
示例4: initArray
void initArray()
{
int i;
for (i=0; i<ArraySize(functionStrings); i++)
functionFound[i] = FALSE;
}
示例5: leukemia
//.........这里部分代码省略.........
"DCM",
"HCM",
"LQT",
"TNM stage IIA, grade 3, ductal carcinoma",
"chronic myelogenous leukemia (CML)",
"LQT",
"acute promyelocytic leukemia",
};
char *enriched_in[] =
{
"coding",
"exon",
"genome",
"intron",
"open",
"promoter",
"unknown",
"utr",
"utr3",
"utr5",
};
char *formats[] =
{
"bam",
"bam.bai",
"bed",
"bigBed",
"bigWig",
"cram",
"fasta",
"fastq",
"gtf",
"html",
"idat",
"jpg",
"pdf",
"rcc",
"text",
"vcf",
"unknown",
};
char *sequencer[] =
{
"Illumina HiSeq",
"Illumina HiSeq 2000",
"Illumina HiSeq 2500",
"Illumina HiSeq 3000",
"Illumina HiSeq 4000",
"Illumina HiSeq X Five",
"Illumina HiSeq X Ten",
"Illumina MiSeq",
"Illumina MiSeq Dx",
"Illumina MiSeq FGx",
"Illumina NextSeq 500",
"Illumina unknown",
"PacBio RS II",
"Ion Torrent Ion Proton",
"Ion Torrent Ion PGM",
"Ion Torrent Ion Chef",
"454 GS FLX+ ",
"454 GS Junior+ ",
"SN7001226",
"HiSeq G0821 SN605",
"HiSeq at Illumina 700422R",
"MiSeq G0823 M00361",
};
char *species[] =
{
"Homo sapiens",
"Mus musculus",
};
char *strain[] =
{
"C57BL/6",
"BALB/c",
"Sftpc-Cre-ER-T2A-rtta -/- teto-GFP-H2B +/-",
"Aqp5-Cre-ER +/- mtmg-tdTomato -/-",
};
char *target_epitope[] =
{
"H3K4Me1",
"H3K4Me3",
"H3K27Ac",
"H3K27Me3",
"5mC",
"5hmC",
};
struct hash *hash = hashNew(0);
hashAdd(hash, "assay", makeStringHash(assay, ArraySize(assay)));
hashAdd(hash, "control", makeStringHash(control, ArraySize(control)));
hashAdd(hash, "disease", makeStringHash(disease, ArraySize(disease)));
hashAdd(hash, "enriched_in", makeStringHash(enriched_in, ArraySize(enriched_in)));
hashAdd(hash, "formats", makeStringHash(formats, ArraySize(formats)));
hashAdd(hash, "sequencer", makeStringHash(sequencer, ArraySize(sequencer)));
hashAdd(hash, "species", makeStringHash(species, ArraySize(species)));
hashAdd(hash, "strain", makeStringHash(strain, ArraySize(strain)));
hashAdd(hash, "target_epitope", makeStringHash(target_epitope, ArraySize(target_epitope)));
return hash;
}
示例6: sqlite3LoadExtension
/*
** Attempt to load an SQLite extension library contained in the file
** zFile. The entry point is zProc. zProc may be 0 in which case a
** default entry point name (sqlite3_extension_init) is used. Use
** of the default name is recommended.
**
** Return SQLITE_OK on success and SQLITE_ERROR if something goes wrong.
**
** If an error occurs and pzErrMsg is not 0, then fill *pzErrMsg with
** error message text. The calling function should free this memory
** by calling sqlite3DbFree(db, ).
*/
static int sqlite3LoadExtension(
sqlite3 *db, /* Load the extension into this database connection */
const char *zFile, /* Name of the shared library containing extension */
const char *zProc, /* Entry point. Use "sqlite3_extension_init" if 0 */
char **pzErrMsg /* Put error message here if not 0 */
){
sqlite3_vfs *pVfs = db->pVfs;
void *handle;
int (*xInit)(sqlite3*,char**,const sqlite3_api_routines*);
char *zErrmsg = 0;
const char *zEntry;
char *zAltEntry = 0;
void **aHandle;
int nMsg = 300 + sqlite3Strlen30(zFile);
int ii;
/* Shared library endings to try if zFile cannot be loaded as written */
static const char *azEndings[] = {
#if SQLITE_OS_WIN
"dll"
#elif defined(__APPLE__)
"dylib"
#else
"so"
#endif
};
if( pzErrMsg ) *pzErrMsg = 0;
/* Ticket #1863. To avoid a creating security problems for older
** applications that relink against newer versions of SQLite, the
** ability to run load_extension is turned off by default. One
** must call sqlite3_enable_load_extension() to turn on extension
** loading. Otherwise you get the following error.
*/
if( (db->flags & SQLITE_LoadExtension)==0 ){
if( pzErrMsg ){
*pzErrMsg = sqlite3_mprintf("not authorized");
}
return SQLITE_ERROR;
}
zEntry = zProc ? zProc : "sqlite3_extension_init";
handle = sqlite3OsDlOpen(pVfs, zFile);
#if SQLITE_OS_UNIX || SQLITE_OS_WIN
for(ii=0; ii<ArraySize(azEndings) && handle==0; ii++){
char *zAltFile = sqlite3_mprintf("%s.%s", zFile, azEndings[ii]);
if( zAltFile==0 ) return SQLITE_NOMEM;
handle = sqlite3OsDlOpen(pVfs, zAltFile);
sqlite3_free(zAltFile);
}
#endif
if( handle==0 ){
if( pzErrMsg ){
*pzErrMsg = zErrmsg = sqlite3_malloc(nMsg);
if( zErrmsg ){
sqlite3_snprintf(nMsg, zErrmsg,
"unable to open shared library [%s]", zFile);
sqlite3OsDlError(pVfs, nMsg-1, zErrmsg);
}
}
return SQLITE_ERROR;
}
xInit = (int(*)(sqlite3*,char**,const sqlite3_api_routines*))
sqlite3OsDlSym(pVfs, handle, zEntry);
/* If no entry point was specified and the default legacy
** entry point name "sqlite3_extension_init" was not found, then
** construct an entry point name "sqlite3_X_init" where the X is
** replaced by the lowercase value of every ASCII alphabetic
** character in the filename after the last "/" upto the first ".",
** and eliding the first three characters if they are "lib".
** Examples:
**
** /usr/local/lib/libExample5.4.3.so ==> sqlite3_example_init
** C:/lib/mathfuncs.dll ==> sqlite3_mathfuncs_init
*/
if( xInit==0 && zProc==0 ){
int iFile, iEntry, c;
int ncFile = sqlite3Strlen30(zFile);
zAltEntry = sqlite3_malloc(ncFile+30);
if( zAltEntry==0 ){
sqlite3OsDlClose(pVfs, handle);
return SQLITE_NOMEM;
}
memcpy(zAltEntry, "sqlite3_", 8);
//.........这里部分代码省略.........
示例7: lineFileOnString
static struct bed4 *parseRegionInput(char *db, char *inputString, int maxRegions, int maxErrs,
struct dyString *dyWarn)
/* scan the user region definition, turn into a bed list */
{
int regionCount = 0;
int errCount = 0;
struct bed4 *bedList = NULL;
struct lineFile *lf = lineFileOnString("userData", TRUE, inputString);
char *line = NULL;
while (lineFileNextReal(lf, &line))
{
char *chromName = NULL;
int chromStart = 0;
int chromEnd = 0;
char *regionName = NULL;
// Chop a copy of line so we can display line if there's an error.
char copy[strlen(line)+1];
safecpy(copy, sizeof(copy), line);
char *words[5];
int wordCount = chopByWhite(copy, words, ArraySize(words));
boolean badFormat = FALSE;
boolean gotError = FALSE;
/* might be something of the form: chrom:start-end optionalRegionName */
if (((1 == wordCount) || (2 == wordCount)) &&
hgParseChromRange(NULL, words[0], &chromName,
&chromStart, &chromEnd))
{
if (2 == wordCount)
regionName = cloneString(words[1]);
}
else if (!((3 == wordCount) || (4 == wordCount)))
{
dyStringPrintf(dyWarn, "line %d: '%s': "
"unrecognized format. Please enter 3- or 4-column BED or "
"a chr:start-end position range optionally followed by a name.\n",
lf->lineIx, line);
badFormat = TRUE;
gotError = TRUE;
}
else
{
chromName = words[0];
// Make sure chromStart and chromEnd are numbers
if (!isNumericString(words[1]))
{
dyStringPrintf(dyWarn, "line %d: '%s': chromStart must be a number but is '%s'\n",
lf->lineIx, line, words[1]);
gotError = TRUE;
}
if (!isNumericString(words[2]))
{
dyStringPrintf(dyWarn, "line %d: '%s': chromEnd must be a number but is '%s'\n",
lf->lineIx, line, words[2]);
gotError = TRUE;
}
if (! gotError)
{
chromStart = atoi(words[1]);
chromEnd = atoi(words[2]);
if (wordCount > 3)
regionName = cloneString(words[3]);
}
}
char *officialChromName = chromName ? hgOfficialChromName(db, chromName) : NULL;
if (! badFormat)
{
if (NULL == officialChromName)
{
dyStringPrintf(dyWarn,
"line %d: '%s': chrom name '%s' not recognized in this assembly\n",
lf->lineIx, line, chromName ? chromName : words[0]);
gotError = TRUE;
}
else if (illegalCoordinate(db, officialChromName, chromStart, chromEnd, line, lf->lineIx,
dyWarn))
{
gotError = TRUE;
}
}
if (gotError)
{
errCount++;
if (errCount > maxErrs && maxErrs > 0)
{
dyStringPrintf(dyWarn, "Exceeded maximum number of errors (%d), quitting\n", maxErrs);
break;
}
else
continue;
}
++regionCount;
if (regionCount > maxRegions && maxRegions > 0)
{
dyStringPrintf(dyWarn,
"line %d: limit of %d region definitions exceeded, skipping the rest\n",
lf->lineIx, maxRegions);
break;
}
struct bed4 *bedEl = bed4New(officialChromName, chromStart, chromEnd, regionName);
slAddHead(&bedList, bedEl);
//.........这里部分代码省略.........
示例8: RegisterIndex8Gray
jboolean RegisterIndex8Gray(JNIEnv *env)
{
return RegisterPrimitives(env, Index8GrayPrimitives,
ArraySize(Index8GrayPrimitives));
}
示例9: askForSeq
void askForSeq(char *organism, char *db)
/* Put up a little form that asks for sequence.
* Call self.... */
{
struct serverTable *serve = NULL;
/* JavaScript to update form when org changes */
char *onChangeText = "onchange=\""
"document.mainForm.changeInfo.value='orgChange';"
"document.mainForm.submit();\"";
char *userSeq = NULL;
serve = findServer(db, FALSE);
printf(
"<FORM ACTION=\"../cgi-bin/hgBlat\" METHOD=\"POST\" ENCTYPE=\"multipart/form-data\" NAME=\"mainForm\">\n"
"<H2>BLAT Search Genome</H2>\n");
cartSaveSession(cart);
puts("\n");
puts("<INPUT TYPE=HIDDEN NAME=changeInfo VALUE=\"\">\n");
puts("<TABLE BORDER=0 WIDTH=80>\n<TR>\n");
printf("<TD ALIGN=CENTER>Genome:</TD>");
printf("<TD ALIGN=CENTER>Assembly:</TD>");
printf("<TD ALIGN=CENTER>Query type:</TD>");
printf("<TD ALIGN=CENTER>Sort output:</TD>");
printf("<TD ALIGN=CENTER>Output type:</TD>");
printf("<TD ALIGN=CENTER> </TD>");
printf("</TR>\n<TR>\n");
printf("<TD ALIGN=CENTER>\n");
printBlatGenomeListHtml(db, onChangeText);
printf("</TD>\n");
printf("<TD ALIGN=CENTER>\n");
printBlatAssemblyListHtml(db);
printf("</TD>\n");
printf("<TD ALIGN=CENTER>\n");
cgiMakeDropList("type", typeList, ArraySize(typeList), NULL);
printf("</TD>\n");
printf("<TD ALIGN=CENTER>\n");
cgiMakeDropList("sort", sortList, ArraySize(sortList), cartOptionalString(cart, "sort"));
printf("</TD>\n");
printf("<TD ALIGN=CENTER>\n");
cgiMakeDropList("output", outputList, ArraySize(outputList), cartOptionalString(cart, "output"));
printf("</TD>\n");
printf("</TR>\n<TR>\n");
userSeq = cartUsualString(cart, "userSeq", "");
printf("<TD COLSPAN=5 ALIGN=CENTER>\n");
printf("<TEXTAREA NAME=userSeq ROWS=14 COLS=80>%s</TEXTAREA>\n", userSeq);
printf("</TD>\n");
printf("</TR>\n<TR>\n");
printf("<TD COLSPAN=5 ALIGN=CENTER>\n");
printf("<INPUT TYPE=SUBMIT NAME=Submit VALUE=submit>\n");
printf("<INPUT TYPE=SUBMIT NAME=Lucky VALUE=\"I'm feeling lucky\">\n");
printf("<INPUT TYPE=SUBMIT NAME=Clear VALUE=clear>\n");
printf("</TD>\n");
printf("</TR>\n<TR>\n");
puts("<TD COLSPAN=5 WIDTH=\"100%\">\n"
"Paste in a query sequence to find its location in the\n"
"the genome. Multiple sequences may be searched \n"
"if separated by lines starting with '>' followed by the sequence name.\n"
"</TD>\n"
"</TR>\n"
);
puts("<TR><TD COLSPAN=5 WIDTH=\"100%\">\n");
puts("<BR><B>File Upload:</B> ");
puts("Rather than pasting a sequence, you can choose to upload a text file containing "
"the sequence.<BR>");
puts("Upload sequence: <INPUT TYPE=FILE NAME=\"seqFile\">");
puts(" <INPUT TYPE=SUBMIT Name=Submit VALUE=\"submit file\"><P>\n");
printf("%s",
"<P>Only DNA sequences of 25,000 or fewer bases and protein or translated \n"
"sequence of 10000 or fewer letters will be processed. Up to 25 sequences\n"
"can be submitted at the same time. The total limit for multiple sequence\n"
"submissions is 50,000 bases or 25,000 letters.\n</P>");
if (hgPcrOk(db))
printf("<P>For locating PCR primers, use <A HREF=\"../cgi-bin/hgPcr?db=%s\">In-Silico PCR</A>"
" for best results instead of BLAT.</P>", db);
puts("</TD></TR></TABLE>\n");
printf("</FORM>\n");
webNewSection("About BLAT");
printf(
"<P>BLAT on DNA is designed to\n"
"quickly find sequences of 95%% and greater similarity of length 25 bases or\n"
"more. It may miss more divergent or shorter sequence alignments. It will find\n"
"perfect sequence matches of 20 bases.\n"
"BLAT on proteins finds sequences of 80%% and greater similarity of length 20 amino\n"
"acids or more. In practice DNA BLAT works well on primates, and protein\n"
"blat on land vertebrates."
);
printf("%s",
"\n</P><P>BLAT is not BLAST. DNA BLAT works by keeping an index of the entire genome\n"
"in memory. The index consists of all overlapping 11-mers stepping by 5 except for\n"
"those heavily involved in repeats. The index takes up about\n"
//.........这里部分代码省略.........
示例10: finishAndWriteOneSlot
bits64 finishAndWriteOneSlot(bits32 *offsetArray, bits32 *listArray,
bits32 slotFirstIx, DNA *allDna, FILE *f)
/* Do additional sorting and write results to file. Return amount actually written. */
{
bits64 basesIndexed = 0;
bits32 elIx, nextElIx;
if (slotFirstIx != 0)
{
/* Do in affect a secondary bucket sort on the 14-17th bases. */
bits32 buckets[256];
bits32 bucketIx;
for (bucketIx = 0; bucketIx < ArraySize(buckets); bucketIx += 1)
buckets[bucketIx] = 0;
for (elIx = slotFirstIx; elIx != 0; elIx = nextElIx)
{
nextElIx = listArray[elIx];
int bucketIx = binary4(allDna + offsetArray[elIx] + 13U);
if (bucketIx >= 0)
{
listArray[elIx] = buckets[bucketIx];
buckets[bucketIx] = elIx;
++basesIndexed;
}
}
/* Do final sorting within buckets. */
for (bucketIx = 0; bucketIx < ArraySize(buckets); ++bucketIx )
{
bits32 firstIx = buckets[bucketIx];
if (firstIx != 0)
{
bits32 secondIx = listArray[firstIx];
if (secondIx == 0)
{
/* Special case for size one list, there are lots of these! */
writeOne(f, offsetArray[firstIx]);
}
else
{
if (listArray[secondIx] == 0)
{
bits32 firstOffset = offsetArray[firstIx];
bits32 secondOffset = offsetArray[secondIx];
/* Special case for size two list. There are still quite a few of these. */
if (strcmp(allDna+firstOffset, allDna+secondOffset) < 0)
{
writeOne(f, secondOffset);
writeOne(f, firstOffset);
}
else
{
writeOne(f, firstOffset);
writeOne(f, secondOffset);
}
}
else
{
/* Three or more - do it the hard way... */
sortAndWriteOffsets(firstIx, offsetArray, listArray, allDna, f);
}
}
}
}
}
return basesIndexed;
}
示例11: trimUniq
void trimUniq(bioSeq *seqList)
/* Check that all seq's in list have a unique name. Try and
* abbreviate longer sequence names. */
{
struct hash *hash = newHash(0);
bioSeq *seq;
for (seq = seqList; seq != NULL; seq = seq->next)
{
char *saferString = needMem(strlen(seq->name)+1);
char *c, *s;
/* Some chars are safe to allow through, other chars cause
* problems. It isn't necessarily a URL safe string that is
* being calculated here. The original problem was a user had
* the fasta header line of:
* chr8|59823648:59825047|+
* The plus sign was being taken as the query name and this
* created problems as that name was passed on to hgc via
* the ss cart variable. The + sign became part of a URL
* eventually. This loop allows only isalnum and =_/.:;_|
* to get through as part of the header name. These characters
* all proved to be safe as single character names, or all
* together.
*/
s = saferString;
for (c = seq->name; *c != '\0'; ++c)
{
if (c && (*c != '\0'))
{
if ( isalnum(*c) || (*c == '=') || (*c == '-') || (*c == '/') ||
(*c == '.') || (*c == ':') || (*c == ';') || (*c == '_') ||
(*c == '|') )
*s++ = *c;
}
}
*s = '\0';
freeMem(seq->name);
if (*saferString == '\0')
{
freeMem(saferString);
saferString = cloneString("YourSeq");
}
seq->name = saferString;
if (strlen(seq->name) > 14) /* Try and get rid of long NCBI .fa cruft. */
{
char *nameClone = NULL;
char *abbrv = NULL;
char *words[32];
int wordCount;
boolean isEns = (stringIn("ENSEMBL:", seq->name) != NULL);
nameClone = cloneString(seq->name);
wordCount = chopString(nameClone, "|", words, ArraySize(words));
if (wordCount > 1) /* Looks like it's an Ensembl/NCBI
* long name alright. */
{
if (isEns)
{
abbrv = words[0];
if (abbrv[0] == 0) abbrv = words[1];
}
else if (sameString(words[1], "dbSNP"))
{
if (wordCount > 2)
abbrv = words[2];
else
abbrv = nameClone;
}
else
{
abbrv = words[wordCount-1];
if (abbrv[0] == 0) abbrv = words[wordCount-2];
}
if (hashLookup(hash, abbrv) == NULL)
{
freeMem(seq->name);
seq->name = cloneString(abbrv);
}
freez(&nameClone);
}
}
hashAddUnique(hash, seq->name, hash);
}
freeHash(&hash);
}
示例12: sqlite3StatusValue
/*
** Return the current value of a status parameter.
*/
SQLITE_PRIVATE int sqlite3StatusValue(int op){
wsdStatInit;
assert( op>=0 && op<ArraySize(wsdStat.nowValue) );
return wsdStat.nowValue[op];
}
示例13: TRACE_EVENT0
bool Renderer::initializeCompiler()
{
TRACE_EVENT0("gpu", "initializeCompiler");
#if defined(ANGLE_PLATFORM_WP8)
mD3dCompilerModule = NULL;
mD3DCompileFunc = NULL;
mHasCompiler = false;
return true;
#endif //#if defined(ANGLE_PLATFORM_WP8)
#if defined(ANGLE_PLATFORM_WINRT) && (_MSC_VER >= 1800)
ERR("No D3D compiler module available - must use precompiled shaders\n");
mD3dCompilerModule = NULL;
mD3DCompileFunc = reinterpret_cast<pCompileFunc>(D3DCompile);
mHasCompiler = true;
return true;
#endif // #if defined(ANGLE_PLATFORM_WINRT) && (_MSC_VER >= 1800)
#if defined(ANGLE_PRELOADED_D3DCOMPILER_MODULE_NAMES)
// Find a D3DCompiler module that had already been loaded based on a predefined list of versions.
static TCHAR* d3dCompilerNames[] = ANGLE_PRELOADED_D3DCOMPILER_MODULE_NAMES;
for (size_t i = 0; i < ArraySize(d3dCompilerNames); ++i)
{
if (GetModuleHandleEx(0, d3dCompilerNames[i], &mD3dCompilerModule))
{
break;
}
}
#else
// Load the version of the D3DCompiler DLL associated with the Direct3D version ANGLE was built with.
#if defined(ANGLE_PLATFORM_WINRT)
#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)
mD3dCompilerModule = LoadLibrary(D3DCOMPILER_DLL);
#else
mD3dCompilerModule = LoadPackagedLibrary((LPCWSTR)D3DCOMPILER_DLL, 0);
#endif
if (!mD3dCompilerModule)
{
ERR("No D3D compiler module found - must use precompiled shaders\n");
mD3DCompileFunc = NULL;
mHasCompiler = false;
return true;
}
#else
mD3dCompilerModule = LoadLibrary(D3DCOMPILER_DLL);
#endif //
#endif // ANGLE_PRELOADED_D3DCOMPILER_MODULE_NAMES
if (!mD3dCompilerModule)
{
ERR("No D3D compiler module found - aborting!\n");
mHasCompiler = FALSE;
return false;
}
mD3DCompileFunc = reinterpret_cast<pCompileFunc>(GetProcAddress(mD3dCompilerModule, "D3DCompile"));
ASSERT(mD3DCompileFunc);
return mD3DCompileFunc != NULL;
}
示例14: LoadPlugs
void LoadPlugs(const TCHAR* ModuleName)
{
HANDLE hSScr=Info.SaveScreen(0,0,-1,-1);
{
const TCHAR* MsgItems[]={GetMsg(mName),GetMsg(mLoading)};
Info.Message(&MainGuid,&MessageLoadingGuid,0,NULL,MsgItems,sizeof(MsgItems)/sizeof(MsgItems[0]),0);
}
TCHAR PluginsFolder[MAX_PATH],PluginsMask[MAX_PATH],*NamePtr;
lstrcpy(UnknownPluginName,GetMsg(mUnknown));
lstrcpy(PluginsFolder,ModuleName);
NamePtr=(TCHAR*)FSF.PointToName(PluginsFolder);
lstrcpy(NamePtr,_T("\\Formats\\"));
wsprintf(PluginsMask,_T("%s*.fmt"),PluginsFolder);
HANDLE FindHandle;
WIN32_FIND_DATA fdata;
int Done=((FindHandle=FindFirstFile(PluginsMask,&fdata))==INVALID_HANDLE_VALUE);
while(!Done)
{
TCHAR PluginName[MAX_PATH];
wsprintf(PluginName,_T("%s%s"),PluginsFolder,fdata.cFileName);
HMODULE hModule=LoadLibrary(PluginName);
if (hModule!=NULL)
{
struct PluginItem CurPlugin;
CurPlugin.hModule=hModule;
CurPlugin.Type=0;
CurPlugin.pLoadSyntaxModule=(PLUGINLOADSYNTAXMODULE)GetProcAddress(hModule,"LoadSyntaxModule");
CurPlugin.pSetColorizeInfo=(PLUGINSETCOLORIZEINFO)GetProcAddress(hModule,"SetColorizeInfo");
CurPlugin.pGetParams=(PLUGINGETPARAMS)GetProcAddress(hModule,"GetParams");
CurPlugin.pColorize=(PLUGINCOLORIZE)GetProcAddress(hModule,"Colorize");
CurPlugin.pInput=(PLUGININPUT)GetProcAddress(hModule,"Input");
CurPlugin.pGetSyntaxCount=(PLUGINGETSYNTAXCOUNT)GetProcAddress(hModule,"GetSyntaxCount");
CurPlugin.pExit=(PLUGINEXIT)GetProcAddress(hModule,"Exit");
if(CurPlugin.pLoadSyntaxModule)
CurPlugin.Type=CurPlugin.pLoadSyntaxModule(PluginName,&Info);
int accept_plug=true;
if(CurPlugin.pSetColorizeInfo)
{
ColorizeInfo lInfo;
lInfo.size=sizeof(lInfo);
lInfo.version=VER_ALL;
lInfo.api=VER_API;
lInfo.cachestr=PARSER_CACHESTR;
lstrcpy(lInfo.folder,PluginsFolder);
lInfo.pAddColor=addcolor;
lInfo.pGetLine=getline;
lInfo.pAddState=addstate;
lInfo.pGetCursor=getcursor;
lInfo.pCallParser=callparser;
accept_plug=CurPlugin.pSetColorizeInfo(&lInfo);
}
if(accept_plug)
{
unsigned long subcount=1;
if(CurPlugin.pGetSyntaxCount)
subcount=CurPlugin.pGetSyntaxCount();
if(subcount)
{
struct PluginItem *NewPluginsData=(struct PluginItem *)realloc(PluginsData,sizeof(*PluginsData)*(PluginsCount+subcount));
if (NewPluginsData==NULL)
break;
PluginsData=NewPluginsData;
for(unsigned long i=0;i<subcount;i++)
{
CurPlugin.Index=i;
CurPlugin.Mask=NULL;
CurPlugin.Start=NULL;
CurPlugin.Params=0;
const TCHAR *mask,*start,*name=NULL;
TCHAR buff_mask[2048],buff_start[2048];
lstrcpy(buff_mask,_T("")); lstrcpy(buff_start,_T(""));
if(CurPlugin.pGetParams)
{
CurPlugin.Params=CurPlugin.pGetParams(CurPlugin.Index,PAR_GET_PARAMS,NULL);
CurPlugin.pGetParams(CurPlugin.Index,PAR_GET_NAME,(const char**)&name);
//load mask
if(name&&(CurPlugin.Params&PAR_MASK_CACHE))
{
if(!CurPlugin.pGetParams(CurPlugin.Index,PAR_GET_MASK,(const char**)&mask))
mask=_T("");
lstrcpy(buff_mask,mask);
if(CurPlugin.Params&PAR_MASK_STORE)
{
CFarSettings settings(MainGuid);
settings.Change(PLUGIN_MASK_KEY);
settings.Get(name,buff_mask,ArraySize(buff_mask));
}
}
//load starts
if(name&&(CurPlugin.Params&PAR_FILESTART_CACHE))
{
if(!CurPlugin.pGetParams(CurPlugin.Index,PAR_GET_FILESTART,(const char**)&start))
start=_T("");
lstrcpy(buff_start,start);
if(CurPlugin.Params&PAR_FILESTART_STORE)
{
//.........这里部分代码省略.........
示例15: errAbort
errAbort("%s is not a valid TABIX index file", fileNameOnly(path));
}
boolean cdwIsGzipped(char *path)
/* Return TRUE if file at path starts with GZIP signature */
{
FILE *f = mustOpen(path, "r");
int first = fgetc(f);
int second = fgetc(f);
carefulClose(&f);
return first == 0x1F && second == 0x8B;
}
static char *edwSupportedEnrichedIn[] = {"unknown", "exon", "intron", "promoter", "coding",
"utr", "utr3", "utr5", "open"};
static int edwSupportedEnrichedInCount = ArraySize(edwSupportedEnrichedIn);
boolean cdwCheckEnrichedIn(char *enriched)
/* return TRUE if value is allowed */
{
return (stringArrayIx(enriched, edwSupportedEnrichedIn, edwSupportedEnrichedInCount) >= 0);
}
struct cdwBedType cdwBedTypeTable[] = {
{"bedLogR", 9, 1},
{"bedRnaElements", 6, 3},
{"bedRrbs", 9, 2},
{"bedMethyl", 9, 2},
{"narrowPeak", 6, 4},
{"broadPeak", 6, 3},
};