P= - IU= -(- 2)*(- ...

#define T 1
#define F 0
#define nrmax 1002
#define ncmax 1002
#define kappamax 64
double adif[nrmax][ncmax]; /*diffusion field*/
int apic[nrmax][ncmax]; /*indicator of snowflake sites*/
double afr[nrmax][ncmax]; /* boundary mass*/
double alm[nrmax][ncmax]; /*crystal mass*/
int ash[nrmax][ncmax]; /*rings pallette*/
/* parameters*/
double beta, kappa, mu, theta, alpha, gam,
int change, centeri,
char po[30];
unsigned long tf,
char tbuf[8];
char timestring[]="time:";
char activestring[]="active area:";
XColor clr[kappamax];
XColor clron[128];
XColor clroff[128];
XColor othp[20];
int flags={DoRed|DoGreen|DoBlue};
char in[]="sn";
char wn[]="digital snowflake";
int red[125], green[125],blue[125];
char infile[30];
char outfile[30];
char graphicsfile[30];
char comments[100];
void bluecolors33()
red[0]= 71; green[0]=204; blue[0]=231;
red[1]= 70; green[1]=200; blue[1]=230;
red[2]= 69; green[2]=196; blue[2]=229;
red[3]= 68; green[3]=192; blue[3]=228;
red[4]= 67; green[4]=188; blue[4]=227;
red[5]= 66; green[5]=184; blue[5]=226;
red[6]= 65; green[6]=180; blue[6]=225;
red[7]= 64; green[7]=176; blue[7]=224;
red[8]= 63; green[8]=172; blue[8]=223;
red[9]= 62; green[9]=168; blue[9]=222;
red[10]= 61; green[10]=164; blue[10]=221;
red[11]= 60; green[11]=160; blue[11]=220;
red[12]= 59; green[12]=156; blue[12]=219;
red[13]= 58; green[13]=152; blue[13]=218;
red[14]= 57; green[14]=148; blue[14]=217;
red[15]= 56; green[15]=144; blue[15]=216;
red[16]= 55; green[16]=140; blue[16]=215;
red[17]= 54; green[17]=136; blue[17]=214;
red[18]= 53; green[18]=132; blue[18]=213;
red[19]= 52; green[19]=128; blue[19]=212;
red[20]= 51; green[20]=124; blue[20]=211;
red[21]= 50; green[21]=120; blue[21]=210;
red[22]= 49; green[22]=116; blue[22]=209;
red[23]= 48; green[23]=112; blue[23]=208;
red[24]= 47; green[24]=108; blue[24]=207;
red[25]= 46; green[25]=104; blue[25]=206;
red[26]= 45; green[26]=100; blue[26]=205;
red[27]= 44; green[27]=96; blue[27]=204;
red[28]= 43; green[28]=92; blue[28]=203;
red[29]= 42; green[29]=88; blue[29]=202;
red[30]= 41; green[30]=84; blue[30]=201;
red[31]= 40; green[31]=80; blue[31]=200;
red[32]= 10; green[32]=20; blue[32]=100;
void braquecolors64()
red[0]= 130; green[0]=166; blue[0]=167;
red[1]= 140; green[1]=176; blue[1]=186;
red[2]= 156; green[2]=193; blue[2]=200;
red[3]= 163; green[3]=204; blue[3]=212;
red[4]= 167; green[4]=213; blue[4]=212;
red[5]= 169; green[5]=207; blue[5]=215;
red[6]= 168; green[6]=207; blue[6]=211;
red[7]= 157; green[7]=199; blue[7]=205;
red[8]= 145; green[8]=162; blue[8]=155;
red[9]= 122; green[9]=137; blue[9]=151;
red[10]= 114; green[10]=128; blue[10]=136;
red[11]= 101; green[11]=130; blue[11]=142;
red[12]= 102; green[12]=130; blue[12]=157;
red[13]= 96; green[13]=129; blue[13]=162;
red[14]= 96; green[14]=130; blue[14]=165;
red[15]= 98; green[15]=131; blue[15]=166;
red[16]= 130; green[16]=166; blue[16]=167;
red[17]= 140; green[17]=176; blue[17]=186;
red[18]= 156; green[18]=193; blue[18]=200;
red[19]= 163; green[19]=204; blue[19]=212;
red[20]= 167; green[20]=213; blue[20]=212;
red[21]= 169; green[21]=207; blue[21]=215;
red[22]= 168; green[22]=207; blue[22]=211;
red[23]= 157; green[23]=199; blue[23]=205;
red[24]= 137; green[24]=175; blue[24]=189;
red[25]= 130; green[25]=166; blue[25]=174;
red[26]= 118; green[26]=152; blue[26]=164;
red[27]= 118; green[27]=153; blue[27]=157;
red[28]= 118; green[28]=158; blue[28]=160;
red[29]= 123; green[29]=164; blue[29]=166;
red[30]= 136; green[30]=177; blue[30]=177;
red[31]= 146; green[31]=191; blue[31]=197;
red[32]= 106; green[32]=140; blue[32]=143;
red[33]= 116; green[33]=162; blue[33]=160;
red[34]= 142; green[34]=183; blue[34]=185;
red[35]= 184; green[35]=201; blue[35]=205;
red[36]= 189; green[36]=224; blue[36]=229;
red[37]= 214; green[37]=248; blue[37]=247;
red[38]= 224; green[38]=232; blue[38]=240;
red[39]= 201; green[39]=228; blue[39]=234;
red[40]= 187; green[40]=218; blue[40]=222;
red[41]= 170; green[41]=194; blue[41]=203;
red[42]= 138; green[42]=175; blue[42]=176;
red[43]= 115; green[43]=153; blue[43]=162;
red[44]= 101; green[44]=137; blue[44]=151;
red[45]= 83; green[45]=126; blue[45]=132;
red[46]= 67; green[46]=106; blue[46]=111;
red[47]= 70; green[47]=87; blue[47]=93;
red[48]= 162; green[48]=197; blue[48]=198;
red[49]= 166; green[49]=201; blue[49]=203;
red[50]= 161; green[50]=200; blue[50]=203;
red[51]= 153; green[51]=189; blue[51]=200;
red[52]= 137; green[52]=175; blue[52]=185;
red[53]= 121; green[53]=163; blue[53]=167;
red[54]= 108; green[54]=147; blue[54]=151;
red[55]= 106; green[55]=141; blue[55]=153;
red[56]= 98; green[56]=131; blue[56]=161;
red[57]= 96; green[57]=131; blue[57]=161;
red[58]= 100; green[58]=136; blue[58]=155;
red[59]= 111; green[59]=132; blue[59]=145;
red[60]= 112; green[60]=134; blue[60]=144;
red[61]= 105; green[61]=134; blue[61]=138;
red[62]= 101; green[62]=134; blue[62]=138;
red[63]= 105; green[63]=130; blue[63]=141;
void offcolors()
for (i=0; i<64; i++) {red[i]=129+2*i; green[i]=129+2*i; blue[i]=129+2*i;}
double myrand()
double drand48();
return drand48();
int norminf(i,j)
if (i<0) i=-i;
int seminorm(i,j)
if (k>=0) else return -k;
int shape12(x,y)
if (x<0) x=-x;
if (y<0) y=-y;
if ( (sqrt(2.0)*y<1.0) && (y+sqrt(3.0)*x<=sqrt(2.0)) &&
(sqrt(2.0)*x<1.0) && (x+sqrt(3.0)*y<=sqrt(2.0)) )
return 1; else return 0;
int shapecircle(x,y)
if ( x*x+y*y<=1)
return 1; else return 0;
int chi(i)
{if (i==0) return 0; else return 1;}
double sqr (x)
return x*x;
void plotstate()
for (i=0; i<=9; i++){
for(j=0; j<=9; j++)
printf("%.5lf|", adif[i][j]);
printf("\n");
printf("\n");
void check()
iup=centeri+rnew+1;
for (i=1;i<=i++){
for (j=1;((j<=i)&&(i+j0.0)) printf("*%d %lf", apic[i][j], adif[i][j]);
void initialize()
int t1,t2;
int i,j,k;
double drand48();
double x1, y1;
stop=F;parupdate=0;
srand48();
t1=time(&t2);
srand48();
t1=t1%1000;
printf("seed:%d\n",t1);
for (i=1;i<t1;i++){ x=drand48();}
centeri=nr/2;centerj=nc/2;
rold=0; rnew=0;
for (i=0;i<i++){
for (j=0; j<j++){
x=myrand();
if (twelvesided ==0){
if ((norminf(i-centeri,j-centerj)<=rinit)&&
(seminorm(i-centeri, j-centerj)<=rinit)&&
(xrnew) rnew=k;
adif[i][j]= apic[i][j]=0; afr[i][j]=0.0;ash[i][j]=0; alm[i][j]=0.0;
x1=(double)(i-centeri)/ y1=(double)(j-centerj)/
( ((i-centeri)==-(j-centerj))&&(i-centeri=-rinit) ) ||
( (i-centeri>=0)&&(i-centeri<=rinit)&&(j-centerj==0) ) ||
( (j-centerj=-rinit)&&(i-centeri==0) ) ) {
adif[i][j]=0.0; apic[i][j]=1; afr[i][j]=0.0; ash[i][j]=0; alm[i][j]=1.0;
k=norminf(i-centeri, j-centerj);
if (k>rnew) rnew=k;
adif[i][j]= apic[i][j]=0; afr[i][j]=0.0;ash[i][j]=0; alm[i][j]=0.0;
void dynamicsdif()
double b[nrmax][ncmax];
double x,y;
int i,j,k;
int id,iu,jl,
double b1, b2;
for (i=0;i<i++)
for (j=0;(j<nc);j++){
b[i][j]=0.0;
for (i=0;i<i++){
for (j=0;j<j++){
if (apic[i][j]==0){
id=(i+1)%iu=(i+nr-1)%
jr=(j+1)% jl=(j+nr-1)%
if (apic[id][j]==0) count++;
if (apic[iu][j]==0) count++;
if (apic[i][jl]==0) count++;
if (apic[i][jr]==0) count++;
if (apic[iu][jr]==0) count++;
if (apic[id][jl]==0) count++;
if (count==0) b[i][j]=adif[i][j];
b[i][j]=(1.0-(double)count/7.0)*adif[i][j]+
(adif[id][j]*(1.0-apic[id][j])+adif[iu][j]*(1.0-apic[iu][j])
+adif[i][jl]*(1.0-apic[i][jl])+adif[i][jr]*(1.0-apic[i][jr])
+adif[iu][jr]*(1.0-apic[iu][jr])+adif[id][jl]*(1.0-apic[id][jl]))/7.0;
for (i=0;i<i++){
for (j=0;(j<nc);j++){
if (apic[i][j]==0) adif[i][j]=b[i][j];
void dynamicspop()
double b[nrmax][ncmax];
double x,y;
int i,j,k;
int id,iu,jl,
for (i=0;i<i++){
for (j=0;j<j++){
x=myrand();
if (x<0.5) {adif[i][j]=adif[i][j]*(1+sigma);}
else adif[i][j]=adif[i][j]*(1-sigma);
void dynamicspop1()
if (sigma<0){
for (i=0;i<i++)
for (j=0;(j<nc);j++){
if(apic[i][j]==0){
offset=sigma*adif[i][j];
adif[i][j]+=
void dynamicsunfre()
double x,y,
int i,j,k;
int id,iu,jl,
int ilo,iup,jlo,
ilo=centeri-rnew-1;
iup=centeri+rnew+1;
jlo=centerj-rnew-1;
jup=centerj+rnew+1;
frchange=F;
for (i=i<=i++){
for (j=j0.0){
alm[i][j]=alm[i][j]-y;
adif[i][j]=adif[i][j]+y;
void dynamicsfre()
int bpic[nrmax][ncmax];
double x,y,
int i,j,k;
int id,iu,jl,
double frmass,
int ilo,iup,jlo,
ilo=centeri-rnew-1;
iup=centeri+rnew+1;
jlo=centerj-rnew-1;
jup=centerj+rnew+1;
frchange=F;
for (i=i<=i++)
for (j=j<=j++){
bpic[i][j]=apic[i][j];
for (i=i<=i++){
for (j= j=1){
difmass=adif[i][j]+adif[id][j]*(1-apic[id][j])+adif[iu][j]*(1-apic[iu][j])
+adif[i][jl]*(1-apic[i][jl])+adif[i][jr]*(1-apic[i][jr])
+adif[iu][jr]*(1-apic[iu][jr])+adif[id][jl]*(1-apic[id][jl]);
if (count=beta){ bpic[i][j]=1;}
if (count>=3){
if ( (afr[i][j]>=1.0) || ((difmass=alpha)) ) {
bpic[i][j]=1;
if (count>=4) bpic[i][j]=1;
for (i=i<=i++){
for (j=jrnew) rnew=k; if (rnew>2*nr/3) stop=T;
ash[i][j]=
frchange=T;
parupdate=1-
if (rnew-rold==1){ parash=parash+1; rold=}
void dynamicsfre1()
double x,y;
int i,j,k;
int id,iu,jl,
int ilo,iup,jlo,
ilo=centeri-rnew-1;
iup=centeri+rnew+1;
jlo=centerj-rnew-1;
jup=centerj+rnew+1;
frchange=F;
for (i=i<=i++){
for (j=j=1){
offset=(1.0-kappa)*adif[i][j];
afr[i][j]=afr[i][j]+
offset=adif[i][j]- adif[i][j]=0;
alm[i][j]+=
void dynamics()
dynamicsdif();
dynamicsfre1();
dynamicsfre();
dynamicsunfre();
if (sigma>0.0) dynamicspop();
/*plotstate(); */
void picturebig()
int i,j,k,pqn,
char pqc[10];
for (i=0;i<i++){
for (j=0; j32) k=32;
XSetForeground(td,tgc,clron[k].pixel);
XFillRectangle(te.xexpose.display,te.xexpose.window,
tgc,j*sp+30,i*sp+60,sp,sp);
if (pq==0) {pqc[0]='0'; pqc[1]='\0';}
for (k=9;k>=0;k--){
pqc[k]=pqn%10+'0';
pqn=pqn/10;
for (kf=0;pqc[kf]=='0';kf++);
for (k=0;k<=9- k++) pqc[k]=pqc[k+kf];
pqc[10-kf]='\0';
XSetForeground(td,tgc,tf);
XSetBackground(td,tgc,tb);
XDrawImageString(te.xexpose.display,te.xexpose.window,
tgc,10,45,timestring,strlen(timestring));
XDrawImageString(te.xexpose.display,te.xexpose.window,
tgc,40,45,pqc,strlen(pqc));
void picturerings()
int i,j,k,pqn,
char pqc[10];
for (i=0;i<i++){
for (j=0; j1+0.5*(beta-1.0)){
if (alm[i][j]>=1+0.2*(beta-1.0)) k=12;
if (alm[i][j]>=1+0.5*(beta-1.0)) k=13;
if (alm[i][j]>=1+0.7*(beta-1.0)) k=14;
if (alm[i][j]>=beta) k=15;
XSetForeground(td,tgc,othp[k].pixel);
XFillRectangle(te.xexpose.display,te.xexpose.window,
tgc,j*sp+30,i*sp+60,sp,sp);
if (pq==0) {pqc[0]='0'; pqc[1]='\0';}
for (k=9;k>=0;k--){
pqc[k]=pqn%10+'0';
pqn=pqn/10;
for (kf=0;pqc[kf]=='0';kf++);
for (k=0;k<=9- k++) pqc[k]=pqc[k+kf];
pqc[10-kf]='\0';
XSetForeground(td,tgc,tf);
XSetBackground(td,tgc,tb);
XDrawImageString(te.xexpose.display,te.xexpose.window,
tgc,10, 45,timestring,strlen(timestring));
XDrawImageString(te.xexpose.display,te.xexpose.window,
tgc,40, 45,pqc,strlen(pqc));
void drawbuttons()
char quitstring[]="QUIT";
char pausestring[]="pause";
char playstring[]="play";
char savestring[]="save";
char readstring[]="read";
XSetForeground(td,tgc,tf);
XSetBackground(td,tgc,tb);
XDrawRectangle(te.xexpose.display,te.xexpose.window,tgc,
20, 50, nc*sp + 20, nr*sp+20);
XDrawRectangle(te.xexpose.display,te.xexpose.window,tgc,
10, 10, 50, 20);
XDrawRectangle(te.xexpose.display,te.xexpose.window,tgc,
65, 10, 50, 20);
XDrawRectangle(te.xexpose.display,te.xexpose.window,tgc,
120, 10, 50, 20);
XDrawRectangle(te.xexpose.display,te.xexpose.window,tgc,
175, 10, 50, 20);
XDrawRectangle(te.xexpose.display,te.xexpose.window,tgc,
230, 10, 50, 20);
XDrawImageString(te.xexpose.display,te.xexpose.window,tgc,
20,25,quitstring,strlen(quitstring));
XDrawImageString(te.xexpose.display,te.xexpose.window,tgc,
75,25,pausestring,strlen(pausestring));
XDrawImageString(te.xexpose.display,te.xexpose.window,tgc,
130,25,playstring,strlen(playstring));
XDrawImageString(te.xexpose.display,te.xexpose.window,tgc,
185,25,savestring,strlen(savestring));
XDrawImageString(te.xexpose.display,te.xexpose.window,tgc,
240,25,readstring,strlen(readstring));
void skip()
dum=getchar();
while (dum!=':') dum=getchar();
void readpicture()
int i,j,k;
picf=fopen(infile,"r");
for (i=0;i<i++){
for (j=0;j<j++){
fscanf(picf,"%lf", &x);
adif[i][j]=x;
fscanf(picf,"%d", &k);
apic[i][j]=k;
fscanf(picf,"%lf", &x);
afr[i][j]=x;
fscanf(picf,"%d", &k);
ash[i][j]=k;
fscanf(picf,"%lf", &x);
alm[i][j]=x;
fscanf(picf,"%d", &k);rold=k;
fscanf(picf,"%d", &k);rnew=k;
fscanf(picf,"%d", &k);pq=k;
fclose(picf);
void savepicture()
picf=fopen(outfile, "w");
for (i=0;i<i++){
for (j=0;j<j++){
fprintf(picf, "%.10lf %d %.10lf %d %.10lf ", adif[i][j], apic[i][j],
afr[i][j], ash[i][j], alm[i][j]);
fprintf(picf, "%d %d ", rold, rnew);
fprintf(picf, "%d ", pq );
fclose(picf);
void savesnowflake()
int i,j,i1,j1,k,pqn,
char pqc[10];
picf=fopen(graphicsfile, "w");
fprintf(picf, "P3\n");
fprintf(picf, "#rho:%lf\n", rho);
fprintf(picf, "#h:%d\n",rinit);
fprintf(picf, "#p:%lf\n", rhorinit);
fprintf(picf, "#beta:%lf\n", beta);
fprintf(picf, "#alpha:%lf\n", alpha );
fprintf(picf, "#theta:%lf\n",theta);
fprintf(picf, "#kappa:%lf\n", kappa);
fprintf(picf, "#mu:%lf\n", mu);
fprintf(picf, "#gam:%lf\n",gam);
fprintf(picf, "#sigma:%lf\n",sigma);
fprintf(picf, "#L:%d\n", nr);
fprintf(picf, "#Z:%d\n", sp);
fprintf(picf, "#: no : no : no \n");
fprintf(picf, "#: %s\n", po);
fprintf(picf, "#: %s\n", comments);
fprintf(picf, "%d %d\n", nr, nr);
fprintf(picf, "255\n");
printf("\n");
for (i=0;i<i++){
for (j=0; j32) k=32;
fprintf(picf,"%d %d %d ", clron[k].red*255/65535,
clron[k].green*255/65535,clron[k].blue*255/65535);
if (apic[i1][j1]==0){
k=floor(63.0*(adif[i1][j1]/(rho)));
fprintf(picf,"%d %d %d ",
clroff[k].red*255/65535, clroff[k].green*255/65535,clroff[k].blue*255/65535);
if (alm[i1][j1]>1+0.5*(beta-1.0)){
if (alm[i1][j1]>=1+0.2*(beta-1.0)) k=12;
if (alm[i1][j1]>=1+0.5*(beta-1.0)) k=13;
if (alm[i1][j1]>=1+0.7*(beta-1.0)) k=14;
if (alm[i1][j1]>=beta) k=15;
fprintf(picf,"%d %d %d ",
othp[k].red*255/65535,othp[k].green*255/65535,othp[k].blue*255/65535);
k=ash[i1][j1];
fprintf(picf,"%d %d %d ",
clr[k].red*255/65535,clr[k].green*255/65535,clr[k].blue*255/65535);
fprintf(picf, "\n");
fclose(picf);
strcat(po, " ");
strcat(po, graphicsfile);
dum = popen (po, "r");
main(argc,argv)
char *argv[];
int i,j,k,
Window rw,
int rootx,
/* enter data */
printf("enter rho:");
skip();scanf("%lf",&rho);
printf("enter rinit:");
skip(); scanf("%d", &rinit);
twelvesided=0; if (rinit<0){rinit=- twelvesided=1;}
printf("enter rhorinit:");
skip(); scanf("%lf", &rhorinit);
printf("enter beta:");
skip();scanf("%lf",&beta);
printf("enter alpha:");
skip();scanf("%lf",&alpha);
printf("enter theta:");
skip();scanf("%lf",&theta);
printf("enter kappa:");
skip();scanf("%lf",&kappa);
printf("enter mu:");
skip();scanf("%lf",&mu);
printf("enter gam:");
skip();scanf("%lf",&gam);
printf("enter sigma:");
skip(); scanf("%lf", &sigma);
printf("enter no. of rows:");
skip();scanf("%d", &nr);
printf("\n %d\n", nr);
printf("size of the pixel:");
skip();scanf("%d", &sp);
printf("infile:");
skip();scanf("%s", infile);
printf("outfile:");
skip();scanf("%s", outfile);
printf("graphicsfile:");
skip();scanf("%s", graphicsfile);
printf("po:");
skip();scanf("%s", po);
printf("comments:");
skip();scanf("%s", comments);
/* end data*/
td=XOpenDisplay("");
ts=DefaultScreen(td);
tb=XWhitePixel(td,ts);
tf=XBlackPixel(td,ts);
th.width=nc*sp+100;
th.height=nr*sp+60+40;
th.flags = PPosition | PS
tw = XCreateSimpleWindow(td, DefaultRootWindow(td),th.x,th.y,
th.width, th.height,7, tf,tb);
XSetWindowBorderWidth(td,tw,100);
XSetStandardProperties(td,tw,wn,in,None,argv,argc,&th);
cmap=DefaultColormap(td,ts);
braquecolors64();
for (i=0;i<i++){
clr[i].red=red[i]*;
clr[i].green=green[i]*;
clr[i].blue=blue[i]*;
XAllocColor(td,cmap,&clr[i]);
bluecolors33();
for (i=0;i<=32;i++){
clron[i].red=red[i]*;
clron[i].green=green[i]*;
clron[i].blue=blue[i]*;
XAllocColor(td,cmap,&clron[i]);
offcolors();
for (i=0;i=10)&&(posx=10) && (posy=65)&&(posx=10) &&
(posy=120)&&(posx=10) &&
(posy=175)&&(posx=10) &&
(posy=230)&&(posx=10) &&
(posy<=30)){
printf("read from file %s\n", infile);
readpicture(); dynamicspop1();
picturebig();
printf("step\n");
dynamics();
picturebig();
case Expose:
if (te.xexpose.count==0){
picturebig();
drawbuttons();
XFreeGC(td,tgc);
XDestroyWindow(td,tw);
XCloseDisplay(td);spl_百度百科
spl,指SPL - Standard PHP Library 标准PHP类库,也有SPL 全称 StarProLeague 韩国星际争霸职业战队,SPL是Second Program Loader的缩写,是手机刷机的专业术语,SLF是Standing Lending Facility的缩写,是央行调控货币流动性的手段。除了包含手机的bootloader启动android外,包含其他一些功能,如刷nbh,支持fastboot等等。SPL也是巴西城市圣保罗(Sao Paulo)、美国明尼苏达州港市首府(St.paul)的缩写。
spl常备借贷便利
借鉴国际经验,于2013年初创设了常备借贷便利(Standing Lending Facility)。它是正常的流动性供给渠道,主要功能是满足期限较长的大额流动性需求。对象主要为和全国性商业银行。期限为1-3个月。利率水平根据货币政策调控、引导的需要等综合确定。常备借贷便利以抵押方式发放,合格抵押品包括高信用评级的债券类资产及优质信贷资产等。
spl主要特点
一是由主动发起,可根据自身流动性需求申请常备借贷便利;  二是常备借贷便利是中央银行与金融机构“一对一”交易,针对性强;  三是常备借贷便利的交易对手覆盖面广,通常覆盖存款金融机构。  
splAndroid
SPL英文全称是Second Program Loader,“二级程序加载器”,就是负责装载操作系统到RAM中。另外SPL还包括许多系统命令,如mtty中使用的命令等。SPL损坏了还可以用器重写。
SPL一般提供这几部分功能:检测手机硬件、寻找系统、启动操作系统为系统的基本维护提供操作界面,可以通过数据线与操作终端(如PC)建立连 接,并接受和执行相应命令。它里面包含许多命令,像r2sd,l,doctest(危险命令,他会擦除gsmdata)等。我们常说的就是由SPL 驱动的。检测SD卡,当你把一些特殊制作的SD卡插入后,SPL可以在启动时校验并根据SD卡内容刷机或执行一些命令。这有点类似于PC 的从软驱启动。简单点说,SPL就相当于PC的BIOS。
SPL主要作用就是引导系统启动。
解释一下Android的SPL的大致含义,希望对您有所帮助。
SPL除了包含手机的bootloaderandroid外,还包含其他一些功能,如刷nbh,支持fastboot等等。
G1 Original SPL
VER: HBOOT-0.95.0000
ZIP: G1OrigBootloader_nocheck.zip
MD5: ae58b427bf3b3fa9d13c76
大家说的就是它,由damien667 dump出来的。该版本不支持fastboot,所以没法刷直接刷img文件。在这里简单说下G1的破解,大家都知道G1的破解就是把recovery替 换成使用验证签名为testkey的,使我们能够刷修改后有root权限的自制rom。在TC4-RC29 TC5-RC7的nbh在09年1月1号被xda的chavonbravo泄漏后,我们才能通过这个spl降级来破解,获取系统权限,然后刷 testkey的recovery,然后就开始了丰富多彩的刷机生涯。
spl标准类库
SPL - Standard PHP Library SPL is a collection of interfaces and classes that are meant to solve standard problems and implements some efficient data access interfaces and classes. You&#39;ll find the classes documented using php code in the file spl.php or in corresponding .inc files in subdirectories examples and internal. Based on the internal implementations or the files in the examples subdirectory there are also some .php files to experiment with.
The .inc files are not included automatically because they are sooner or later integrated into the extension. That means that you either need to put the code of examples/autoload.inc into your autoprepend file or that you have to point your ini setting auto_prepend_file to that file.
Below is a list of interfaces/classes already availabel natively through the SPL extension grouped by category.
spl全面剖析
SPL(Standard PHP Library) IN PHP5
作者: /Jiania
笔者认为下一步中大型PHP商业应用的主流的开发将会是以OO,OA软件开发模式主领潮流,从PHP5到PHP6,google Trends足以证明这一点,过去传统的的开发模式将会被弃之,如果你是一位真正合格程序员,你会发现OO所带来的好处是深远的,不仅是软件工程所带来的收益,而且此种思维理念对个人思维方式定有大的变革,你会发现你做事情开始OO方式,^_^,OO无处不在.
当然笔者不想去论述用面向过程写PHP代码所带来的好处(如简单的应用),那种单人时代的开发方式如儿童时代已不适合需求复杂,变化过快的现代商业环境.笔者发现,如今支持面向过程的开发者大多知识不够全,不够广.还不足以用OO来解决商业开发.当然这不是绝对,但一位有着C++,JAVA, Smalltalk、EIFFEL等开发语言背景的程序员,他会无一不支持OO开发模式,相反网络知识框架基础较少,各种协议一知半解,只会PHP的开发人员他们会觉得面向过程最适合他们.
不断有人在网上问笔者,目前主流的CMS我要用哪种来做二次开发,来做为中大型业务系统平台?其实这个问题很简单,几点就可以定义一个CMS的前景如何?
a.文档的完善与标准如何?
b.背后商业公司或是财团支持如何?
c.采用OO还是?
d.业务与显示是否分离与清晰?C OR VC OR MVC
e.数据结构如何,数据表优化如何?数据驱动支持?
f.开发进度如何?目前核心开发成员水平如何,要注意原核心团队的去留?
g.代码内置调试如何,代码纠错处理过程怎样?
h.有无自己核心开发框架?有无采用流行的框架?
i.权限管理等基础CMS功能如何?可扩展,或开发程度如何?
j.现在用户群如何?可通过google trends来找答案
综上所述,我们怎样选择CMS做二次开发.当然还有诸合目前本身团队的水平等等因素要想进去,希望决策者不要失误,以免将来损失惨重.
不管是二次开发,还是自己全部重新设计,我们都得要有一个大前提,那就是最大化提高系统平台生命周期,国内很多phper开发者,很多项目的生命周期短得可怜,阅其代码坚酸难懂,接手的开发人员像被强奸的感觉, 笔者认为合格的PHP程序员应把代码看成是一种艺术, 一个好不好的操作平台是否拥有良好的可扩展性,布局,可维护性是其根本的基础.其核心框架必需高度抽象化,有良好的命名空间与对象接口, 这样才能算是进入贵族艺术编程世界.
一个项目的成功不是决定于技术的先进度如何,它有很多因素决定.在此,笔者就不在这里谈论如何运作网络商业,只谈PHP极限编程艺术世界.
splPHP之旅
下面笔者就带大家从草根程序员进入php 5,php6未来主流开发世界.目前不收大家门票,^_^.全部我买单了,让国内PHPER 体验PHP新的时尚世界.OK,开始我们的php!!!
Standard PHP Library(PHP标准库,PHP5以后编译后自带的框架)为解决一些在Web开发中普遍的问题,提供了一系列的接口(interface)和类库(classes)的。这些所有类库,你都可以在PHP编译本中找到(ext\SPL下的文件夹),基类文件在SPL.PHP等文件内,SPL提供了(Iterator)、对象(ArrayObject)、运行期违例(RuntimeException InvalidArgumentException……)、观察者模式(Observer Pattern)等一些解决方案。详情可参考官方的API.
spl查看命令
查看SPL所有类与方法,我们可以用以下语句: print_r(spl_classes());
我会详细说明此这10大接口的设计理念.PHP所有编程万变不离其宗.
SPL有以下接口(10大接口)
1.ArrayAccess 其功能是使类可以像PHP中的一样操作。有点类似于.net平台的index操作。
2.Traversable 是的内置接口,它是能让类用于foreach语句的接口,但是在PHP中并不能直接实现Traversable。只能间接地通过Iterator或IteratorAggregate接口实现。
3.IteratorAggregate(继承Traversable,是他的儿子)是除Iterator之外另一个从Traversable接口中继承而来的。其接口也很简单,只有一个函数。就是返回一个实例
4.Iterator(也是继承Traversable,是他的儿子),SPL中大部分接口和类都是从这个接口继承而来的。
5.RecursiveIterator (继承Iterator,为Traversable的孙子),递归迭代器,通过hasChildren()和getChildren()两个函数实现递归遍历子元素。
6.Countable 这接口就一个count()函数,返回的数量。实现这个接口的类可以用count()函数查询其结果集。
7.Serializable 该接口实现序列化和反序列化的接口。在没有SPL之前,可以通过__sleep() 和__wakeup()实现相同的功能,若同时实现了Serializable 接口和_sleep() 和__wakeup(),则只有的函数启作用。
8.SplObserver Observer观察者模式的中的观察者。
9.SplSubject Observer观察者模式的中的发布者。
10.OuterIterator 它的实现者可以包含一个或多个成员,即可以通过getInnerIterator()获取内部的迭代器,也可以直接通过类本身实现的Iterator接口遍历内部的迭代器数据。这在SPL是一个非常重要的接口,SPL中很多内置的迭代器实现了这个接口。
(接口分析未完成,更新中...)
SPL中已经声明的类。
1.DirectoryIterator 这个类用来查看一个目录中的所有文件和子目录
2.FilterIterator 这是一个抽象类,它实现了OuterIterator接口。它包装一个已有的类,通过抽象方法accept()过滤掉不需要的内容,形成一个新的迭代器。
3.LimitIterator 这也是一个实现OuterIterator的类。它有点类似于SQL中的LIMIT语句。它通过包装一个已有迭代器,然后截取其中某一段数据形成一个新的迭代器。
4.RecursiveDirectoryIterator 递归查看一个目录中的所有文件的子目录。
5.SimpleXMLIterator 一个遍历XML内容的类
6.IteratorIterator 实现对迭代器的包装,这也是SPL中对OuterIterator默认实现。
7.InfiniteIterator 从字面意思就知道,这是个无限循环的,当next()到达最后时,会自动调用rewind()函数,又从头开始。
8.AppendIterator 它实现了对一系统迭代器的包装,并且可以在运行过程中添加新的迭代器。
9.SplFileObject 文件操作类,可以按行的方式遍历文件内容。同时还能获取文件的大小及其它详细信息。
10.SplFileInfo 获取文件信息类。SplFileObject 从该类继承。
错误处理是一大块:
下面来我讲讲PHP-&SPL 关于错误处理方面的架构:
Exception 这是错误处理的接口,这是个值得一提,在所有程序中都会用到的父类.
笔者也想不通,为什么作者不作Exception做为一个接口呢???我得想想.
下面分为两大基类
一个是LogicException (逻辑错误处理类)
一个是RuntimeException(实时错误处理类)
中文名称:
英文名称:sound pressure level
定义:给定与参考声压之比的以10为底的对数乘以20,以分贝计。
声压级以符号SPL表示,其定义为将待测声压有效值p(e)与参考声压p(ref)的比值取常用对数,再乘以20,即:
SPL=20LOG(10)[p(e)/p(ref)]
其单位是分贝。
在空气中参考声压p(ref)一般取为2*10E-5帕,这个数值是正常人耳对1声音刚刚能觉察其存在的声压值,也就是1千赫声音的可听阈声压。一般讲,低于这一值,人耳就再也不能觉察出这个声音的存在了。显然该可听阈声压的即为零分贝。
中文名称:软件产品线
英文名称:software product line
软件产品线针对特定领域中的一系列具有公共特性的软
件系统,试图通过对领域(commonality)共性和可变性(var iability)的把握构造一系列领域
核心资产,从而使特定的软件产品可以在这些核心资产基础上按照预定义的方式快速、高效
地构造出来。
软件产品线工程主要包括、应用系统工程和产品线管理三个方面。其中,领域
工程是其中的核心部分,它是领域核心资产(包括领域模型、领域体系结构、领域等)
的生产阶段;应用系统工程面向特定应用需求,在领域核心资产的基础上面向特定应用需求
实现应用系统的定制和开发;而产品线管理则从技术和组织两个方面为的建立和
长期发展提供管理支持。
spl星际争霸
SPL 全称 StarProLeague韩国星际争霸职业战队联赛,SPL也和OSL、MSL个人联赛一样是韩国星际战队联赛的顶级的赛事!
联赛由 SK Telecom T1,Woongjin Stars,Samsung KHAN,Hite SPARKYZ,KT Rolster,AirForce ACE,MBCGame HERO,CJ Entus,Wemade FOX,Hwaseung OZ,STX SouL,eStro共12支职业战队参加
战队联赛分前期联赛和后期联赛。
每期联赛又分常规赛和季后赛。
常规赛:各队(现在是12队)进行双循环(即每两队间打两轮),根据战绩得出前四名(战绩相同看积分(净胜局),如果再相同的话加赛,1v1,Bo1定胜负)。
季后赛:前四名按名次排序,进行冒泡赛直到第一名即SPL冠军(前期冠军/后期冠军)。
前期和后期打完后就会得出一个前期联赛冠军及后期联赛冠军。
两者再进行总决赛,就是SPL总决赛(当年度SPL最高荣誉)。
注:如果前期和后期联赛都是同个冠军,则挑除了冠军之外成绩最好的三个队打冒泡赛得出一队,再与冠军总决赛。
常规赛是5局制:每场比赛BO5,第3场为双打,前四场上场选手不能重复。如有第五场,称为AceGame即大将战,由双方领队临时出人(前四场上过的也可以再上)
季后赛(冒泡赛)及总决赛是7局制:每场比赛BO7,第3场、第6场为双打,前六场上场选手不能重复。第七场和上面第五场类似。
冒泡赛制:第四挑战第三,胜者挑战第二,胜者挑战第一(决赛)
常规赛中通常会评选出一些MVP,比如当日MVP,当周MVP,当月MVP等等。
MVP由FighterForum根据Fans投票和专家意见评出。
2008 ProLeague变更:
由于新赛季赛制变化的时间不足原因,压缩了一下,改为单赛季(不分前期后期)。
ProLeague变更:
不分前后阶段,而是分成五个阶段。第三阶段为Bo7。其余阶段为5场1v1。
季后赛是6个队(3v6、4v5,然后两场胜者对打,胜者对第2名,再胜者对第1名决出冠军)
每场比赛中,三族都需要上场。
同地图同队不能同族连续上场。
第三阶段KOF,设有单独的冠军奖项。
ProLeague变更:
常规赛改为BO7,即改掉长期以来使用五局三胜制的SPL,采用了7局4胜制
分为三个阶段,季后赛恢复冒泡赛制:第四挑战第三,胜者挑战第二,胜者挑战第一(决赛)
ProLeague变更:
由于韩国联赛战队缩减为8个战队,其中第8战队还未找到代理商。
BO7减少到BO5
ProLeague变更:
spl全面转型SC2,联赛由SK Telecom T1,Woongjin Stars,Samsung KHAN,KT Rolster,CJ Entus,STX SouL,Team 8th,EG-TL组成,赛季从10月开始为期一年,赛制为BO7,常规赛共6轮,其中2、5轮为KOF赛制。EG-TL成为第一只加盟SPL的海外战队,SPL也开始吸引更多的欧美观众。
spl其他含义
SPL是Second Program Loader的缩写,是手机刷机的专业术语。除了包含手机的bootloader启动android外,还包含其他一些功能,如刷nbh,支持fastboot等等。
SPL也是巴西城市圣保罗(Sao Paulo)、美国明尼苏达州港市首府(St.paul)的缩写。
SPL也是广州市(新)星域舞台策划有限公司的注册商标
SPL也是技术牛人时彭亮的缩写。
SPL也是生物学中词汇,指Squamosa启动子结合蛋白基因 squamosa promoter binding protein-like [1]
SPL也是一家专业生产音响器材的厂家,厂址位于德国。
.国家水稻数据中心&#91;引用日期&#93;

我要回帖

更多关于 P档 的文章

 

随机推荐