FAUST compiler
0.9.9.6b8
Main Page
Related Pages
Namespaces
Classes
Files
File List
File Members
extended
ceilprim.cpp
Go to the documentation of this file.
1
#include "
xtended.hh
"
2
#include "
Text.hh
"
3
#include <math.h>
4
5
#include "
floats.hh
"
6
7
class
CeilPrim
:
public
xtended
8
{
9
10
public
:
11
12
CeilPrim
() :
xtended
(
"ceil"
) {}
13
14
virtual
unsigned
int
arity
() {
return
1; }
15
16
virtual
bool
needCache
() {
return
true
; }
17
18
virtual
Type
infereSigType
(
const
vector<Type>& args)
19
{
20
assert (args.size() ==
arity
());
21
return
floatCast
(args[0]);
22
}
23
24
virtual
void
sigVisit
(
Tree
sig,
sigvisitor
* visitor) {}
25
26
virtual
int
infereSigOrder
(
const
vector<int>& args) {
27
assert (args.size() ==
arity
());
28
return
args[0];
29
}
30
31
32
virtual
Tree
computeSigOutput
(
const
vector<Tree>& args) {
33
num
n;
34
assert (args.size() ==
arity
());
35
if
(
isNum
(args[0],n)) {
36
return
tree
(ceil(
double
(n)));
37
}
else
{
38
return
tree
(
symbol
(), args[0]);
39
}
40
}
41
42
virtual
string
generateCode
(
Klass
* klass,
const
vector<string>& args,
const
vector<Type>& types)
43
{
44
assert (args.size() ==
arity
());
45
assert (types.size() ==
arity
());
46
47
return
subst
(
"ceil$1($0)"
, args[0],
isuffix
());
48
}
49
50
virtual
string
generateLateq
(
Lateq
* lateq,
const
vector<string>& args,
const
vector<Type>& types)
51
{
52
assert (args.size() ==
arity
());
53
assert (types.size() ==
arity
());
54
55
return
subst
(
"\\left\\lceil $0 \\right\\rceil"
, args[0]);
56
}
57
58
};
59
60
61
xtended
*
gCeilPrim
=
new
CeilPrim
();
62
63
CeilPrim::generateLateq
virtual string generateLateq(Lateq *lateq, const vector< string > &args, const vector< Type > &types)
Definition:
ceilprim.cpp:50
xtended.hh
num
Definition:
num.hh:58
CeilPrim::sigVisit
virtual void sigVisit(Tree sig, sigvisitor *visitor)
Definition:
ceilprim.cpp:24
CeilPrim::arity
virtual unsigned int arity()
Definition:
ceilprim.cpp:14
isNum
bool isNum(Tree a)
Definition:
signals.hh:187
P
Definition:
smartpointer.hh:34
CTree
A CTree = (Node x [CTree]) is a Node associated with a list of subtrees called branches.
Definition:
tree.hh:109
Lateq
Definition:
lateq.hh:56
sigvisitor
Definition:
sigvisitor.hh:6
xtended
Definition:
xtended.hh:12
CeilPrim::CeilPrim
CeilPrim()
Definition:
ceilprim.cpp:12
CeilPrim
Definition:
ceilprim.cpp:7
floatCast
Type floatCast(Type t)
Definition:
sigtype.hh:270
subst
string subst(const string &model, const vector< string > &args)
Text substitution.
Definition:
Text.cpp:47
CeilPrim::computeSigOutput
virtual Tree computeSigOutput(const vector< Tree > &args)
Definition:
ceilprim.cpp:32
Text.hh
Klass
Definition:
klass.hh:55
floats.hh
xtended::symbol
Sym symbol()
Definition:
xtended.hh:24
CeilPrim::needCache
virtual bool needCache()
Definition:
ceilprim.cpp:16
CeilPrim::infereSigOrder
virtual int infereSigOrder(const vector< int > &args)
Definition:
ceilprim.cpp:26
tree
Tree tree(const Node &n)
Definition:
tree.hh:186
gCeilPrim
xtended * gCeilPrim
Definition:
ceilprim.cpp:61
isuffix
const char * isuffix()
suffix for math functions
Definition:
floats.cpp:43
CeilPrim::generateCode
virtual string generateCode(Klass *klass, const vector< string > &args, const vector< Type > &types)
Definition:
ceilprim.cpp:42
CeilPrim::infereSigType
virtual Type infereSigType(const vector< Type > &args)
Definition:
ceilprim.cpp:18
Generated on Fri Sep 5 2014 18:06:36 for FAUST compiler by
1.8.7