Exemplo n.º 1
0
/*** preinitBlock ***/
    #define $actorSymbol(_order) $size(reflectionCoefficients)

    double $actorSymbol(_forward)[$actorSymbol(_order) + 1];
    double $actorSymbol(_backward)[$actorSymbol(_order) + 1];
    double $actorSymbol(_forwardCache)[$actorSymbol(_order) + 1];
    double $actorSymbol(_backwardCache)[$actorSymbol(_order) + 1];
    double $actorSymbol(_reflectionCoefficients)[$actorSymbol(_order)];
/**/

/*** sharedBlock ***/
    double $actorClass(k);
    int $actorClass(i);
/**/

/*** sharedArrayCopyBlock ***/
    //super.arraycopyBlock(double);
void $actorClass(arraycopy)(double *src, int srcPos, double *dest, int destPos, int length) {
    int i;
    for (i = 0; i < length; i++) {
        dest[destPos + i] = src[srcPos + i];
    }
}
/**/



/*** prefireBlock ***/
    $actorClass(arraycopy)($actorSymbol(_backward), 0, $actorSymbol(_backwardCache), 0, $actorSymbol(_order) + 1);
    $actorClass(arraycopy)($actorSymbol(_forward), 0, $actorSymbol(_forwardCache), 0, $actorSymbol(_order) + 1);
/**/
Exemplo n.º 2
0
/***preinitBlock***/
static int $actorSymbol(xvalue);
/**/

/***initBlock***/
$actorSymbol(xvalue) = 0;
/**/

/***plotBlock($channel)***/
//check with Ben to see how to do the file mapped i/o... I don't remember how it was done before
printf("%d, %d",$actorSymbol(xvalue),$ref(input#$channel));

/**/
/***plotBlock1($channel)***/
//check with Ben to see how to do the file mapped i/o... I don't remember how it was done before
printf("%d, %d",$actorSymbol(xvalue),$ref(input#$channel)); 
/**/

/***plotBlock2($channel)***/
//check with Ben to see how to do the file mapped i/o... I don't remember how it was done before
printf("%d, %d",$actorSymbol(xvalue),$ref(input#$channel));
/**/
Exemplo n.º 3
0
/***preinitBlock***/
FILE * $actorSymbol(filePtr);
int $actorSymbol(charRead);
int $actorSymbol(index);
int $actorSymbol(length) = 128;
/**/

/***initBufferBlock***/
$ref(output) = (char*) malloc($actorSymbol(length) * sizeof(char));
/**/
    

/***openForStdin***/
$actorSymbol(filePtr) = stdin;
/**/
         
/***skipLine***/
// use fgetc() to readLine
//$actorSymbol(charReturned) = fscanf($actorSymbol(filePtr), "%s", $actorSymbol(line));
while ( ($actorSymbol(charRead) = fgetc($actorSymbol(filePtr))) != '\n' && $actorSymbol(charRead) != EOF );
$ref(endOfFile) = feof($actorSymbol(filePtr) );    
/**/

/***openForRead($fileName)***/
if (!($actorSymbol(filePtr) = fopen ("$fileName","r"))) {
    fprintf(stderr,"ERROR: cannot open file \"$fileName\" for LineReader actor.\n");
    exit(1);
}
/**/

/***fireBlock***/
Exemplo n.º 4
0
/*** preinitBlock ***/
$super()
boolean $actorSymbol(haveNextNextGaussian) = false;
double $actorSymbol(nextNextGaussian);

double $actorSymbol(xRawNum);
double $actorSymbol(yRawNum);
/**/

/*** randomBlock ***/
$actorSymbol(xRawNum) = RandomSource_nextGaussian(&$actorSymbol(seed), &$actorSymbol(haveNextNextGaussian), &$actorSymbol(nextNextGaussian));
$actorSymbol(yRawNum) = RandomSource_nextGaussian(&$actorSymbol(seed), &$actorSymbol(haveNextNextGaussian), &$actorSymbol(nextNextGaussian));
$ref(output) = sqrt(pow(
                        ($actorSymbol(xRawNum) * $val(standardDeviation)) + $val(xMean), 2)
                    + pow(($actorSymbol(yRawNum) * $val(standardDeviation)) + $val(yMean), 2));
/**/

Exemplo n.º 5
0
// The algorithm of generating the random number with Gaussian distribution
// is based on source code from Java.util.Random. Given the same seed, it
// generates the same list of random numbers as the java.util.Random object.

/*** preinitBlock ***/
double $actorSymbol(seed);
boolean $actorSymbol(haveNextNextGaussian) = false;
double $actorSymbol(nextNextGaussian);
/**/

/*** randomBlock ***/
$ref(output) = (RandomSource_nextGaussian(&$actorSymbol(seed), &$actorSymbol(haveNextNextGaussian), &$actorSymbol(nextNextGaussian)) * $val(standardDeviation)) + $val(mean);
/**/
Exemplo n.º 6
0
double DiscreteRandomSource_rand(double* seed, Token pmf, Token values) {
    int i;
    double randomValue;
    double cdf = 0.0;
	    
    // Generate a double between 0 and 1, uniformly distributed.
    randomValue = RandomSource_nextDouble(seed);

    for (i = 0; i < pmf.payload.Array->size; i++) {
        cdf += Array_get(pmf, i).payload.Double;

        if (randomValue <= cdf) {
            return Array_get(values, i).payload.Double;
        }
    }

    // We shouldn't get here, but if we do, we output the last value.
    return Array_get(values, pmf.payload.Array->size - 1).payload.Double;
}
/**/

/*** initBlock ***/
// convert all the values to type double.
$ref(values) = $typeFunc(TYPE_Array::convert($ref(values), TYPE_Double));
/**/

/*** randomBlock ***/
$ref(output) = DiscreteRandomSource_rand(&$actorSymbol(seed), $ref(pmf), $ref(values));
/**/

Exemplo n.º 7
0
/*** preinitBlock ***/
int $actorSymbol(i);
int $actorSymbol(M);
double $actorSymbol(k);
int $actorSymbol(_valueLength);
double* $actorSymbol(_backward);
double* $actorSymbol(_backwardCache);
double* $actorSymbol(_forward);
double* $actorSymbol(_forwardCache);
int $actorSymbol(_blockSizeValue);
/**/

/*** initBlock ***/
$actorSymbol(_valueLength) = $ref(reflectionCoefficients).payload.Array->size;
$actorSymbol(_backward) = (double*) malloc(($actorSymbol(_valueLength) + 1) * sizeof(double));
$actorSymbol(_backwardCache) = (double*) malloc(($actorSymbol(_valueLength) + 1) * sizeof(double));
$actorSymbol(_forward) = (double*) malloc(($actorSymbol(_valueLength) + 1) * sizeof(double));
$actorSymbol(_forwardCache) = (double*) malloc(($actorSymbol(_valueLength) + 1) * sizeof(double));
$actorSymbol(_blockSizeValue) = $val(blockSize);

if ($actorSymbol(_blockSizeValue) < 1) {
    fprintf(stderr, "Invalid blockSize: %d,", $actorSymbol(_blockSizeValue));
    exit(1);
}

for ($actorSymbol(i) = 0; $actorSymbol(i) < $actorSymbol(_valueLength) + 1; $actorSymbol(i)++) {
    $actorSymbol(_forward)[$actorSymbol(i)] = 0;
    $actorSymbol(_backward)[$actorSymbol(i)] = 0;
}
/**/