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的几何意义.能在有限的篇幅把这个问题讲解的如此清晰,实属不易.原文举了一个简单的图像处理 ...
随机推荐
- Status bar and navigation bar appear over my view's bounds in iOS 7
转自:http://stackoverflow.com/questions/17074365/status-bar-and-navigation-bar-appear-over-my-views-bo ...
- vue全面介绍
Vue.js 是一个JavaScriptMVVM库,是一套构建用户界面的渐进式框架.它是以数据驱动和组件化的思想构建的,采用自底向上增量开发的设计.相比于Angular.js,Vue.js提供了更加简 ...
- 定期批量修改远程服务器root密码
一.背景 很多时候运维或安全工作人员需要维护大量的服务器,其中就包括判断是否存在root弱口令, 如果服务器数量很多一一修改的话的确是要好花费不少时间精力的.如果通过脚本来实现密码更改, 再做一个定期 ...
- (原创)c++11改进我们的模式之改进单例模式
我会写关于c++11的一个系列的文章,会讲到如何使用c++11改进我们的程序,本次讲如何改进我们的模式,会讲到如何改进单例模式.观察者模式.访问者模式.工厂模式.命令模式等模式.通过c++11的改进, ...
- 使用 "java -jar"命令启动jar包时报不支持的jdk版本异常
在使用java -jar 命令启动一个jar包的时候,提示版本不支持: [root@hadoop01 eureka-server-master]# java -jar xuebusi-eureka-s ...
- 系统清理工具CCleaner被植入后门
概述 2017年9月18日,有情报披露,著名的系统优化工具CCleaner的某个版本被发现植入后门,大量使用该工具的用户恐将面临泄密风险.这是继Xshell后门事件后,又一起严重的软件供应链来源攻击事 ...
- asp.net mvc controller调用js
在controller中加入代码 ViewBag.js="<script>alert('弹出框');</script>"; 在视图中加入代码 @Html.R ...
- Javascript eval()函数 基础回顾
如果您想详细了解ev al和JSON请参考以下链接: eval :https://developer.mozilla.org/En/Core_JavaScript_1.5_Reference/Glo ...
- PHP重载以及Laravel门面Facade
目录 重载的概念 魔术方法中的重载 属性重载 方法重载 Laravel中的Facade 扩展 谈谈__invoke Laravel提供了许多易用的Facade,让我们用起来特步顺手,那么这些Facad ...
- CSS 自适应
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...