mirror of
https://github.com/capstone-engine/llvm-capstone.git
synced 2025-02-04 16:26:46 +00:00
Implement log10
v2: Use constant and multiplication instead of division v3: Use hex constants Signed-off-by: Jan Vesely <jan.vesely@rutgers.edu> llvm-svn: 227585
This commit is contained in:
parent
206d1160ce
commit
51702e6e75
@ -50,6 +50,7 @@
|
||||
#include <clc/math/fmod.h>
|
||||
#include <clc/math/hypot.h>
|
||||
#include <clc/math/log.h>
|
||||
#include <clc/math/log10.h>
|
||||
#include <clc/math/log1p.h>
|
||||
#include <clc/math/log2.h>
|
||||
#include <clc/math/mad.h>
|
||||
|
9
libclc/generic/include/clc/math/log10.h
Normal file
9
libclc/generic/include/clc/math/log10.h
Normal file
@ -0,0 +1,9 @@
|
||||
#undef log10
|
||||
|
||||
#define __CLC_BODY <clc/math/unary_decl.inc>
|
||||
#define __CLC_FUNCTION log10
|
||||
|
||||
#include <clc/math/gentype.inc>
|
||||
|
||||
#undef __CLC_BODY
|
||||
#undef __CLC_FUNCTION
|
@ -63,6 +63,7 @@ math/fmax.cl
|
||||
math/fmin.cl
|
||||
math/fmod.cl
|
||||
math/hypot.cl
|
||||
math/log10.cl
|
||||
math/log1p.cl
|
||||
math/mad.cl
|
||||
math/mix.cl
|
||||
|
8
libclc/generic/lib/math/log10.cl
Normal file
8
libclc/generic/lib/math/log10.cl
Normal file
@ -0,0 +1,8 @@
|
||||
#include <clc/clc.h>
|
||||
|
||||
#ifdef cl_khr_fp64
|
||||
#pragma OPENCL EXTENSION cl_khr_fp64 : enable
|
||||
#endif
|
||||
|
||||
#define __CLC_BODY <log10.inc>
|
||||
#include <clc/math/gentype.inc>
|
13
libclc/generic/lib/math/log10.inc
Normal file
13
libclc/generic/lib/math/log10.inc
Normal file
@ -0,0 +1,13 @@
|
||||
_CLC_OVERLOAD _CLC_DEF __CLC_GENTYPE log10(__CLC_GENTYPE val) {
|
||||
// log10(x) = log2(x) / log2(10)
|
||||
// 1 / log2(10) = 0.30102999566 = log10(2)
|
||||
// SP representation is 0.30103 (0x1.344136p-2)
|
||||
// DP representation is 0.301029995659999993762312442414(0x1.34413509E61D8p-2)
|
||||
#if __CLC_FPSIZE == 32
|
||||
return log2(val) * 0x1.344136p-2f;
|
||||
#elif __CLC_FPSIZE == 64
|
||||
return log2(val) * 0x1.34413509E61D8p-2;
|
||||
#else
|
||||
#error unknown _CLC_FPSIZE
|
||||
#endif
|
||||
}
|
Loading…
x
Reference in New Issue
Block a user