Public Member Functions | |
void | visit (const power &e) |
void | visit (const mul &e) |
void | visit (const add &e) |
void | visit (const function &e) |
Public Attributes | |
ExStats | es |
Definition at line 1313 of file ginac_tools.cpp.
void SyFi::ExStatsVisitor::visit | ( | const function & | e | ) | [inline] |
Definition at line 1357 of file ginac_tools.cpp.
References es, and SyFi::ExStats::functions.
01358 { 01359 //cout << "func" << endl; 01360 es.functions++; 01361 }
void SyFi::ExStatsVisitor::visit | ( | const add & | e | ) | [inline] |
Definition at line 1350 of file ginac_tools.cpp.
References SyFi::ExStats::adds, es, and SyFi::ExStats::flops.
01351 { 01352 //cout << "add" << endl; 01353 es.adds += e.nops()-1; 01354 es.flops += e.nops()-1; 01355 }
void SyFi::ExStatsVisitor::visit | ( | const mul & | e | ) | [inline] |
Definition at line 1343 of file ginac_tools.cpp.
References es, SyFi::ExStats::flops, and SyFi::ExStats::muls.
01344 { 01345 //cout << "mul" << endl; 01346 es.muls += e.nops()-1; 01347 es.flops += e.nops()-1; 01348 }
void SyFi::ExStatsVisitor::visit | ( | const power & | e | ) | [inline] |
Definition at line 1323 of file ginac_tools.cpp.
References es, SyFi::ExStats::flops, SyFi::ExStats::muls, test::n, and SyFi::ExStats::pows.
01324 { 01325 //cout << "pow" << endl; 01326 ex b = e.op(1); 01327 ex c = b.evalf(); 01328 if( is_a<numeric>(c) ) 01329 { 01330 numeric nu = ex_to<numeric>(c); 01331 int n = (int) to_double(nu); 01332 if( is_zero(nu-n) ) 01333 { 01334 // is an integer power, interpret as a sequence of multiplications 01335 es.muls += n-1; 01336 es.flops += n-1; 01337 } 01338 } 01339 01340 es.pows++; 01341 }