开源 企业版 高校版 私有云 模力方舟 AI 队友
代码拉取完成,页面将自动刷新
加入 Gitee
与超过 1400万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
已有帐号? 立即登录
文件
master
分支 (3)
标签 (23)
master
dependabot/github_actions/codecov/codecov-action-5
vs/235
v0.8.4
v0.8.3
v0.8.2
v0.8.1
v0.8.0
v0.7.5
v0.7.4
v0.7.3
v0.7.2
v0.7.1
v0.7.0
v0.6.0
v0.5.5
v0.5.4
v0.5.3
v0.5.2
v0.5.1
v0.5.0
v0.4.1
v0.4
master
分支 (3)
标签 (23)
master
dependabot/github_actions/codecov/codecov-action-5
vs/235
v0.8.4
v0.8.3
v0.8.2
v0.8.1
v0.8.0
v0.7.5
v0.7.4
v0.7.3
v0.7.2
v0.7.1
v0.7.0
v0.6.0
v0.5.5
v0.5.4
v0.5.3
v0.5.2
v0.5.1
v0.5.0
v0.4.1
v0.4
克隆/下载
克隆/下载
提示
下载代码请复制以下命令到终端执行
为确保你提交的代码身份被 Gitee 正确识别,请执行以下命令完成配置
初次使用 SSH 协议进行代码克隆、推送等操作时,需按下述提示完成 SSH 配置
1 生成 RSA 密钥
2 获取 RSA 公钥内容,并配置到 SSH公钥
在 Gitee 上使用 SVN,请访问 使用指南
使用 HTTPS 协议时,命令行会出现如下账号密码验证步骤。基于安全考虑,Gitee 建议 配置并使用私人令牌 替代登录密码进行克隆、推送等操作
Username for 'https://gitee.com': userName
Password for 'https://userName@gitee.com': # 私人令牌
master
分支 (3)
标签 (23)
master
dependabot/github_actions/codecov/codecov-action-5
vs/235
v0.8.4
v0.8.3
v0.8.2
v0.8.1
v0.8.0
v0.7.5
v0.7.4
v0.7.3
v0.7.2
v0.7.1
v0.7.0
v0.6.0
v0.5.5
v0.5.4
v0.5.3
v0.5.2
v0.5.1
v0.5.0
v0.4.1
v0.4
openlibm
/
test
/
libm-bench.cpp
openlibm
/
test
/
libm-bench.cpp
libm-bench.cpp 2.74 KB
一键复制 编辑 原始数据 按行查看 历史
Simon Byrne 提交于 2014年12月05日 17:33 +08:00 . change include path to build on linux, fix .gitignore
// Copyright (C) Dahua Lin, 2014. Provided under the MIT license.
// Benchmark on libm functions
#include <math.h>
#include <time.h>
#include <stdio.h>
#include <stdlib.h>
// Timing facilities
#ifdef __MACH__
#include <mach/mach_time.h>
class stimer
{
public:
typedef uint64_t time_type;
stimer()
{
::mach_timebase_info(&m_baseinfo);
}
time_type current() const
{
return ::mach_absolute_time();
}
double span(const time_type& t0, const time_type& t1) const
{
uint64_t d = (m_baseinfo.numer * (t1 - t0)) / m_baseinfo.denom;
return static_cast<double>(d) / 1.0e9;
}
private:
mach_timebase_info_data_t m_baseinfo;
};
#else
class stimer
{
public:
typedef timespec time_type;
time_type current() const
{
time_type t;
::clock_gettime(CLOCK_REALTIME, &t);
return t;
}
double span(const time_type& t0, const time_type& t1) const
{
return double(t1.tv_sec - t0.tv_sec) +
double(t1.tv_nsec - t0.tv_nsec) * 1.0e-9;
}
};
#endif
inline double sec2mps(double s, long n)
{
return n / (s * 1e6);
}
const long ARR_LEN = 1024;
double a[ARR_LEN];
double b[ARR_LEN];
double r[ARR_LEN];
#define TFUN1(FNAME) \
void test_##FNAME(long n) { \
for (int j = 0; j < ARR_LEN; ++j) r[j] = FNAME(a[j]); \
stimer tm; \
stimer::time_type t0 = tm.current(); \
for(int i = 0; i < n; ++i) { \
for (int j = 0; j < ARR_LEN; ++j) r[j] = FNAME(a[j]); \
} \
double s = tm.span(t0, tm.current()); \
double mps = sec2mps(s, n * ARR_LEN); \
printf(" %-8s: %7.4f MPS\n", #FNAME, mps); }
#define TFUN2(FNAME) \
void test_##FNAME(long n) { \
for (int j = 0; j < ARR_LEN; ++j) r[j] = FNAME(a[j], b[j]); \
stimer tm; \
stimer::time_type t0 = tm.current(); \
for(int i = 0; i < n; ++i) { \
for (int j = 0; j < ARR_LEN; ++j) r[j] = FNAME(a[j], b[j]); \
} \
double s = tm.span(t0, tm.current()); \
double mps = sec2mps(s, n * ARR_LEN); \
printf(" %-8s: %7.4f MPS\n", #FNAME, mps); }
#define TCALL(FNAME) test_##FNAME(20000)
// define benchmark functions
TFUN2(pow)
TFUN2(hypot)
TFUN1(exp)
TFUN1(log)
TFUN1(log10)
TFUN1(sin)
TFUN1(cos)
TFUN1(tan)
TFUN1(asin)
TFUN1(acos)
TFUN1(atan)
TFUN2(atan2)
int main(int argc, char *argv[])
{
// initialize array contents
for (int i = 0; i < ARR_LEN; ++i)
{
a[i] = rand() / (double) RAND_MAX;
b[i] = rand() / (double) RAND_MAX;
}
TCALL(pow);
TCALL(hypot);
TCALL(exp);
TCALL(log);
TCALL(log10);
TCALL(sin);
TCALL(cos);
TCALL(tan);
TCALL(asin);
TCALL(acos);
TCALL(atan);
TCALL(atan2);
return 0;
}
Loading...
举报
举报成功
我们将于2个工作日内通过站内信反馈结果给你!
请认真填写举报原因,尽可能描述详细。
请选择举报类型
取消
发送
误判申诉

此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。

如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。

取消
提交

简介

fork from https://github.com/JuliaMath/openlibm.git
暂无标签
未知许可证
查看未知开源许可协议
取消

发行版

暂无发行版

贡献者

全部

近期动态

不能加载更多了
编辑仓库简介
简介内容
主页
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
1
https://gitee.com/source-code-sync/openlibm.git
git@gitee.com:source-code-sync/openlibm.git
source-code-sync
openlibm
openlibm
master
点此查找更多帮助

搜索帮助

评论
仓库举报
回到顶部
登录提示
该操作需登录 Gitee 帐号,请先登录后再操作。
立即登录
没有帐号,去注册

AltStyle によって変換されたページ (->オリジナル) /