|
FAUST compiler
0.9.9.6b8
|


Go to the source code of this file.
Definition at line 290 of file signals.cpp.
References addNode(), CTree::node(), and tree().
Referenced by mterm::operator+=(), and simplifyingAdd().
{
Tree r = tree(addNode(a->node(),b->node()));
//cerr.flags(ios::showpoint); cerr << "addNums " << *a << "+" << *b << " -> " << *r << endl;
return r;
}


| Tree divExtendedNums | ( | Tree | a, |
| Tree | b | ||
| ) |
Definition at line 318 of file signals.cpp.
References divExtendedNode(), CTree::node(), and tree().
Referenced by mterm::operator/=().
{
Tree r = tree(divExtendedNode(a->node(),b->node()));
//cerr.flags(ios::showpoint); cerr << "divExtendeNums " << *a << "/" << *b << " -> " << *r << endl;
return r;
}


Definition at line 311 of file signals.cpp.
References divNode(), CTree::node(), and tree().
{
Tree r = tree(divNode(a->node(),b->node()));
//cerr.flags(ios::showpoint); cerr << "divNums " << *a << "/" << *b << " -> " << *r << endl;
return r;
}

| int getSubSignals | ( | Tree | sig, |
| vector< Tree > & | vsigs, | ||
| bool | visitgen | ||
| ) |
Extract the sub signals of a signal expression, that is not necesseraly all the subtrees.
| sig | the signals |
| vsigs | a reference to the vector where the subsignals will be placed |
Definition at line 12 of file subsignals.cpp.
References CTree::arity(), CTree::branch(), getUserData(), hd(), isList(), isNil(), isProj(), isRec(), isSigAttach(), isSigBinOp(), isSigButton(), isSigCheckbox(), isSigDelay1(), isSigDocAccessTbl(), isSigDocConstantTbl(), isSigDocWriteTbl(), isSigFConst(), isSigFFun(), isSigFixDelay(), isSigFloatCast(), isSigFVar(), isSigGen(), isSigHBargraph(), isSigHSlider(), isSigInput(), isSigInt(), isSigIntCast(), isSigIota(), isSigNumEntry(), isSigOutput(), isSigPrefix(), isSigRDTbl(), isSigReal(), isSigSelect2(), isSigSelect3(), isSigTable(), isSigVBargraph(), isSigVSlider(), isSigWRTbl(), name(), and tl().
Referenced by annotate(), colorize(), VectorCompiler::generateCodeRecursions(), OccMarkup::incOcc(), listMultiColoredExp(), recdraw(), ScalarCompiler::sharingAnnotation(), DocCompiler::sharingAnnotation(), symlistVisit(), and uncolorize().
{
vsigs.clear();
int i;
double r;
Tree c, sel, x, y, z, u, v, var, le, label, id, ff, largs, type, name, file;
if ( getUserData(sig) ) { for (int i=0; i<sig->arity(); i++) { vsigs.push_back(sig->branch(i)); }
return sig->arity(); }
else if ( isSigInt(sig, &i) ) { return 0; }
else if ( isSigReal(sig, &r) ) { return 0; }
else if ( isSigInput(sig, &i) ) { return 0; }
else if ( isSigOutput(sig, &i, x) ) { vsigs.push_back(x); return 1; }
else if ( isSigDelay1(sig, x) ) { vsigs.push_back(x); return 1; }
else if ( isSigFixDelay(sig, x, y) ) { vsigs.push_back(x); vsigs.push_back(y); return 2; }
else if ( isSigPrefix(sig, x, y) ) { vsigs.push_back(x); vsigs.push_back(y); return 2; }
else if ( isSigIota(sig, x) ) { vsigs.push_back(x); return 1; }
else if ( isSigBinOp(sig, &i, x, y) ) { vsigs.push_back(x); vsigs.push_back(y); return 2; }
else if ( isSigFFun(sig, ff, largs) ) { int n = 0; while (!isNil(largs)) { vsigs.push_back(hd(largs)); largs = tl(largs); n++; } return n; }
else if ( isSigFConst(sig, type, name, file) ) { return 0; }
else if ( isSigFVar(sig, type, name, file) ) { return 0; }
else if ( isSigTable(sig, id, x, y) ) { vsigs.push_back(x); vsigs.push_back(y); return 2; }
else if ( isSigWRTbl(sig, id, x, y, z) ) { vsigs.push_back(x); vsigs.push_back(y); vsigs.push_back(z); return 3; }
else if ( isSigRDTbl(sig, x, y) ) { vsigs.push_back(x); vsigs.push_back(y); return 2; }
else if ( isSigDocConstantTbl(sig, x, y) ) { vsigs.push_back(x); vsigs.push_back(y); return 2; }
else if ( isSigDocWriteTbl(sig, x, y, u, v) ) { vsigs.push_back(x); vsigs.push_back(y); vsigs.push_back(u); vsigs.push_back(v); return 4; }
else if ( isSigDocAccessTbl(sig, x, y) ) { vsigs.push_back(x); vsigs.push_back(y); return 2; }
else if ( isSigSelect2(sig, sel, x, y) ) { vsigs.push_back(sel); vsigs.push_back(x); vsigs.push_back(y); return 3; }
else if ( isSigSelect3(sig, sel, x, y, z) ) { vsigs.push_back(sel); vsigs.push_back(x); vsigs.push_back(y); vsigs.push_back(z); return 4; }
else if ( isSigGen(sig, x) ) { if (visitgen) { vsigs.push_back(x); return 1;} else { return 0; } }
else if ( isProj(sig, &i, x) ) { vsigs.push_back(x); return 1; }
else if ( isRec(sig, var, le) ) { vsigs.push_back(le); return 1; }
else if ( isSigIntCast(sig, x) ) { vsigs.push_back(x); return 1; }
else if ( isSigFloatCast(sig, x) ) { vsigs.push_back(x); return 1; }
else if ( isSigButton(sig, label) ) { return 0; }
else if ( isSigCheckbox(sig, label) ) { return 0; }
else if ( isSigVSlider(sig, label,c,x,y,z) ) { return 0; }
else if ( isSigHSlider(sig, label,c,x,y,z) ) { return 0; }
else if ( isSigNumEntry(sig, label,c,x,y,z) ) { return 0; }
else if ( isSigVBargraph(sig, label,x,y,z) ) { vsigs.push_back(z); return 1; }
else if ( isSigHBargraph(sig, label,x,y,z) ) { vsigs.push_back(z); return 1; }
else if ( isSigAttach(sig, x, y) ) { vsigs.push_back(x); vsigs.push_back(y); return 2; }
else if ( isList(sig) ) { vsigs.push_back(hd(sig)); vsigs.push_back(tl(sig)); return 2; }
else if ( isNil(sig) ) { return 0; }
else {
cerr << "ERROR, unrecognized signal : " << *sig << endl;
exit(1);
}
return 0;
}


