Skip to content

Latest commit

 

History

History
 
 

Folders and files

NameName
Last commit message
Last commit date

parent directory

..
 
 
 
 
 
 
 
 
On some machines, expf() turns out to be very slow: much slower than its double precision counterpart exp().
Probably this is concerned with the version of glibc.

Here are a couple of examples:

Normal behaviour:

configuration$ ldd --version | head -1 | awk '{print $NF}'
2.15

configuration$ ./exp-test
exp() time: 0.00249362
expf() time: 0.0017401

Slow behaviour:

configuration$ ldd --version | head -1 | awk '{print $NF}'
2.11.1

configuration$ ./exp-test
exp() time: 0.0028439
expf() time: 0.00713329

If slow behaviour is detected, then KALDI_NO_EXPF macro will be used, and the Exp() wrapper in base/kaldi-math.h will use exp() even for single precision floats.
The behaviour of expf() is considered to be slow if it is slower than exp() by at least 10%.