} else if (app.equals("bb620")) {  doBigBeam620(str);
    public static void doit(SIRStream str, int num) {	// test for custom application	String app = System.getProperty("app", "unknown");	// for unknown app, do nothing	if (app.equals("unknown")) {	    return;	}	if (app.equals("fm")) {	    // do custom transforms for FM radio	    if (num==-1) {		Namer.assignNames(str);	    }	    doFM16_2(str);	} else if (app.equals("fft")) {	    // do custom transforms for fft	    if (num!=1) {		doFFT16(str);	    } else {		doFFT1(str);	    }	} else if (app.equals("gsm")) {	    if (num==16) {		doGSM16(str);	    }	} else if (app.equals("pca")) {	    doPCA(str);	} else if (app.equals("mp3")) {	    if (num==64) {		doMP3_64(str);	    } else {		doMP3_16(str);	    }	} else if (app.equals("matrix")) {	    doMatrix16(str);	} else if (app.equals("beam")) {	    doBeam16(str);	} else if (app.equals("beam2")) {	    doBeam16_2(str);	} else if (app.equals("beam3")) {	    doBeam16_3(str);	} else if (app.equals("beam4")) {	    doBeam16_4(str);	} else if (app.equals("beam4x4")) {	    doBeam16_4_4(str);	} else if (app.equals("bb1")) {	    doBigBeam1(str, 2);	} else if (app.equals("bb2")) {	    doBigBeam2(str);	} else if (app.equals("bb3")) {	    doBigBeam1(str, 3);	} else if (app.equals("bb4")) {	    doBigBeam1OnlyBottomSplit(str);	} else if (app.equals("crc32")) {	    doCRC32(str);	} else {	    Utils.fail("no custom procedure for app \"" + app + "\" on " +		       "granularity of " + num + ".");	}    }