lapacke svd实例
参考
intel MTK实例
https://software.intel.com/sites/products/documentation/doclib/mkl_sa/11/mkl_lapack_examples/lapacke_dgesvd_row.c.htm
http://www.netlib.org/lapack/explore-html/d0/dee/lapacke__dgesvd_8c.html
https://blog.csdn.net/helei001/article/details/18447001
查询函数
http://www.netlib.org/lapack/explore-html/de/ddd/lapacke_8h_source.html
c接口
http://www.netlib.org/lapack/lapacke.html
原理
http://www.netlib.org/lapack/lug/node53.html
#include <stdio.h>
#include <lapacke.h> void print_matrix(double *src, int m, int n)
{
for(int i = ;i < m; ++i)
{
for(int j = ; j < n;++j)
{
printf("%lf ", src[i * n + j] );
}
printf("\n" );
}
printf("\n" );
} int main (int argc, const char * argv[])
{
double a[*] = {4.0,4.0,-3.0,3.0};
int matrix_layout = LAPACK_ROW_MAJOR;
char jobz = 'N';
lapack_int info,m,n,lda,ldu,ldvt;
m = ;
n = ;
lda = ;
ldu = ;
ldvt = ;
double s[];
double u[];
double vt[];
double superb[];
// lapack_int LAPACKE_dgesvd (int matrix_layout, char jobu, char jobvt,
// lapack_int m, lapack_int n, double *a, lapack_int lda,
// double *s, double *u, lapack_int ldu, double *vt,
// lapack_int ldvt, double *superb)
info = LAPACKE_dgesvd( matrix_layout, 'A', 'A', m,
n, a, lda, s,
u, ldu, vt,
ldvt, superb); printf("%d\n",info);
print_matrix(s,,);
print_matrix(u,,);
print_matrix(vt,,);
return ; }
$ gfortran main.c -llapacke -llapack -lrefblas && ./a.out
0
5.656854 4.242641
0.000000 0.000000
-1.000000 0.000000
0.000000 1.000000
-0.707107 -0.707107
-0.707107 0.707107
lapacke svd实例的更多相关文章
- SVD实例
>> X = rand(5,7) X = 0.9797 0.1365 0.6614 0.5828 0.2259 0.2091 0.5678 0.2714 0.0118 0.2844 0.4 ...
- 奇异值分解(SVD)和简单图像压缩
SVD(Singular Value Decomposition,奇异值分解) 算法优缺点: 优点:简化数据,去除噪声,提高算法结果 缺点:数据的转换可能难于理解 适用数据类型:数值型数据 算法思想: ...
- 《学习opencv》笔记——矩阵和图像操作——cvInRange,cvInRangeS,cvInvert and cvMahalonobis
矩阵和图像的操作 (1)cvInRange函数 其结构 void cvInRange(//提取图像中在阈值中间的部分 const CvArr* src,//目标图像 const CvArr* lowe ...
- 最近学习工作流 推荐一个activiti 的教程文档
全文地址:http://www.mossle.com/docs/activiti/ Activiti 5.15 用户手册 Table of Contents 1. 简介 协议 下载 源码 必要的软件 ...
- 奇异值分解(SVD)实例,将不重要的特征值改为0,原X基本保持不变
>> s = rand(5,7) s = 0.4186 0.8381 0.5028 0.1934 0.6979 0.4966 0.6602 0.8462 0.0196 0.7095 ...
- 协同过滤和简单SVD优化
协同过滤(collaborative filtering) 推荐系统: 百度百科的定义是:它是利用电子商务网站向客户提供商品信息和建议,帮助用户决定应该购买什么产品,模拟销售人员帮助客户完成购买过程主 ...
- paper 128:奇异值分解(SVD) --- 线性变换几何意义[转]
PS:一直以来对SVD分解似懂非懂,此文为译文,原文以细致的分析+大量的可视化图形演示了SVD的几何意义.能在有限的篇幅把这个问题讲解的如此清晰,实属不易.原文举了一个简单的图像处理问题,简单形象,真 ...
- SVD分解的理解[转载]
http://www.bfcat.com/index.php/2012/03/svd-tutorial/ SVD分解(奇异值分解),本应是本科生就掌握的方法,然而却经常被忽视.实际上,SVD分解不但很 ...
- 转载:奇异值分解(SVD) --- 线性变换几何意义(下)
本文转载自他人: PS:一直以来对SVD分解似懂非懂,此文为译文,原文以细致的分析+大量的可视化图形演示了SVD的几何意义.能在有限的篇幅把这个问题讲解的如此清晰,实属不易.原文举了一个简单的图像处理 ...
随机推荐
- mac 上面安装jdk 1.6
下载地址 https://support.apple.com/kb/dl1572?locale=zh_CN orcale 支持mac的最低版本是1.7
- Hibernate 建立一对多双向关联关系
下面内容整理自<精通Hibernate>第二版 注:既然是双向关联."一对多双向关联"和"多对一双向关联"是同一回事. 对象位于内存中,在内存中从一 ...
- Apache Flink Training and sample code
http://training.data-artisans.com/ https://github.com/dataArtisans/blog-post-code-samples https://gi ...
- c++ STL map 结构体
Map是STL的一个关联容器,它提供一对一(其中第一个可以称为关键字,每个关键字只能在map中出现一次,第二个可能称为该关键字的值)的数据处理能力,由于这个特性,它完成有可能在我们处理一对一数据的时候 ...
- Spring Boot项目配置RabbitMQ集群
//具体参看了配置的源码 org.springframework.boot.autoconfigure.amqp.RabbitProperties //RabbitMQ单机 spring: rab ...
- 设计模式之装饰模式(iOS开发,代码用Objective-C展示)
在面向对象编程中有个重要的原则,里氏代换原则:一个软件实体如果使用的是一个父类的话,那么一定适用其子类,而且它察觉不出父类对象与子类对象的区别.也就是说,在软件设计里面,把父类替换成它的子类,程序的行 ...
- C盘空间不够,清除VS下的 Font Cache
C盘空间老是不够用.清除Font Cache 1.在 C:\Users\Jimmy\AppData\Local\Microsoft\Visual Studio 下的 Font Cache 目录可以干 ...
- Faiss教程:基础
Faiss对一些基础算法提供了非常高效的实现:k-means.PCA.PQ编解码. 聚类 假设2维tensor x: ncentroids = 1024 niter = 20 verbose = Tr ...
- 使用jQuery延迟加载js文件
//异步加载js文件并调用函数 function delayCall(calledFunction, funcParams, jsUrl) { if (eval('typeof '+calledFun ...
- phpstorm设置断点过程
1.为php安装xdebug,方法在上一篇中有详细介绍 2.注意这个时候需要修改php.ini内容如下: [Xdebug]zend_extension_ts ="d:/wamp/php/ex ...