avatar
C++里用Blas/Lapack的问题# Computation - 科学计算
n*n
1
【 以下文字转载自 ChinaNews 讨论区 】
发信人: gzsums (gzsums), 信区: ChinaNews
标 题: 韩寒:诸恶与众善 (转载)
发信站: BBS 未名空间站 (Tue Apr 13 22:31:02 2010, 美东)
诸恶与众善
韩寒
最近有一篇,流传甚广,叫《不要给西南灾区捐水了》,署名是韩寒。这篇文章并非我
写,我的所有杂文的出处都会在我的博客中,如果博客里没有出现过(注意,是出现过
,因为我不能保证文章出现以后能一直出现着),那就是没有写过。这篇文章我大致看
了,很明显,文中类似“我曾经说过,如果我愿意,我可以去颠覆你们二十多年来形成
的价值观,因为生活中很多在你们看来是理所当然的观念都是错误的”这样的话,是不
会出现在我的文章里的。
对于本文背后作者的观点,我认同一部分,但对于主观点我不认同。在四川地震前,我
已经知道原来红十字会是有一个所谓的手续费的,这个手续费的比例很高。到了四川,
我们去了红十字会,当时老罗和我说起此事,我和老罗还说,如果捐款很多,岂不是光
手续费就能够收几十亿?我寻思着要不要写这个文章,但是到最后,我都没有写,因为
avatar
t*k
2
成名的故事
我有一天做梦,当进入到我的博客,发现浏览的人数突然增加了两个0,我第一反应就
是,这个该死的计算机又出了错,接下来突然狂喜,马上打开我银行账户一看,却没有
变化,半个0都没有多,心想我这人运气怎么这样差,连错都错在一个错的地方!
定下神来,仔细一看,没有错,我真的成名了,尽管晚了点,但不管怎样,心里还是挺
高兴的,人嘛,终归都有点势利,淡漠归淡漠,谁又不想成名呢?就跑去告诉太太:
“太太,告诉你一个好消息,我出名了!”
“是吗,那挺好。”她倒是有点无动于衷,继续在计算机上付账单。
“怎么回事,一点都不替我高兴。”
“高兴?你说说看为什么我要高兴,你出名了,你还是你,难道就会变得聪明,干净或
勤快了?”
“怎么这样说话,成名了总是好事吧。”
“好在哪里,说我听听看。”
“起码会有很多崇拜者吧。”
“当然,还会有女崇拜者吧。”
我忘了这个茬,所有的女人都会对丈夫的异性崇拜者过敏,我必须设法打消这种念头,
不然今后我会苦不堪言,我擅长讲故事,试试?于是我说:
“想不想我跟你讲一个笑话故事?”
“笑话故事?又是老虎和丈母娘?
avatar
z*r
4
有没有辟谣的?
avatar
c*e
5
不知道在哪里设置,现在的情况是不能即时更新.比如说发了帖子在家页里面看不到,需
要点更新才看见.:(
avatar
S*n
6
现代快报1月16日报道 经过对火星多年探索之后,NASA(美国宇航局)的科学家终于在
火星上发现了生命迹象。NASA于15日宣布,火星的冰层下面很可能生存着某种火星生命
,它们释放出的甲烷气体在火星表面形成了一层薄雾。更激动人心的是,科学家相信,
这些火星生命如今一定还活着,并且很可能正以一种“休眠”的状态存在,甚至可能再
次复苏。
火星惊现“神秘薄雾”,“火星生命”大排废气
这一最新发现是NASA于1月15日在华盛顿总部宣布的。
NASA 的科学家观察发现,火星部分地区表面存在着一层神秘的薄雾,在火星轨道上的
太空船和地球上的巨型望远镜都能观测到这层“火星雾气”。而进一步研究表明,“
火星雾气”的主要成分是甲烷气体,专家推测,这些甲烷气体正是由一种叫做“产烷生
物”的火星生命释放出来的气体。
“火星生命”冰层下休眠?有可能再次复苏
NASA 透露,这些“火星生命”很可能就生活在火星部分地区冰层下面的水中。更激动
人心的是,科学家相信,这些“火星生命”如今一定还活着,否则火星的大气中将不可
能有持续不断的甲烷。此外,NASA还在产生“火星雾气”同一地带发现了水蒸气形成的
云层,而水正是
avatar
b*r
7
我用atlas,程序里简单调用zgeev函数。编译没有错,没有警告。运行也不出错,但结
果完全不对。似乎函数根本没有被调用。
另外哪里能找到在C或者C++下调用Blas/Lapack函数的具体格式?我这里函数参数还是
在网上搜的。完全没有相关的手册。难道Blas/Lapack只是给fortran用的?
程序如下
#include
#include
#include
#include
#include
using namespace std;
typedef complex dcomplex;
extern "C" void zgeev_( char* jobvl, char* jobvr, int* n, dcomplex* a,
int* lda, dcomplex* w, dcomplex* vl, int* ldvl, dcomplex*
vr, int* ldvr, dcomplex* work, int* lwork, double* rwork, int* info );
int main()
{
/* Locals */
int N=4;
int LDVL=N,LDVR=N,LDA=N;
int n = N, lda = N, ldvl = LDVL, ldvr = LDVR, info, lwork;
cout<dcomplex wkopt;
dcomplex* work;
/* Local arrays */
/* rwork dimension should be at least 2*n */
double rwork[2*N];
dcomplex w[N], vl[LDVL*N], vr[LDVR*N];
dcomplex a[16] = {
(-3.84, 2.25), (-0.66, 0.83), (-3.99, -4.73), ( 7.74, 4.18),
(-8.94, -4.75), (-4.40, -3.82), (-5.88, -6.60), ( 3.66, -7.53),
( 8.95, -6.53), (-3.50, -4.26), (-3.36, -0.40), ( 2.58, 3.60),
(-9.87, 4.82), (-3.15, 7.36), (-0.75, 5.23), ( 4.59, 5.41)};
lwork = -1;
char jobvl='V',jobvr='N';
zgeev_(&jobvl, &jobvr, &n, a, &lda, w, vl, &ldvl, vr, &ldvr, &wkopt,
&lwork, rwork, &info );
cout<}
输出结果是
w=(0,0)(0,0)(0,0)(0,0)
问题出在哪里呢?谢谢!
avatar
J*n
8
丫的垃圾文章很多啊

【在 n****n 的大作中提到】
: 【 以下文字转载自 ChinaNews 讨论区 】
: 发信人: gzsums (gzsums), 信区: ChinaNews
: 标 题: 韩寒:诸恶与众善 (转载)
: 发信站: BBS 未名空间站 (Tue Apr 13 22:31:02 2010, 美东)
: 诸恶与众善
: 韩寒
: 最近有一篇,流传甚广,叫《不要给西南灾区捐水了》,署名是韩寒。这篇文章并非我
: 写,我的所有杂文的出处都会在我的博客中,如果博客里没有出现过(注意,是出现过
: ,因为我不能保证文章出现以后能一直出现着),那就是没有写过。这篇文章我大致看
: 了,很明显,文中类似“我曾经说过,如果我愿意,我可以去颠覆你们二十多年来形成

avatar
q*2
9
这个可以很便宜,也可以很贵。 看你要做到哪一步?哪个深度?
还看内容谁提供? 照片啥的谁出?
基本上,现在凡是网上能做的东西,都不贵 - 即便是很专业的网站设计师也如此(网
站及其业者恶性竞争与免费战略的结果-或称恶果)。 网上搞不定的东西,都不太便
宜。
我们的主网站完成后,将可以开始承接客户的网站设计业务。 不过大概要到今年12月
份以后-如果一切顺利的话。 也会需要更多的专业网站设计师加盟(PHP/mysql平台)

【在 d***f 的大作中提到】
: 如题, 有意者请联系 MSN/eMAIL: d***[email protected]
avatar
a*n
10
All up?

【在 z**r 的大作中提到】
: 有没有辟谣的?
avatar
x*u
11
This is one I had that works:
/*
to compile :
$ gcc array_lapack.c -llapack -lblas -lm
*/
#include
#include
#define size 3 /* dimension of matrix */
struct complex {double re; double im;}; /* a complex number */
main()
{
struct complex A[3][3], b[3], WORK[6], RWORK[6];
struct complex w[3], vl[1][3], vr[1][3];
double AT[2*size*size]; /* for transformed matrix */
int i, j, ok;
char jobvl, jobvr;
int n, lda, ldvl, ldvr, lwork;
n=size;
jobvl='N';
jobvr='N';
lda=size;
ldvl=1;
ldvr=1;
lwork=6;
A[0][0].re=3.1;A[0][0].im=-1.8; /* the input matrix */
A[0][1].re=1.3;A[0][1].im=0.2;
A[0][2].re=-5.7;A[0][2].im=-4.3;
A[1][0].re=1.0;A[1][0].im=0;
A[1][1].re=-6.9;A[1][1].im=3.2;
A[1][2].re=5.8;A[1][2].im=2.2;
A[2][0].re=3.4;A[2][0].im=-4;
A[2][1].re=7.2;A[2][1].im=2.9;
A[2][2].re=-8.8;A[2][2].im=3.2;
for (i=0; i{ /* have to transform the matrix */
for(j=0; j{
AT[2*(j+size*i)]=A[j][i].re;
AT[2*(j+size*i)+1]=A[j][i].im;
}
}
/* find solution using LAPACK routine ZGEEV, all the non-array arguments
have to be pointers */
zgeev_(&jobvl, &jobvr,&n, AT, &lda, w, vl, &ldvl, vr, &ldvr, WORK, &lwork,
RWORK, &ok);
if (ok==0) /* output of eigenvalues */
{
for (i=0; i{
printf("%f\t%f\n", w[i].re, w[i].im);
}
}
else printf("An error occurred");
}

【在 b********r 的大作中提到】
: 我用atlas,程序里简单调用zgeev函数。编译没有错,没有警告。运行也不出错,但结
: 果完全不对。似乎函数根本没有被调用。
: 另外哪里能找到在C或者C++下调用Blas/Lapack函数的具体格式?我这里函数参数还是
: 在网上搜的。完全没有相关的手册。难道Blas/Lapack只是给fortran用的?
: 程序如下
: #include
: #include
: #include
: #include
: #include

avatar
n*n
12
这就是我和你的区别,
我觉得这个文章写的不错,你说是垃圾。
所以咱两观点是对立的。

【在 J****n 的大作中提到】
: 丫的垃圾文章很多啊
avatar
b*y
13
Quality websites take good money to build. The going rate of a mid-level
html designer is $40-50/hour.
Backend developer also more expensive.
Again, selling stuff online, you need to be professional, otherwise, nobody
would trust your site and buy from it.
avatar
L*t
14
Finally a good rumor..

【在 z**r 的大作中提到】
: 有没有辟谣的?
avatar
l*a
15
c interface of blas
http://netlib.org/blas/blast-forum/cinterface.pdf

【在 b********r 的大作中提到】
: 我用atlas,程序里简单调用zgeev函数。编译没有错,没有警告。运行也不出错,但结
: 果完全不对。似乎函数根本没有被调用。
: 另外哪里能找到在C或者C++下调用Blas/Lapack函数的具体格式?我这里函数参数还是
: 在网上搜的。完全没有相关的手册。难道Blas/Lapack只是给fortran用的?
: 程序如下
: #include
: #include
: #include
: #include
: #include

avatar
J*n
16
观点没错
想法太幼稚
小学生

【在 n****n 的大作中提到】
: 这就是我和你的区别,
: 我觉得这个文章写的不错,你说是垃圾。
: 所以咱两观点是对立的。

avatar
q*2
17
说到永远都比做到容易
就是没啥用处
avatar
c*i
18
为啥我听到的是没有...
avatar
n*n
20
你成熟一个?
你写不出来,就不要在这里放炮

【在 J****n 的大作中提到】
: 观点没错
: 想法太幼稚
: 小学生

avatar
T*7
21
你是听juniper的人说的吧。

【在 c*****i 的大作中提到】
: 为啥我听到的是没有...
avatar
b*r
22
我用atlas,程序里简单调用zgeev函数。编译没有错,没有警告。运行也不出错,但结
果完全不对。似乎函数根本没有被调用。
另外哪里能找到在C或者C++下调用Blas/Lapack函数的具体格式?我这里函数参数还是
在网上搜的。完全没有相关的手册。难道Blas/Lapack只是给fortran用的?
程序如下
#include
#include
#include
#include
#include
using namespace std;
typedef complex dcomplex;
extern "C" void zgeev_( char* jobvl, char* jobvr, int* n, dcomplex* a,
int* lda, dcomplex* w, dcomplex* vl, int* ldvl, dcomplex*
vr, int* ldvr, dcomplex* work, int* lwork, double* rwork, int* info );
int main()
{
/* Locals */
int N=4;
int LDVL=N,LDVR=N,LDA=N;
int n = N, lda = N, ldvl = LDVL, ldvr = LDVR, info, lwork;
cout<dcomplex wkopt;
dcomplex* work;
/* Local arrays */
/* rwork dimension should be at least 2*n */
double rwork[2*N];
dcomplex w[N], vl[LDVL*N], vr[LDVR*N];
dcomplex a[16] = {
(-3.84, 2.25), (-0.66, 0.83), (-3.99, -4.73), ( 7.74, 4.18),
(-8.94, -4.75), (-4.40, -3.82), (-5.88, -6.60), ( 3.66, -7.53),
( 8.95, -6.53), (-3.50, -4.26), (-3.36, -0.40), ( 2.58, 3.60),
(-9.87, 4.82), (-3.15, 7.36), (-0.75, 5.23), ( 4.59, 5.41)};
lwork = -1;
char jobvl='V',jobvr='N';
zgeev_(&jobvl, &jobvr, &n, a, &lda, w, vl, &ldvl, vr, &ldvr, &wkopt,
&lwork, rwork, &info );
cout<}
输出结果是
w=(0,0)(0,0)(0,0)(0,0)
问题出在哪里呢?谢谢!
avatar
J*n
23
没时间写这些东西
我写不写跟我绝不觉得他幼稚不矛盾

【在 n****n 的大作中提到】
: 你成熟一个?
: 你写不出来,就不要在这里放炮

avatar
T*7
24
看cec头条,涨了发包子不?

【在 z**r 的大作中提到】
: 有没有辟谣的?
avatar
x*u
25
This is one I had that works:
/*
to compile :
$ gcc array_lapack.c -llapack -lblas -lm
*/
#include
#include
#define size 3 /* dimension of matrix */
struct complex {double re; double im;}; /* a complex number */
main()
{
struct complex A[3][3], b[3], WORK[6], RWORK[6];
struct complex w[3], vl[1][3], vr[1][3];
double AT[2*size*size]; /* for transformed matrix */
int i, j, ok;
char jobvl, jobvr;
int n, lda, ldvl, ldvr, lwork;
n=size;
jobvl='N';
jobvr='N';
lda=size;
ldvl=1;
ldvr=1;
lwork=6;
A[0][0].re=3.1;A[0][0].im=-1.8; /* the input matrix */
A[0][1].re=1.3;A[0][1].im=0.2;
A[0][2].re=-5.7;A[0][2].im=-4.3;
A[1][0].re=1.0;A[1][0].im=0;
A[1][1].re=-6.9;A[1][1].im=3.2;
A[1][2].re=5.8;A[1][2].im=2.2;
A[2][0].re=3.4;A[2][0].im=-4;
A[2][1].re=7.2;A[2][1].im=2.9;
A[2][2].re=-8.8;A[2][2].im=3.2;
for (i=0; i{ /* have to transform the matrix */
for(j=0; j{
AT[2*(j+size*i)]=A[j][i].re;
AT[2*(j+size*i)+1]=A[j][i].im;
}
}
/* find solution using LAPACK routine ZGEEV, all the non-array arguments
have to be pointers */
zgeev_(&jobvl, &jobvr,&n, AT, &lda, w, vl, &ldvl, vr, &ldvr, WORK, &lwork,
RWORK, &ok);
if (ok==0) /* output of eigenvalues */
{
for (i=0; i{
printf("%f\t%f\n", w[i].re, w[i].im);
}
}
else printf("An error occurred");
}

【在 b********r 的大作中提到】
: 我用atlas,程序里简单调用zgeev函数。编译没有错,没有警告。运行也不出错,但结
: 果完全不对。似乎函数根本没有被调用。
: 另外哪里能找到在C或者C++下调用Blas/Lapack函数的具体格式?我这里函数参数还是
: 在网上搜的。完全没有相关的手册。难道Blas/Lapack只是给fortran用的?
: 程序如下
: #include
: #include
: #include
: #include
: #include

avatar
n*n
26
你丫怎么有时间在这耗着?
不喜欢他,就别回帖子啊。

【在 J****n 的大作中提到】
: 没时间写这些东西
: 我写不写跟我绝不觉得他幼稚不矛盾

avatar
Q*e
27
CEC.com?
avatar
l*a
28
c interface of blas
http://netlib.org/blas/blast-forum/cinterface.pdf

【在 b********r 的大作中提到】
: 我用atlas,程序里简单调用zgeev函数。编译没有错,没有警告。运行也不出错,但结
: 果完全不对。似乎函数根本没有被调用。
: 另外哪里能找到在C或者C++下调用Blas/Lapack函数的具体格式?我这里函数参数还是
: 在网上搜的。完全没有相关的手册。难道Blas/Lapack只是给fortran用的?
: 程序如下
: #include
: #include
: #include
: #include
: #include

avatar
J*n
29
算了
喊了半天言论自由又不让别人说话
没意思

【在 n****n 的大作中提到】
: 你丫怎么有时间在这耗着?
: 不喜欢他,就别回帖子啊。

avatar
L*t
30
LOL

【在 Q*******e 的大作中提到】
: CEC.com?
avatar
d*c
32
你现在说的是放屁?

【在 J****n 的大作中提到】
: 算了
: 喊了半天言论自由又不让别人说话
: 没意思

avatar
c*a
33
思科的solution executive是什么样的职位?
RID=894976

【在 c*****i 的大作中提到】
: 为啥我听到的是没有...
avatar
d*q
34
对规模大一些的计算
gsl 性能如何?

【在 j**u 的大作中提到】
: 像我一样只用GSL包打天下的算不算特懒的人,:-)
avatar
J*n
35
你说话=放屁?

【在 d*****c 的大作中提到】
: 你现在说的是放屁?
avatar
j*u
36
我一般最多用27个core,没有觉得gsl有什么不好。gsl其实包含了c的blas,因为大部
分常用函数都有,所以非常方便。

【在 d***q 的大作中提到】
: 对规模大一些的计算
: gsl 性能如何?

avatar
d*d
37
对,然后你吃的很香

【在 J****n 的大作中提到】
: 你说话=放屁?
avatar
d*q
38
thx....
avatar
J*n
39
这个版上人说话怎么这么不礼貌
应该提高一下

【在 d*****d 的大作中提到】
: 对,然后你吃的很香
avatar
d*d
40
你来了,就要受的了这个,不然你可以选择不来

【在 J****n 的大作中提到】
: 这个版上人说话怎么这么不礼貌
: 应该提高一下

相关阅读
logo
联系我们隐私协议©2024 redian.news
Redian新闻
Redian.news刊载任何文章,不代表同意其说法或描述,仅为提供更多信息,也不构成任何建议。文章信息的合法性及真实性由其作者负责,与Redian.news及其运营公司无关。欢迎投稿,如发现稿件侵权,或作者不愿在本网发表文章,请版权拥有者通知本网处理。