本手册介绍了libquadmath的使用,即GCC Quad-Precision数学库应用程序编程接口(API)

1 Typedef和常量
以下数据类型已通过typedef定义。
__complex128:基于__float128的复数
定义了以下宏,它们给出了__float128数据的数字限制
类型。
FLT128_MAX:最大的fnite数
FLT128_MIN:具有全精度的最小正数
FLT128_EPSILON:介于1和下一个较大的区域之间
可表示的数字
FLT128_DENORM_MIN:最小的正非规范化数
FLT128_MANT_DIG:尾数中的位数(位精度)
FLT128_MIN_EXP:最大负指数
FLT128_MAX_EXP:最大正指数
FLT128_DIG:尾数中的小数位数
FLT128_MIN_10_EXP:最大负小数指数
FLT128_MAX_10_EXP:最大正十进制指数
定义了以下__float128类型的数学常量。
M_Eq:常数e(欧拉数)
M_LOG2Eq:2的二进制对数
M_LOG10Eq:常用,十进制对数为2
M_LN2q:2的自然对数
M_LN10q:10的自然对数
M_PIq:pi
M_PI_2q:pi除以2
M_PI_4q:pi除以4
M_1_PIq:一个超过pi
M_2_PIq:一个超过两个pi
M_2_SQRTPIq:两个超过pi的平方根
M_SQRT2q:平方根2
M_SQRT1_2q:一个超过2的平方根

可以使用以下数学函数:
acosq:反余弦函数
acoshq:反双曲余弦函数
asinq:arc sine函数
asinhq:反双曲正弦函数
atanq:反正切函数
atanhq:反双曲正切函数
atan2q:反正切函数
cbrtq:立方根函数
ceilq:上限值函数
copysignq:复制数字的标志
coshq:双曲余弦函数
cosq:余弦函数
erfq:错误功能
erfcq:互补错误功能
expq:指数函数
expm1q:指数减1函数

fabsq:绝对值函数
fdimq:正面差异函数
finiteq:检查价值的有限性
floorq:价值函数
fmaq:融合乘法和加法
fmaxq:确定两个值的最大值
fminq:确定最少两个值
fmodq:余数值函数
frexpq:提取尾数和指数
hypotq:Eucledian距离函数
ilogbq:得到值的指数
isinfq:检查infnity
isnanq:检查不是数字
j0q:第一种贝塞尔函数,第一阶
j1q:第一种贝塞尔函数,二阶
jnq:第一类,第n级的贝塞尔函数
ldexpq:加载指数的值
lgammaq:对数伽玛函数
llrintq:舍入到最接近的整数值
llroundq:从零开始舍入到最接近的整数值
logbq:得到值的指数
logq:自然对数函数
log10q:基数10对数函数
log1pq:计算值的自然对数加1
log2q:base 2对数函数

lrintq:舍入到最接近的整数值
lroundq:从零开始舍入到最接近的整数值
modfq:分解浮点数
nanq:回归安静的NaN
nearbyintq:舍入到最接近的整数
nextafterq:下一个可表示的浮点数
powq:电源功能
remainderq:余数函数
remquoq:余数和商的一部分
rintq:舍入到最接近的整数值
roundq:舍入到最接近的整数值,返回__float128
scalblnq:使用FLT_RADIX计算指数
scalbnq:使用FLT_RADIX计算指数
signbitq:返回符号位
sincosq:同时计算正弦和余弦
sinhq:双曲正弦函数
sinq:正弦函数
sqrtq:平方根函数
tanq:正切函数
tanhq:双曲正切函数
tgammaq:真正的伽玛函数
truncq:舍入为整数,朝向零
y0q:第二种贝塞尔函数,第一种
y1q:第二种贝塞尔函数,二阶
ynq:第二种贝塞尔函数,第n阶
cabsq复数绝对值函数
cargq:计算参数
cimagq虚数的复数
crealq:复数的真实部分
cacoshq:复弧双曲余弦函数
cacosq:复杂的余弦函数
casinhq:复杂的弧双曲正弦函数
casinq:复杂的正弦函数
catanhq:复圆弧双曲正切函数
catanq:复杂的反正切函数
ccosq复合余弦函数:
ccoshq:复杂的双曲余弦函数
cexpq:复指数函数
cexpiq:计算“i”乘以a的指数函数真正的价值

clogq:复杂的自然对数
clog10q:复数碱基10对数
conjq:复共轭函数
cpowq:复杂的电源功能
cprojq:项目进入Riemann Sphere
csinq:复杂的正弦函数
csinhq:复杂的双曲正弦函数
csqrtq:复数平方根
ctanq:复杂的切线函数
ctanhq:复双曲正切函数

3.1

strtoflt128 — Convert from string
The function strtoflt128 converts a string into a __float128 number.
Syntax __float128 strtoflt128 (const char *s, char **sp)Example
#include <quadmath.h>
int main ()
{
__float128 r;
r = strtoflt128 ("1.2345678", NULL);
return 0;
}

3.2

