关于一些 基本的math函数 和 float double 的范围 问题

本文详细介绍了float和double两种浮点数类型的范围与精度,以及它们与整型之间的转换方法,包括使用ceil、floor函数进行向上向下取整,和通过加0.5再转int实现四舍五入等技巧。
经常采用的float 和double 的范围如下
float的范围为-2^128 ~ +2^128,精度为6~7位有效数字 double的范围为-2^1024 ~ +2^1024,精度为15~16位。
还有在 vitual judge 中 可以用 long long 来定义长整形 用%I64 进行输出结果;

下面附几个基本函数知识(浮点数转化为整型)

浮点型 天花板函数 ceil ,即求超过它的最小整数
地板函数 floor 即求不超过它的最大整数
整型 四舍五入 int(x+0.5)
下取整 应该直接来 int(x)就可以了吧~~
PI=2*acos(0.0)

double 要取大数的话 可以定义为2e100;
int 要取大数的话 可以定义为20亿;
eps 小量 定义为 1e-7;

转载于:https://www.cnblogs.com/ysh-blog/archive/2012/04/24/2468993.html

BLAS(Basic Linear Algebra Subprograms)是一组基本的线性代数子程序,提供了高效的矩阵向量计算。在BLAS中,floatdouble类型的矩阵向量计算都有对应的函数。 在C++中,函数指针可以用来表示BLAS中的函数。例如,对于float类型的矩阵向量乘法,可以使用以下函数指针: ```c++ typedef void (*sgemm_ptr)(char *, char *, int *, int *, int *, float *, float *, int *, float *, int *, float *, float *, int *); ``` 这个函数指针表示了BLAS中的sgemm函数,它接受一些参数,包括两个字符参数,三个整数参数,三个浮点数指针参数一个整数指针参数。这个函数指针可以用来调用sgemm函数,例如: ```c++ sgemm_ptr my_sgemm = &sgemm; char transa = 'N'; char transb = 'N'; int m = 100; int n = 200; int k = 150; float alpha = 1.0f; float *a = new float[m*k]; float *b = new float[k*n]; float beta = 0.0f; float *c = new float[m*n]; int lda = k; int ldb = n; int ldc = n; my_sgemm(&transa, &transb, &m, &n, &k, &alpha, a, &lda, b, &ldb, &beta, c, &ldc); ``` 这个例子调用了sgemm函数,对两个矩阵ab进行乘法,结果存储在矩阵c中。类似地,对于double类型的矩阵向量计算,可以使用以下函数指针: ```c++ typedef void (*dgemm_ptr)(char *, char *, int *, int *, int *, double *, double *, int *, double *, int *, double *, double *, int *); ``` 这个函数指针表示了BLAS中的dgemm函数,其余用法sgemm函数类似。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值