47
47
'EXP' => [ 1, sub{ $_[0]->exponent() } ],
48
48
'FLOOR' => [ 1, sub{ $_[0]->bfloor(); } ],
49
49
'CEIL' => [ 1, sub{ $_[0]->bceil(); } ],
50
'LT' => [ 2, sub{ $_[0] < $_[1] ? 1:0; } ],
51
'LE' => [ 2, sub{ $_[0] <= $_[1] ? 1:0; } ],
52
'GT' => [ 2, sub{ $_[0] > $_[1] ? 1:0; } ],
53
'GE' => [ 2, sub{ $_[0] >= $_[1] ? 1:0; } ],
54
'EQ' => [ 2, sub{ $_[0] == $_[1] ? 1:0; } ],
50
'LT' => [ 2, sub{ ($_[0] < $_[1]) ? 1:0; } ],
51
'LE' => [ 2, sub{ ($_[0] <= $_[1]) ? 1:0; } ],
52
'GT' => [ 2, sub{ ($_[0] > $_[1]) ? 1:0; } ],
53
'GE' => [ 2, sub{ ($_[0] >= $_[1]) ? 1:0; } ],
54
'EQ' => [ 2, sub{ ($_[0] == $_[1]) ? 1:0; } ],
55
55
'IF' => [ 3, sub{ $_[0] ? $_[1] : $_[2]; } ],
56
'MIN' => [ 2, sub{ $_[0] < $_[1] ? $_[0] : $_[1]; } ],
57
'MAX' => [ 2, sub{ $_[0] > $_[1] ? $_[0] : $_[1]; } ],
56
'MIN' => [ 2, sub{ ($_[0] < $_[1]) ? $_[0] : $_[1]; } ],
57
'MAX' => [ 2, sub{ ($_[0] > $_[1]) ? $_[0] : $_[1]; } ],
58
58
'UN' => [ 1, sub{ defined($_[0]) ? $_[0]->is_nan() : 1; }, 1 ],
59
59
'UNKN' => [ 0, sub{ undef; } ],
60
60
# Operators not defined in RRDtool graph
61
'NE' => [ 2, sub{ $_[0] != $_[1] ? 1:0; } ],
62
'AND' => [ 2, sub{ $_[0] and $_[1] ? 1:0; } ],
63
'OR' => [ 2, sub{ $_[0] or $_[1] ? 1:0; } ],
64
'NOT' => [ 1, sub{ not $_[0] ? 1:0; } ],
61
'NE' => [ 2, sub{ ($_[0] != $_[1]) ? 1:0; } ],
62
'AND' => [ 2, sub{ ($_[0] and $_[1]) ? 1:0; } ],
63
'OR' => [ 2, sub{ ($_[0] or $_[1]) ? 1:0; } ],
64
'NOT' => [ 1, sub{ (not $_[0]) ? 1:0; } ],
65
65
'ABS' => [ 1, sub{ abs($_[0]); } ],
66
66
'NOW' => [ 0, sub{ time(); } ],
67
'DUP' => [ 1, sub{ ($_[0], $_[0]);} ],
68
'EXC' => [ 2, sub{ ($_[1], $_[0]); } ]
67
'DUP' => [ 1, sub{ ($_[0], $_[0]);}, 1 ],
68
'EXC' => [ 2, sub{ ($_[1], $_[0]); }, 1 ],
69
'NUM' => [ 1, sub{ defined($_[0]) ? $_[0] : 0; }, 1 ],
70
'INF' => [ 0, sub{ Math::BigFloat->binf(); } ],
71
'NEGINF' => [ 0, sub{ Math::BigFloat->binf('-'); } ]