quadmath_snprintf — Convert to string
The function quadmath_snprintf converts a __float128 floating-point number into a
string. It is a specialized alternative to snprintf, where the format string is restricted
to a single conversion specifer with Q modifer and conversion specifer e, E, f, F, g, G, a or
A, with no extra characters before or after the conversion specifer. The %m$ or *m$ style
must not be used in the format.
Syntax int quadmath_snprintf (char *s, size_t size, const char *format,
...)
Arguments:
s output string
size byte size of the string, including tailing NUL
format conversion specifer string
Note On some targets when supported by the C library hooks are installed for printf
family of functions, so that printf ("%Qe", 1.2Q); etc. works too.
Example
#include <quadmath.h>
#include <stdlib.h>
#include <stdio.h>
int main ()
{
__float128 r;
int prec = 20;
10 GCC libquadmath
int width = 46;
char buf[128];
r = 2.0q;
r = sqrtq (r);
int n = quadmath_snprintf (buf, sizeof buf, "%+-#*.20Qe", width, r);
if ((size_t) n < sizeof buf)
printf ("%s\n", buf);
/* Prints: +1.41421356237309504880e+00 */
quadmath_snprintf (buf, sizeof buf, "%Qa", r);
if ((size_t) n < sizeof buf)
printf ("%s\n", buf);
/* Prints: 0x1.6a09e667f3bcc908b2fb1366ea96p+0 */
n = quadmath_snprintf (NULL, 0, "%+-#46.*Qe", prec, r);
if (n > -1)
{
char *str = malloc (n + 1);
if (str)
{
quadmath_snprintf (str, n + 1, "%+-#46.*Qe", prec, r);
printf ("%s\n", str);
/* Prints: +1.41421356237309504880e+00 */
}
free (str);
}
return 0;
}

GCC Libquadmath库介绍相关推荐

  1. GCC编译选项参数介绍

    gcc和g++分别是gnu的c和c++编译器,下面是整理的常用编译选项参数: #(1). -x: 设定文件所使用的语言,使文件后缀名无效,如下,执行完后生成test.o gcc -c -x c++ t ...

  2. linux编译动态库未定义,GCC链接库的一个坑:动态库存在却提示未定义动态库的函数...

    背景 在GCC中已经指定链接库,然而编译时却提示动态库函数未定义! 测试出现的错误提示如下: [GMPY@13:48 tmp]$gcc -o test -L. -lmylib test.c /tmp/ ...

  3. boost库介绍以及使用

    C++ boost库介绍以及使用 一. 什么是boost库 ​ boost 库是一个优秀的,可移植的,开源的 C++ 库,它是由 C++ 标准委员会发起的,其中一些内容已经成为了下一代 C++ 标准库 ...

  4. 转载 C++名库介绍

    C++名库介绍 在C++中,库的地位是非常高的.C++之父 Bjarne Stroustrup先生多次表示了设计库来扩充功能要好过设计更多的语法的言论.现实中,C++的库门类繁多,解决的问题也是极其广 ...

  5. BOOST库介绍,安装

    第1讲boost库介绍 boost是一个准标准库,相当于STL的延续和扩充,它的设计理念和STL比较接近,都是利用泛型让复用达到最大化.不过对比STL,boost更加实用. STL集中在算法部分,而b ...

  6. C语言gcc是什么意思的缩写,C语言-GCC的简单介绍

    GCC的简单介绍 gcc的发展 GNU(意为非洲牛羚)项目, 又称革奴计划,是由Richard Stallman在1983年创办. 1985年,Richard Stallman又创立了自由软件基金会( ...

  7. 2021年大数据ELK(三):Lucene全文检索库介绍

    全网最详细的大数据ELK文章系列,强烈建议收藏加关注! 新文章都已经列出历史文章目录,帮助大家回顾前面的知识重点. 目录 系列历史文章 一.什么是全文检索 1.结构化数据与非结构化数据 2.搜索结构化 ...

  8. 强化学习(三) - Gym库介绍和使用,Markov决策程序实例,动态规划决策实例

    强化学习(三) - Gym库介绍和使用,Markov决策程序实例,动态规划决策实例 1. 引言 在这个部分补充之前马尔科夫决策和动态规划部分的代码.在以后的内容我会把相关代码都附到相关内容的后面.本部 ...

  9. 关于在linux下出现stdio.h文件不存在等gcc标准库不能找到的解决的方法

    关于在linux下出现stdio.h文件不存在等gcc标准库不能找到的解决的方法 参考文章: (1)关于在linux下出现stdio.h文件不存在等gcc标准库不能找到的解决的方法 (2)https: ...

最新文章

  1. 浏览器实验中的故障排除
  2. java 重试_Java重试机制修改
  3. cdh搭建hadoop集群_Hadoop宿醉:使用Apache Whirr启动hadoop集群CDH4
  4. 前端学习(1118):高阶函数
  5. 怎么输出链表长度C语言,下面程序输出结果不,如输出的链表长度结果不对,不知有关问题在哪里。请高手看下...
  6. ES5 和ES6 继承机制
  7. 连接工作组计算机用户名和密码,访问局域网中工作组的电脑需要用户名和密码...
  8. 最好的Linux C/C++ IDE Windows ALL IDE,第一效率,第零浪漫
  9. jcodec_java-jcodec-有人看过该库的文档吗?
  10. Leetcode Top100题目和答案(Java完整版 面试必备)
  11. linux超线程问题
  12. Kali利用metasploit 生成后门程序,操作目标主机cmd
  13. DeepMind AlphaStar星际争霸2首秀:Demo很强大,但现场比赛输了
  14. python matplotlib jupyter中绘图使用宋体
  15. android互动设计师,站酷(设计师互动平台)
  16. 【noip模拟题】天神下凡(贪心)
  17. 3种伺服电机控制方式
  18. AI 揭晓答案,2022世界杯冠军已出炉
  19. 最大值最小值计算机一级,最小值
  20. Linux 线程结束的善后处理

热门文章

  1. 查看linux的系统信息
  2. linux alarm 多个,linux alarm定时设置
  3. Android linux shell命令 提示 Read-only file system解决
  4. 怎么把pdf压缩的小一点 这3种方式都很简单
  5. 《那些年啊,那些事——一个程序员的奋斗史》连载再开感言
  6. 技术,不要做成孤胆英雄
  7. MayaToUE4之毛发
  8. Chapter 5 Blood Type——19
  9. java创建文件夹和文件
  10. mysql赋予权限routine_关于mysql create routine权限的代码实例详解