| Tree inverseNum | ( | Tree | a | ) |
Definition at line 332 of file signals.cpp.
References inverseNode(), CTree::node(), and tree().
{
Tree r = tree(inverseNode(a->node()));
//cerr.flags(ios::showpoint); cerr << "inverseNum " << *a << " -> " << *r << endl;
return r;
}

Definition at line 187 of file signals.hh.
References CTree::node().
Referenced by mterm::isNegative().


Definition at line 186 of file signals.hh.
References CTree::node().

| bool isMinusOne | ( | Tree | a | ) | [inline] |
Definition at line 189 of file signals.hh.
References CTree::node().
Referenced by mterm::normalizedTree().
{ assert(a); return isMinusOne(a->node()); }


Definition at line 184 of file signals.hh.
References CTree::node().
Referenced by AcosPrim::computeSigOutput(), AsinPrim::computeSigOutput(), AtanPrim::computeSigOutput(), SinPrim::computeSigOutput(), TanPrim::computeSigOutput(), CosPrim::computeSigOutput(), ExpPrim::computeSigOutput(), FloorPrim::computeSigOutput(), FmodPrim::computeSigOutput(), CeilPrim::computeSigOutput(), Atan2Prim::computeSigOutput(), RemainderPrim::computeSigOutput(), PowPrim::computeSigOutput(), LogPrim::computeSigOutput(), SqrtPrim::computeSigOutput(), Log10Prim::computeSigOutput(), RintPrim::computeSigOutput(), mterm::operator*=(), mterm::operator/=(), simplification(), and simplifyingAdd().


Definition at line 195 of file signals.hh.
References isDouble(), isInt(), and CTree::node().
{
double f;
int i;
if (isDouble(t->node(), &f)) { n = f; return true; }
if (isInt(t->node(), &i)) { n = i; return true; }
return false;
}

Definition at line 188 of file signals.hh.
References CTree::node().
Referenced by mterm::complexity(), mterm::normalizedTree(), mterm::print(), and simplification().


Definition at line 151 of file signals.cpp.
References isInt(), isTree(), and CTree::node().
Referenced by VectorCompiler::CS(), ScalarCompiler::generateCode(), DocCompiler::generateCode(), VectorCompiler::generateLoopCode(), getSubSignals(), infereSigOrder(), infereSigType(), VectorCompiler::needSeparateLoop(), normalizeFixedDelayTerm(), ppsig::print(), printSignal(), sigLabel(), and sigvisitor::visit().


Definition at line 339 of file signals.cpp.
References isSigBinOp(), and kAdd.
{
int op;
return isSigBinOp(a, &op, x, y) && (op == kAdd);
}

| bool isSigAttach | ( | Tree | s | ) |
| bool isSigAttach | ( | Tree | s, |
| Tree & | x, | ||
| Tree & | y | ||
| ) |
Definition at line 286 of file signals.cpp.
References isTree().
Referenced by ScalarCompiler::generateCode(), DocCompiler::generateCode(), getSubSignals(), infereSigOrder(), infereSigType(), ppsig::print(), printSignal(), sigLabel(), and sigvisitor::visit().


| bool isSigBinOp | ( | Tree | s, |
| int * | op, | ||
| Tree & | x, | ||
| Tree & | y | ||
| ) |
Definition at line 126 of file signals.cpp.
References isInt(), isTree(), and CTree::node().
Referenced by ScalarCompiler::generateCode(), DocCompiler::generateCode(), getSubSignals(), infereSigOrder(), infereSigType(), isSigAdd(), isSigDiv(), isSigMul(), isSigSub(), mterm::operator*=(), aterm::operator+=(), aterm::operator-=(), mterm::operator/=(), ppsig::print(), printSignal(), sigLabel(), simplification(), and sigvisitor::visit().


| bool isSigButton | ( | Tree | s | ) |
Definition at line 199 of file signals.cpp.
References isTree().
Referenced by Description::addWidget(), ScalarCompiler::generateCode(), DocCompiler::generateCode(), Compiler::generateWidgetCode(), Compiler::generateWidgetMacro(), getSubSignals(), infereSigOrder(), infereSigType(), isVerySimpleFormula(), ppsig::print(), sigLabel(), and sigvisitor::visit().


| bool isSigButton | ( | Tree | s, |
| Tree & | label | ||
| ) |
Definition at line 200 of file signals.cpp.
References isTree().

| bool isSigCheckbox | ( | Tree | s | ) |
Definition at line 205 of file signals.cpp.
References isTree().
Referenced by Description::addWidget(), ScalarCompiler::generateCode(), DocCompiler::generateCode(), Compiler::generateWidgetCode(), Compiler::generateWidgetMacro(), getSubSignals(), infereSigOrder(), infereSigType(), isVerySimpleFormula(), ppsig::print(), sigLabel(), and sigvisitor::visit().
{ Tree lbl; return isTree(s, SIGCHECKBOX, lbl); }


| bool isSigCheckbox | ( | Tree | s, |
| Tree & | label | ||
| ) |
Definition at line 206 of file signals.cpp.
References isTree().
{ return isTree(s, SIGCHECKBOX, lbl); }

| bool isSigDelay1 | ( | Tree | t, |
| Tree & | t0 | ||
| ) |
Definition at line 58 of file signals.cpp.
References isTree().
Referenced by getSubSignals(), infereSigOrder(), infereSigType(), ppsig::print(), printSignal(), sigLabel(), simplification(), and sigvisitor::visit().


Definition at line 357 of file signals.cpp.
References isSigBinOp(), and kDiv.
Referenced by normalizeFixedDelayTerm().
{
int op;
return isSigBinOp(a, &op, x, y) && (op == kDiv);
}


| bool isSigDocAccessTbl | ( | Tree | s, |
| Tree & | doctbl, | ||
| Tree & | ridx | ||
| ) |
Definition at line 107 of file signals.cpp.
References isTree().
Referenced by DocCompiler::generateCode(), getSubSignals(), infereSigOrder(), infereSigType(), ppsig::print(), printSignal(), and sigvisitor::visit().
{ return isTree(t, SIGDOCACCESSTBL, tbl, ridx); }


| bool isSigDocConstantTbl | ( | Tree | s, |
| Tree & | n, | ||
| Tree & | init | ||
| ) |
Definition at line 99 of file signals.cpp.
References isTree().
Referenced by DocCompiler::generateCode(), getSubSignals(), infereSigOrder(), infereSigType(), ppsig::print(), printSignal(), and sigvisitor::visit().
{ return isTree(t, SIGDOCONSTANTTBL, n, sig); }


Definition at line 103 of file signals.cpp.
References isTree().
Referenced by DocCompiler::generateCode(), getSubSignals(), infereSigOrder(), infereSigType(), ppsig::print(), printSignal(), and sigvisitor::visit().
{ return isTree(t, SIGDOCWRITETBL, n, sig, widx, wsig); }


| bool isSigFConst | ( | Tree | s | ) |
Definition at line 138 of file signals.cpp.
References isTree().
Referenced by ScalarCompiler::generateCode(), DocCompiler::generateCode(), getSubSignals(), infereSigOrder(), infereSigType(), isVerySimpleFormula(), ppsig::print(), sigLabel(), verySimple(), and sigvisitor::visit().


| bool isSigFConst | ( | Tree | s, |
| Tree & | type, | ||
| Tree & | name, | ||
| Tree & | file | ||
| ) |
Definition at line 139 of file signals.cpp.
References isTree().

Definition at line 133 of file signals.cpp.
References isTree().
Referenced by ScalarCompiler::generateCode(), DocCompiler::generateCode(), getSubSignals(), infereSigOrder(), infereSigType(), ppsig::print(), sigLabel(), and sigvisitor::visit().


| bool isSigFixDelay | ( | Tree | t, |
| Tree & | t0, | ||
| Tree & | t1 | ||
| ) |
Definition at line 62 of file signals.cpp.
References isTree().
Referenced by VectorCompiler::CS(), ScalarCompiler::generateCode(), DocCompiler::generateCode(), getSubSignals(), OccMarkup::incOcc(), infereSigOrder(), infereSigType(), VectorCompiler::needSeparateLoop(), normalizeFixedDelayTerm(), ppsig::print(), printSignal(), setSigNickname(), sigLabel(), simplification(), and sigvisitor::visit().
{ return isTree(t, SIGFIXDELAY, t0, t1); }


| bool isSigFloatCast | ( | Tree | t | ) |
Definition at line 187 of file signals.cpp.
References isTree().
Referenced by ScalarCompiler::generateCode(), DocCompiler::generateCode(), getSubSignals(), infereSigOrder(), infereSigType(), ppsig::print(), printSignal(), sigFloatCast(), sigLabel(), simplification(), and sigvisitor::visit().
{ Tree x; return isTree(t, SIGFLOATCAST, x);}


| bool isSigFloatCast | ( | Tree | t, |
| Tree & | x | ||
| ) |
Definition at line 188 of file signals.cpp.
References isTree().
{ return isTree(t, SIGFLOATCAST, x); }

Definition at line 144 of file signals.cpp.
References isTree().
Referenced by ScalarCompiler::generateCode(), DocCompiler::generateCode(), getSubSignals(), infereSigOrder(), infereSigType(), ppsig::print(), sigLabel(), and sigvisitor::visit().


Definition at line 145 of file signals.cpp.
References isTree().

Definition at line 91 of file signals.cpp.
References isTree().
Referenced by computePrivatisation(), docTableConverter(), ScalarCompiler::generateCode(), ScalarCompiler::generateStaticTable(), ScalarCompiler::generateTable(), getSubSignals(), OccMarkup::incOcc(), infereSigOrder(), infereSigType(), ppsig::print(), printSignal(), ScalarCompiler::sharingAnnotation(), DocCompiler::sharingAnnotation(), sigLabel(), and sigvisitor::visit().


Definition at line 92 of file signals.cpp.
References CTree::node().

| bool isSigHBargraph | ( | Tree | s | ) |
Definition at line 274 of file signals.cpp.
References isTree(), max(), and min().
Referenced by Description::addWidget(), ScalarCompiler::generateCode(), DocCompiler::generateCode(), Compiler::generateWidgetCode(), Compiler::generateWidgetMacro(), getSubSignals(), infereSigOrder(), infereSigType(), ppsig::print(), sigLabel(), and sigvisitor::visit().
{ Tree lbl, min, max, x; return isTree(s, SIGHBARGRAPH, lbl, min, max, x); }


Definition at line 275 of file signals.cpp.
References isTree().
{ return isTree(s, SIGHBARGRAPH, lbl, min, max, x); }

| bool isSigHSlider | ( | Tree | s | ) |
Definition at line 212 of file signals.cpp.
References isTree().
Referenced by Description::addWidget(), ScalarCompiler::generateCode(), DocCompiler::generateCode(), Compiler::generateWidgetCode(), Compiler::generateWidgetMacro(), getSubSignals(), infereSigOrder(), infereSigType(), isVerySimpleFormula(), ppsig::print(), sigLabel(), and sigvisitor::visit().
{ Tree lbl, params; return isTree(s, SIGHSLIDER, lbl, params); }


Definition at line 214 of file signals.cpp.
References isTree(), and nth().
{
Tree params;
if (isTree(s, SIGHSLIDER, lbl, params)) {
cur = nth(params, 0);
min = nth(params, 1);
max = nth(params, 2);
step= nth(params, 3);
return true;
} else {
return false;
}
}

| bool isSigInput | ( | Tree | t, |
| int * | i | ||
| ) |
Definition at line 48 of file signals.cpp.
References isInt(), isTree(), and CTree::node().
Referenced by ScalarCompiler::generateCode(), DocCompiler::generateCode(), getSubSignals(), infereSigOrder(), infereSigType(), isVerySimpleFormula(), ppsig::print(), printSignal(), sigFloatCast(), sigLabel(), verySimple(), and sigvisitor::visit().


Definition at line 41 of file signals.cpp.
References isInt(), and CTree::node().
Referenced by ScalarCompiler::generateCode(), DocCompiler::generateCode(), DocCompiler::generateDocConstantTbl(), DocCompiler::generateDocWriteTbl(), VectorCompiler::generateFixDelay(), ScalarCompiler::generateFixDelay(), DocCompiler::generateFixDelay(), ScalarCompiler::generateIota(), DocCompiler::generateIota(), ScalarCompiler::generateStaticTable(), ScalarCompiler::generateTable(), getSubSignals(), infereSigOrder(), infereSigType(), isBoxNumeric(), isSigPow(), isVerySimpleFormula(), numericBoxSimplification(), ppsig::print(), ppsig::printFixDelay(), printSignal(), sigLabel(), verySimple(), and sigvisitor::visit().


| bool isSigIntCast | ( | Tree | t | ) |
Definition at line 184 of file signals.cpp.
References isTree().
Referenced by ScalarCompiler::generateCode(), DocCompiler::generateCode(), getSubSignals(), infereSigOrder(), infereSigType(), ppsig::print(), printSignal(), sigIntCast(), sigLabel(), simplification(), and sigvisitor::visit().
{ Tree x; return isTree(t, SIGINTCAST, x); }


| bool isSigIntCast | ( | Tree | t, |
| Tree & | x | ||
| ) |
Definition at line 185 of file signals.cpp.
References isTree().
{ return isTree(t, SIGINTCAST, x); }

Definition at line 70 of file signals.cpp.
References isTree().
Referenced by ScalarCompiler::generateCode(), DocCompiler::generateCode(), getSubSignals(), ppsig::print(), and sigLabel().


Definition at line 345 of file signals.cpp.
References isSigBinOp(), and kMul.
Referenced by normalizeFixedDelayTerm().
{
int op;
return isSigBinOp(a, &op, x, y) && (op == kMul);
}


| bool isSigNumEntry | ( | Tree | s | ) |
Definition at line 252 of file signals.cpp.
References isTree().
Referenced by Description::addWidget(), ScalarCompiler::generateCode(), DocCompiler::generateCode(), Compiler::generateWidgetCode(), Compiler::generateWidgetMacro(), getSubSignals(), infereSigOrder(), infereSigType(), isVerySimpleFormula(), ppsig::print(), sigLabel(), and sigvisitor::visit().
{ Tree lbl, params; return isTree(s, SIGNUMENTRY, lbl, params); }


Definition at line 254 of file signals.cpp.
References isTree(), and nth().
{
Tree params;
if (isTree(s, SIGNUMENTRY, lbl, params)) {
cur = nth(params, 0);
min = nth(params, 1);
max = nth(params, 2);
step= nth(params, 3);
return true;
} else {
return false;
}
}

| bool isSigOutput | ( | Tree | t, |
| int * | i, | ||
| Tree & | t0 | ||
| ) |
Definition at line 52 of file signals.cpp.
References isInt(), isTree(), and CTree::node().
Referenced by ScalarCompiler::generateCode(), DocCompiler::generateCode(), getSubSignals(), infereSigOrder(), infereSigType(), ppsig::print(), printSignal(), sigLabel(), and sigvisitor::visit().


| bool isSigPrefix | ( | Tree | t, |
| Tree & | t0, | ||
| Tree & | t1 | ||
| ) |
Definition at line 66 of file signals.cpp.
References isTree().
Referenced by ScalarCompiler::generateCode(), DocCompiler::generateCode(), getSubSignals(), OccMarkup::incOcc(), infereSigOrder(), infereSigType(), ppsig::print(), printSignal(), sigLabel(), and sigvisitor::visit().


| bool isSigRDTbl | ( | Tree | s, |
| Tree & | t, | ||
| Tree & | i | ||
| ) |
Definition at line 77 of file signals.cpp.
References isTree().
Referenced by docTableConverter(), ScalarCompiler::generateCode(), getSubSignals(), infereSigOrder(), infereSigType(), ppsig::print(), printSignal(), sigLabel(), and sigvisitor::visit().


Definition at line 44 of file signals.cpp.
References isDouble(), and CTree::node().
Referenced by ScalarCompiler::generateCode(), DocCompiler::generateCode(), getSubSignals(), infereSigOrder(), infereSigType(), isBoxNumeric(), isVerySimpleFormula(), numericBoxSimplification(), ppsig::print(), printSignal(), sigLabel(), verySimple(), and sigvisitor::visit().


| bool isSigSelect2 | ( | Tree | t, |
| Tree & | selector, | ||
| Tree & | s1, | ||
| Tree & | s2 | ||
| ) |
Definition at line 116 of file signals.cpp.
References isTree().
Referenced by ScalarCompiler::generateCode(), DocCompiler::generateCode(), getSubSignals(), infereSigOrder(), infereSigType(), ppsig::print(), sigLabel(), simplification(), and sigvisitor::visit().
{ return isTree(t, SIGSELECT2, selector, s1, s2); }


Definition at line 119 of file signals.cpp.
References isTree().
Referenced by ScalarCompiler::generateCode(), DocCompiler::generateCode(), getSubSignals(), OccMarkup::incOcc(), infereSigOrder(), infereSigType(), ppsig::print(), ScalarCompiler::sharingAnnotation(), sigLabel(), simplification(), and sigvisitor::visit().
{ return isTree(t, SIGSELECT3, selector, s1, s2, s3); }


Definition at line 351 of file signals.cpp.
References isSigBinOp(), and kSub.
{
int op;
return isSigBinOp(a, &op, x, y) && (op == kSub);
}

| bool isSigTable | ( | Tree | t, |
| Tree & | id, | ||
| Tree & | n, | ||
| Tree & | sig | ||
| ) |
Definition at line 85 of file signals.cpp.
References isTree().
Referenced by computePrivatisation(), docTableConverter(), ScalarCompiler::generateCode(), ScalarCompiler::generateRDTbl(), getSubSignals(), infereSigOrder(), infereSigType(), labelize(), ppsig::print(), printSignal(), sigLabel(), and sigvisitor::visit().


| bool isSigTuple | ( | Tree | s, |
| int * | mode, | ||
| Tree & | ls | ||
| ) |
Definition at line 375 of file signals.cpp.
References isInt(), isTree(), and CTree::node().
Referenced by sigCartesianProd(), and sigvisitor::visit().


| bool isSigTupleAccess | ( | Tree | s, |
| Tree & | ts, | ||
| Tree & | idx | ||
| ) |
Definition at line 380 of file signals.cpp.
References isTree().
Referenced by sigvisitor::visit().
{ return isTree(s, SIGTUPLEACCESS, ts, idx); }


| bool isSigVBargraph | ( | Tree | s | ) |
Definition at line 280 of file signals.cpp.
References isTree(), max(), and min().
Referenced by Description::addWidget(), ScalarCompiler::generateCode(), DocCompiler::generateCode(), Compiler::generateWidgetCode(), Compiler::generateWidgetMacro(), getSubSignals(), infereSigOrder(), infereSigType(), ppsig::print(), sigLabel(), and sigvisitor::visit().
{ Tree lbl, min, max, x; return isTree(s, SIGVBARGRAPH, lbl, min, max, x); }


Definition at line 281 of file signals.cpp.
References isTree().
{ return isTree(s, SIGVBARGRAPH, lbl, min, max, x); }

| bool isSigVSlider | ( | Tree | s | ) |
Definition at line 232 of file signals.cpp.
References isTree().
Referenced by Description::addWidget(), ScalarCompiler::generateCode(), DocCompiler::generateCode(), Compiler::generateWidgetCode(), Compiler::generateWidgetMacro(), getSubSignals(), infereSigOrder(), infereSigType(), isVerySimpleFormula(), ppsig::print(), sigLabel(), and sigvisitor::visit().
{ Tree lbl, params; return isTree(s, SIGVSLIDER, lbl, params); }


Definition at line 234 of file signals.cpp.
References isTree(), and nth().
{
Tree params;
if (isTree(s, SIGVSLIDER, lbl, params)) {
cur = nth(params, 0);
min = nth(params, 1);
max = nth(params, 2);
step= nth(params, 3);
return true;
} else {
return false;
}
}

Definition at line 81 of file signals.cpp.
References isTree().
Referenced by computePrivatisation(), docTableConverter(), ScalarCompiler::generateCode(), getSubSignals(), infereSigOrder(), infereSigType(), labelize(), ppsig::print(), printSignal(), sigLabel(), and sigvisitor::visit().


Definition at line 185 of file signals.hh.
References CTree::node().
Referenced by mterm::cleanup(), mterm::isNotZero(), aterm::normalizedTree(), mterm::normalizedTree(), normalizeFixedDelayTerm(), mterm::operator+=(), mterm::operator-=(), setSigNickname(), simplification(), and simplifyingAdd().


Definition at line 325 of file signals.cpp.
References minusNode(), CTree::node(), and tree().
Referenced by mterm::normalizedTree(), and mterm::operator-=().
{
Tree r = tree(minusNode(a->node()));
//cerr.flags(ios::showpoint); cerr << "minusNum " << *a << " -> " << *r << endl;
return r;
}


Definition at line 304 of file signals.cpp.
References mulNode(), CTree::node(), and tree().
Referenced by mterm::operator*=().
{
Tree r = tree(mulNode(a->node(),b->node()));
//cerr.flags(ios::showpoint); cerr << "mulNums " << *a << "*" << *b << " -> " << *r << endl;
return r;
}


Definition at line 148 of file signals.hh.
References kAdd, and sigBinOp().
Referenced by iterateSum(), mix(), normalizeFixedDelayTerm(), prim2name(), simplifyingAdd(), and yyparse().


Definition at line 154 of file signals.hh.
References kAND, and sigBinOp().
Referenced by prim2name(), and yyparse().


Definition at line 285 of file signals.cpp.
References tree().
Referenced by prim2name(), and yyparse().


Definition at line 125 of file signals.cpp.
References tree().
Referenced by sigAdd(), sigAND(), sigDiv(), sigEQ(), sigGE(), sigGT(), sigLE(), sigLeftShift(), sigLT(), sigMul(), sigNE(), sigOR(), sigRem(), sigRightShift(), sigSub(), and sigXOR().


Definition at line 198 of file signals.cpp.
References tree().
Referenced by propagate().


| Tree sigCartesianProd | ( | Tree | s1, |
| Tree | s2 | ||
| ) |
Definition at line 383 of file signals.cpp.
References concat(), isSigTuple(), list1(), and sigTuple().
{
Tree l1, l2;
int m1, m2;
if (isSigTuple(s1, &m1, l1) && (m1 == 0)) {
// nothing to do
} else {
l1 = list1(s1);
}
if (isSigTuple(s2, &m2, l2) && (m2 == 0)) {
// nothing to do
} else {
l2 = list1(s2);
}
return sigTuple(0, concat(l1,l2));
}

| Tree sigCheckbox | ( | Tree | label | ) |
Definition at line 204 of file signals.cpp.
References tree().
Referenced by propagate().
{ return tree(SIGCHECKBOX, lbl); }


Definition at line 55 of file signals.cpp.
References sigFixDelay(), and sigInt().
Referenced by makeSigProjList().
{ return sigFixDelay(t0, sigInt(0));}


Definition at line 57 of file signals.cpp.
References tree().
Referenced by makeMemSigProjList(), prim1name(), and yyparse().


Definition at line 151 of file signals.hh.
References kDiv, and sigBinOp().
Referenced by combineDivLeft(), mterm::normalizedTree(), normalizeFixedDelayTerm(), prim2name(), and yyparse().


| Tree sigDocAccessTbl | ( | Tree | doctbl, |
| Tree | ridx | ||
| ) |
Definition at line 106 of file signals.cpp.
References tree().
Referenced by docTableConverter().
{ return tree(SIGDOCACCESSTBL, tbl, ridx); }


| Tree sigDocConstantTbl | ( | Tree | n, |
| Tree | init | ||
| ) |
Definition at line 98 of file signals.cpp.
References tree().
Referenced by docTableConverter().
{ return tree(SIGDOCONSTANTTBL, n, sig); }


Definition at line 102 of file signals.cpp.
References tree().
Referenced by docTableConverter().
{ return tree(SIGDOCWRITETBL, n, sig, widx, wsig); }


Definition at line 165 of file signals.hh.
References kEQ, and sigBinOp().
Referenced by prim2name(), and yyparse().


Definition at line 137 of file signals.cpp.
References tree().
Referenced by propagate().


Definition at line 132 of file signals.cpp.
References tree().
Referenced by propagate().


| Tree sigFixDelay | ( | Tree | t0, |
| Tree | t1 | ||
| ) |
Definition at line 61 of file signals.cpp.
References sigIntCast(), and tree().
Referenced by normalizeFixedDelayTerm(), prim2name(), sigDelay0(), and yyparse().
{ return tree(SIGFIXDELAY, t0, sigIntCast(t1)); }


| Tree sigFloatCast | ( | Tree | t | ) |
Definition at line 170 of file signals.cpp.
References isDouble(), isInt(), isSigFloatCast(), isSigInput(), CTree::node(), and tree().
Referenced by prim1name(), and yyparse().
{
Node n = t->node();
int i; if (isInt(n, &i)) return tree(double(i));
double x; if (isDouble(n, &x)) return t;
if (isSigFloatCast(t)) return t;
if (isSigInput(t, &i)) return t;
return tree(SIGFLOATCAST, t);
}


Definition at line 143 of file signals.cpp.
References tree().
Referenced by propagate().


Definition at line 163 of file signals.hh.
References kGE, and sigBinOp().
Referenced by prim2name(), and yyparse().


Definition at line 90 of file signals.cpp.
References tree().
Referenced by sigReadOnlyTable(), and sigWriteReadTable().


Definition at line 161 of file signals.hh.
References kGT, and sigBinOp().
Referenced by prim2name(), and yyparse().


Definition at line 273 of file signals.cpp.
References tree().
Referenced by propagate().
{ return tree(SIGHBARGRAPH, lbl, min, max, x); }


Definition at line 210 of file signals.cpp.
References list4(), and tree().
Referenced by propagate().
{ return tree(SIGHSLIDER, lbl, list4(cur,min,max,step)); }


Definition at line 47 of file signals.cpp.
References tree().
Referenced by makeSigInputList(), and propagate().


Signals Block-diagrams are converted into signal expressions via symbolic propagation.
Definition at line 40 of file signals.cpp.
References tree().
Referenced by mix(), propagate(), sigDelay0(), and sigPow().
{ return tree(i); }


| Tree sigIntCast | ( | Tree | t | ) |
Definition at line 159 of file signals.cpp.
References isDouble(), isInt(), isSigIntCast(), CTree::node(), and tree().
Referenced by prim1name(), sigFixDelay(), sigSelect2(), sigSelect3(), and yyparse().
{
Node n = t->node();
int i; if (isInt(n, &i)) return t;
double x; if (isDouble(n, &x)) return tree(int(x));
if (isSigIntCast(t)) return t;
return tree(SIGINTCAST, t);
}


Definition at line 69 of file signals.cpp.
References tree().

Definition at line 164 of file signals.hh.
References kLE, and sigBinOp().
Referenced by prim2name(), and yyparse().


| Tree sigLeftShift | ( | Tree | x, |
| Tree | y | ||
| ) | [inline] |
Definition at line 158 of file signals.hh.
References kLsh, and sigBinOp().
Referenced by prim2name(), and yyparse().


Definition at line 162 of file signals.hh.
References kLT, and sigBinOp().
Referenced by prim2name(), and yyparse().


Definition at line 150 of file signals.hh.
References kMul, and sigBinOp().
Referenced by combineMulLeft(), aterm::factorize(), isInverter(), iterateProd(), normalizeFixedDelayTerm(), prim2name(), and yyparse().


Definition at line 166 of file signals.hh.
References kNE, and sigBinOp().
Referenced by prim2name(), and yyparse().


Definition at line 250 of file signals.cpp.
References list4(), and tree().
Referenced by propagate().
{ return tree(SIGNUMENTRY, lbl, list4(cur,min,max,step)); }


Definition at line 155 of file signals.hh.
References kOR, and sigBinOp().
Referenced by prim2name(), and yyparse().


Definition at line 65 of file signals.cpp.
References tree().
Referenced by applyList(), prim2name(), and yyparse().


Definition at line 150 of file signals.cpp.
References tree().
Referenced by ScalarCompiler::generateRec(), DocCompiler::generateRec(), makeMemSigProjList(), and makeSigProjList().


Definition at line 76 of file signals.cpp.
References tree().
Referenced by sigReadOnlyTable(), and sigWriteReadTable().


| Tree sigReadOnlyTable | ( | Tree | n, |
| Tree | init, | ||
| Tree | ridx | ||
| ) | [inline] |
Definition at line 100 of file signals.hh.
References nil, sigGen(), sigRDTbl(), and sigTable().
Referenced by prim3name(), and yyparse().


Definition at line 43 of file signals.cpp.
References tree().
Referenced by propagate().
{ return tree(r); }


Definition at line 152 of file signals.hh.
References kRem, and sigBinOp().
Referenced by prim2name(), and yyparse().


| Tree sigRightShift | ( | Tree | x, |
| Tree | y | ||
| ) | [inline] |
Definition at line 159 of file signals.hh.
References kRsh, and sigBinOp().
Referenced by prim2name(), and yyparse().


| Tree sigSelect2 | ( | Tree | selector, |
| Tree | s1, | ||
| Tree | s2 | ||
| ) |
Definition at line 115 of file signals.cpp.
References sigIntCast(), and tree().
Referenced by prim3name(), simplification(), and yyparse().
{ return tree(SIGSELECT2, sigIntCast(selector), s1, s2); }


Definition at line 118 of file signals.cpp.
References sigIntCast(), and tree().
Referenced by prim4name(), and yyparse().
{ return tree(SIGSELECT3, sigIntCast(selector), s1, s2, s3); }


Definition at line 149 of file signals.hh.
References kSub, and sigBinOp().
Referenced by isInverter(), aterm::normalizedTree(), prim2name(), and yyparse().


Definition at line 84 of file signals.cpp.
References tree().
Referenced by labelize(), sigReadOnlyTable(), and sigWriteReadTable().


Definition at line 374 of file signals.cpp.
References tree().
Referenced by sigCartesianProd().


| Tree sigTupleAccess | ( | Tree | ts, |
| Tree | idx | ||
| ) |
Definition at line 379 of file signals.cpp.
References tree().
{ return tree(SIGTUPLEACCESS, ts, idx); }

Definition at line 279 of file signals.cpp.
References tree().
Referenced by propagate().
{ return tree(SIGVBARGRAPH, lbl, min, max, x); }


Definition at line 230 of file signals.cpp.
References list4(), and tree().
Referenced by propagate().
{ return tree(SIGVSLIDER, lbl, list4(cur,min,max,step)); }


Definition at line 95 of file signals.hh.
References nil, sigGen(), sigRDTbl(), sigTable(), and sigWRTbl().
Referenced by prim5name(), and yyparse().


Definition at line 80 of file signals.cpp.
References tree().
Referenced by computePrivatisation(), labelize(), and sigWriteReadTable().


Definition at line 156 of file signals.hh.
References kXOR, and sigBinOp().
Referenced by prim2name(), and yyparse().


Definition at line 297 of file signals.cpp.
References CTree::node(), subNode(), and tree().
Referenced by mterm::operator-=().
{
Tree r = tree(subNode(a->node(),b->node()));
//cerr.flags(ios::showpoint); cerr << "subNums " << *a << "-" << *b << " -> " << *r << endl;
return r;
}


| bool verySimple | ( | Tree | exp | ) |
Test if exp is very simple that is it can't be considered a real component.
| exp | the signal we want to test |
Definition at line 412 of file signals.cpp.
References isSigFConst(), isSigInput(), isSigInt(), isSigReal(), and name().
Referenced by VectorCompiler::generateCacheCode(), VectorCompiler::generateDelayVec(), and VectorCompiler::needSeparateLoop().
{
int i;
double r;
Tree type, name, file;
return isSigInt(exp, &i)
|| isSigReal(exp, &r)
|| isSigInput(exp, &i)
|| isSigFConst(exp, type, name, file);
}


1.8.0