📄 selfsimilarseqgenerator.java
字号:
package org.osu.ogsa.stream.util;import java.io.*;import java.nio.*;import java.lang.*;import java.util.*;import org.apache.commons.logging.Log;import org.apache.commons.logging.LogFactory;public class SelfSimilarSeqGenerator extends Object{ private Byte [] buffer; private int buf_len; //The parameters of self-Similar generator private double ave, variance, h; private int number; private int memFactor = 100; private static Log logger = LogFactory.getLog(SelfSimilarSeqGenerator.class.getName()); public SelfSimilarSeqGenerator(double ave, double variance, int number) { this.ave = ave; this.variance = variance; this.number = number; this.h = 0.80; } public SelfSimilarSeqGenerator(double ave, double variance, double h, int number) { this.ave = ave; this.variance = variance; this.number = number; this.h = h; } public double [] generating() { try { String strCommand = new String("bin/fft_fgn -V " + variance + " -M " + ave + " -H " + h + " -n " + number);// String strCommand = "cat a.tmp"; ByteBuffer byteBuf = ByteBuffer.allocate(number*memFactor); ExecuteCommands runCommand = new ExecuteCommands(strCommand, byteBuf, (Object)this); runCommand.start(); synchronized(this) { wait(); } //Should get the results back String str = new String(byteBuf.array()); String []strDoubleResults = str.split(",|\n|\r"); if(strDoubleResults.length < number) { logger.error("the sequence has not been completely generated"); return null; } double []doubleResults = new double [number]; for(int i = 0; i < number; i ++) { doubleResults[i] = (Double.valueOf(strDoubleResults[i])).doubleValue(); logger.debug(" " + doubleResults[i]); }/* IntBuffer intBuf = byteBuf.asIntBuffer(); int [] traffic = intBuf.array(); for(int i = 0; i < 64* 4; i ++) System.out.print(intBuf.get() + ",");*/ //System.out.print(strResults); return doubleResults; } catch(Exception e) { e.printStackTrace(); return null; } } public static void main(String args[]) { SelfSimilarSeqGenerator tr = new SelfSimilarSeqGenerator(10.0, 100.0, 64); double [] intTemp = tr.generating(); int len = intTemp.length; for(int i = 0; i < len; i ++) System.out.print(intTemp[i] + ","); }}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -