当前位置:首页 » 编程软件 » tx1编译内核

tx1编译内核

发布时间: 2022-12-31 10:15:20

Ⅰ C语言pow函数一直报错~急~是不是变量都是小数不能运算啊

有两个问题,
1. 第三个输出格式错误了!!!:printf(" 3 %%0.1f %0.3f %0.3f\n",100*a3[i],b3[i],tx3[i]);,多了一个 %,正确格式:
printf(" 3 %0.1f %0.3f %0.3f\n",100*a3[i],b3[i],tx3[i]);
2. 编译不会自动链接math的库,
gcc strange.c
/tmp/ccMYdgve.o: In function `main':
strange.c:(.text+0x87e): undefined reference to `pow'
strange.c:(.text+0x947): undefined reference to `pow'
strange.c:(.text+0xa0a): undefined reference to `pow'
strange.c:(.text+0xa9a): undefined reference to `pow'
collect2: ld returned 1 exit status

解决办法,加上 -lm 编译选项。
qunengrong@qunengrong-laptop ~/test
$gcc strange.c -lm
qunengrong@qunengrong-laptop ~/test
编译成功了,运行可得结果:
./a.out
0 100.0 100.0 100.00 1 100.0 1.061 14.142 14.142 5414.21 1.062
2 100.0 0.707 0.000
3 100.0 0.000 1.062
1 1502.5 100.0 1502.51 1 1502.5 0.071 0.941 0.941 4094.12 1.005
2 100.0 0.047 0.000
3 1502.5 -1.755 1.005
2 1420.8 100.0 1420.82 1 1420.8 0.075 0.995 0.995 4099.54 1.005
2 100.0 0.050 0.000
3 1420.8 0.000 1.005
3 1421.2 100.0 1421.23 1 1421.2 0.075 0.995 0.995 4099.51 1.005
2 100.0 0.050 0.000
3 1421.2 -0.000 1.005
4 1421.2 100.0 1421.24 1 1421.2 0.075 0.995 0.995 4099.51 1.005
2 100.0 0.050 0.000
3 1421.2 0.000 1.005
5 1421.2 100.0 1421.25 1 1421.2 0.075 0.995 0.995 4099.51 1.005
2 100.0 0.050 0.000
3 1421.2 -0.000 1.005
6 1421.2 100.0 1421.26 1 1421.2 0.075 0.995 0.995 4099.51 1.005
2 100.0 0.050 0.000
3 1421.2 -0.000 1.005
7 1421.2 100.0 1421.27 1 1421.2 0.075 0.995 0.995 4099.51 1.005
2 100.0 0.050 0.000
3 1421.2 0.000 1.005
8 1421.2 100.0 1421.28 1 1421.2 0.075 0.995 0.995 4099.51 1.005
2 100.0 0.050 0.000
3 1421.2 0.000 1.005
9 1421.2 100.0 1421.29 1 1421.2 0.075 0.995 0.995 4099.51 1.005
2 100.0 0.050 0.000
3 1421.2 -0.000 1.005
10 1421.2 100.0 1421.210 1 1421.2 0.075 0.995 0.995 4099.51 1.005
2 100.0 0.050 0.000
3 1421.2 0.000 1.005
11 1421.2 100.0 1421.211 1 1421.2 0.075 0.995 0.995 4099.51 1.005
2 100.0 0.050 0.000
3 1421.2 0.000 1.005
12 1421.2 100.0 1421.212 1 1421.2 0.075 0.995 0.995 4099.51 1.005
2 100.0 0.050 0.000
3 1421.2 -0.000 1.005
13 1421.2 100.0 1421.213 1 1421.2 0.075 0.995 0.995 4099.51 1.005
2 100.0 0.050 0.000
3 1421.2 -0.000 1.005
14 1421.2 100.0 1421.214 1 1421.2 0.075 0.995 0.995 4099.51 1.005
2 100.0 0.050 0.000
3 1421.2 0.000 1.005
15 1421.2 100.0 1421.215 1 1421.2 0.075 0.995 13073.374 53858472.00 1.000
2 100.0 0.050 1.000
3 1421.2 13073.374 1.000
16 18579631.2 1307337.4 18579631.216 1 18579631.2 0.000 0.000 0.000 4099.51 1.005
2 1307337.4 0.000 0.000
3 18579631.2 0.000 1.005
17 1421.2 100.0 1421.217 1 1421.2 0.075 0.995 0.995 4099.51 1.005
2 100.0 0.050 0.000
3 1421.2 0.000 1.005
18 1421.2 100.0 1421.218 1 1421.2 0.075 0.995 0.995 4099.51 1.005
2 100.0 0.050 0.000
3 1421.2 0.000 1.005
19 1421.2 100.0 1421.219 1 1421.2 0.075 0.995 0.995 4099.51 1.005
2 100.0 0.050 0.000
3 1421.2 0.000 1.005
20 1421.2 100.0 1421.220 1 1421.2 0.075 0.995 0.995 4099.51 1.005
2 100.0 0.050 0.000
3 1421.2 0.000 1.005
21 1421.2 100.0 1421.221 1 1421.2 0.075 0.995 0.995 4099.51 1.005
2 100.0 0.050 0.000
3 1421.2 0.000 1.005
22 1421.2 100.0 1421.222 1 1421.2 0.075 0.995 0.995 4099.51 1.005
2 100.0 0.050 0.000
3 1421.2 0.000 1.005
23 1421.2 100.0 1421.223 1 1421.2 0.075 0.995 0.995 4099.51 1.005
2 100.0 0.050 0.000
3 1421.2 0.000 1.005
24 1421.2 100.0 1421.224 1 1421.2 0.075 0.995 0.995 4099.51 1.005
2 100.0 0.050 0.000
3 1421.2 0.000 1.005
25 1421.2 100.0 1421.225 1 1421.2 0.075 0.995 0.995 4099.51 1.005
2 100.0 0.050 0.000
3 1421.2 0.000 1.005
26 1421.2 100.0 1421.226 1 1421.2 0.075 0.995 0.995 4099.51 1.005
2 100.0 0.050 0.000
3 1421.2 0.000 1.005
27 1421.2 100.0 1421.227 1 1421.2 0.075 0.995 0.995 4099.51 1.005
2 100.0 0.050 0.000
3 1421.2 0.000 1.005
28 1421.2 100.0 1421.228 1 1421.2 0.075 0.995 0.995 4099.51 1.005
2 100.0 0.050 0.000
3 1421.2 0.000 1.005
29 1421.2 100.0 1421.229 1 1421.2 0.075 0.995 0.995 4099.51 1.005
2 100.0 0.050 0.000
3 1421.2 0.000 1.005
30 1421.2 100.0 1421.230 1 1421.2 0.075 0.995 0.995 4099.51 1.005
2 100.0 0.050 0.000
3 1421.2 0.000 1.005
31 1421.2 100.0 1421.231 1 1421.2 0.075 0.995 0.995 4099.51 1.005
2 100.0 0.050 0.000
3 1421.2 0.000 1.005
32 1421.2 100.0 1421.232 1 1421.2 0.075 0.995 0.995 4099.51 1.005
2 100.0 0.050 0.000
3 1421.2 0.000 1.005
33 1421.2 100.0 1421.233 1 1421.2 0.075 0.995 0.995 4099.51 1.005
2 100.0 0.050 0.000
3 1421.2 0.000 1.005
34 1421.2 100.0 1421.234 1 1421.2 0.075 0.995 0.995 4099.51 1.005
2 100.0 0.050 0.000
3 1421.2 0.000 1.005
35 1421.2 100.0 1421.235 1 1421.2 0.075 0.995 0.995 4099.51 1.005
2 100.0 0.050 0.000
3 1421.2 0.000 1.005
36 1421.2 100.0 1421.236 1 1421.2 0.075 0.995 0.995 4099.51 1.005
2 100.0 0.050 0.000
3 1421.2 0.000 1.005
37 1421.2 100.0 1421.237 1 1421.2 0.075 0.995 0.995 4099.51 1.005
2 100.0 0.050 0.000
3 1421.2 0.000 1.005
38 1421.2 100.0 1421.238 1 1421.2 0.075 0.995 0.995 4099.51 1.005
2 100.0 0.050 0.000
3 1421.2 0.000 1.005
39 1421.2 100.0 1421.239 1 1421.2 0.075 0.995 0.995 4099.51 1.005
2 100.0 0.050 0.000
3 1421.2 0.000 1.005
40 1421.2 100.0 1421.240 1 1421.2 0.075 0.995 0.995 4099.51 1.005
2 100.0 0.050 0.000
3 1421.2 0.000 1.005
41 1421.2 100.0 1421.241 1 1421.2 0.075 0.995 0.995 4099.51 1.005
2 100.0 0.050 0.000
3 1421.2 0.000 1.005
42 1421.2 100.0 1421.242 1 1421.2 0.075 0.995 0.995 4099.51 1.005
2 100.0 0.050 0.000
3 1421.2 0.000 1.005
43 1421.2 100.0 1421.243 1 1421.2 0.075 0.995 0.995 4099.51 1.005
2 100.0 0.050 0.000
3 1421.2 0.000 1.005
44 1421.2 100.0 1421.244 1 1421.2 0.075 0.995 0.995 4099.51 1.005
2 100.0 0.050 0.000
3 1421.2 0.000 1.005
45 1421.2 100.0 1421.245 1 1421.2 0.075 0.995 0.995 4099.51 1.005
2 100.0 0.050 0.000
3 1421.2 0.000 1.005
46 1421.2 100.0 1421.246 1 1421.2 0.075 0.995 0.995 4099.51 1.005
2 100.0 0.050 0.000
3 1421.2 0.000 1.005
47 1421.2 100.0 1421.247 1 1421.2 0.075 0.995 0.995 4099.51 1.005
2 100.0 0.050 0.000
3 1421.2 0.000 1.005
48 1421.2 100.0 1421.248 1 1421.2 0.075 0.995 0.995 4099.51 1.005
2 100.0 0.050 0.000
3 1421.2 0.000 1.005
49 1421.2 100.0 1421.249 1 1421.2 0.075 0.995 0.995 4099.51 1.005
2 100.0 0.050 0.000
3 1421.2 0.000 1.005

后记: pow 函数,计算时默认对double类型进行运算,float也可以会自动转换的,小数也没问题,在linux下你可以参看原型:
$man 3 pow

SYNOPSIS
#include <math.h>

double pow(double x, double y);
float powf(float x, float y);
long double powl(long double x, long double y);

Link with -lm.

Ⅱ jetson TX2

Jetson TX2 安装JetPack3.3教程

TX2的CH340驱动的安装

上文中对应的英文博客链接如下:

Build Kernel and Moles – NVIDIA Jetson TX2

其中必须先装qt然后才能make xconfig

How to configure the devicetree for dsi ?

关于jetson平台的一些名称

nVIDIA Jetson TX1 内核kernel编译

TX2中设备树烧写

英伟达TX2的USB口无法使用的解决办法

jetson-TX2 的设备树修改

Jetson-TX2 新底板移植

Ⅲ 本机上运行没问题 样例输出正常 提交后编译错误 求解 program.c:16:2: error: unknown type name 'win'

你写的是C语言,文件保存格式应该是.c,你提交的编译器的保存格式也是.c
而你使用了.cpp导致错误,有两处错误

#include<stdio.h>
#include<string.h>
#include<malloc.h>
#define maxw 100
#define max(x,y) (x)>(y)?(x):(y)
#define min(x,y) (x)<(y)?(x):(y)
typedef struct win
{
int x1,y1,x2,y2;
int name;
struct win *up;//
struct win *down;//这两句必须加上struct
}win;

win *stack[maxw];
win *tail,*head,*cur;
long count;

void creatWin(int name,int x1,int y1,int x2,int y2)
{
char flag=name;
stack[name]=(win*)malloc(sizeof(win));
(*stack[name]).name=name;
(*stack[name]).x1=min(x1,x2);
(*stack[name]).y1=min(y1,y2);
(*stack[name]).x2=max(x2,x1);
(*stack[name]).y2=max(y2,y1);

(*cur).up=stack[name];
(*stack[name]).down=cur;
(*stack[name]).up=head;
(*head).down=stack[name];
cur=stack[name];
}
void t(int name)
{
char flag=name;
win *pre,*next;
pre=(*stack[name]).down;
next=(*stack[name]).up;

(*pre).up=next;
(*next).down=pre;

(*cur).up=stack[name];
(*stack[name]).down=cur;
(*stack[name]).up=head;
(*head).down=stack[name];
cur=stack[name];
}
void b(int name)
{
char flag=name;
win *pre,*next;
pre=(*stack[name]).down;
next=(*stack[name]).up;

(*pre).up=next;
(*next).down=pre;

(*(*tail).up).down=stack[name];
(*stack[name]).down=tail;
(*stack[name]).up=(*tail).up;
(*tail).up=stack[name];
}
void d(int name)
{
char flag=name;
win *pre,*next;
pre=(*stack[name]).down;
next=(*stack[name]).up;

(*pre).up=next;
(*next).down=pre;

free(stack[name]);
stack[name]=NULL;
}
void leafing(win*cur,int x1,int y1,int x2,int y2)
{
int cx1,cy1,cx2,cy2;
if(cur==head)
{ count+=(x2-x1)*(y2-y1);return;}
cx1=(*cur).x1;cy1=(*cur).y1;
cx2=(*cur).x2;cy2=(*cur).y2;
if(x1>=cx2||x2<=cx1||y1>=cy2||y2<=cy1)
leafing((*cur).up,x1,y1,x2,y2);
else
{
if(x1<cx1)leafing((*cur).up,x1,y1,cx1,y2);
if(x2>cx2)leafing((*cur).up,cx2,y1,x2,y2);
if(y1<cy1)leafing((*cur).up,x1,y1,x2,cy1);
if(y2>cy2)leafing((*cur).up,x1,cy2,x2,y2);
}
}
void s(int name)
{
char flag=name;
long area;
count=0;
leafing((*stack[name]).up,(*stack[name]).x1,(*stack[name]).y1,(*stack[name]).x2,(*stack[name]).y2);
area=((*stack[name]).x2-(*stack[name]).x1)*((*stack[name]).y2-(*stack[name]).y1);
printf("%.3lf\n",((double)count/(double)area)*100);
}
int main()
{
int tx1,ty1,tx2,ty2;//
char tname;//
char buff[maxw];//声明变量一定要在函数开头
freopen("window.in","r",stdin);
freopen("window.out","w",stdout);

tail=(win*)malloc(sizeof(win));
head=(win*)malloc(sizeof(win));
memset(buff,0,sizeof(buff));
memset(tail,0,sizeof(win));
memset(head,0,sizeof(win));
(*head).down=tail;
(*tail).up=head;
cur=tail;

while(scanf("%s",buff)!=EOF)
{
switch(buff[0])
{
case 'w':{
sscanf(buff,"%*c(%c,%d,%d,%d,%d)",&tname,&tx1,&ty1,&tx2,&ty2);
creatWin((int)tname,tx1,ty1,tx2,ty2);break;
}
case 't':t((int)buff[2]);break;
case 'b':b((int)buff[2]);break;
case 'd':d((int)buff[2]);break;
case 's':s((int)buff[2]);break;
}
}
return 0;
}

Ⅳ 有谁知道nvidia tx1 上面打开摄像头的命令是啥吗,内核和设备树已经编译

可以让设备树文件和内核一起编译,单独编译的化,可以参考下面的文档:13996277

Ⅳ 基于FFT的算法优化 要C语言完整程序(利用旋转因子的性质),有的请留言,答谢!!!(有核心代码,望指教

实现(C描述)

#include <stdio.h>

#include <math.h>

#include <stdlib.h>

//#include "complex.h"

// --------------------------------------------------------------------------

#define N 8 //64

#define M 3 //6 //2^m=N

#define PI 3.1415926

// --------------------------------------------------------------------------

float twiddle[N/2] = {1.0, 0.707, 0.0, -0.707};

float x_r[N] = {1, 1, 1, 1, 0, 0, 0, 0};

float x_i[N]; //N=8

/*

float twiddle[N/2] = {1, 0.9951, 0.9808, 0.9570, 0.9239, 0.8820, 0.8317, 0.7733,

0.7075, 0.6349, 0.5561, 0.4721, 0.3835, 0.2912, 0.1961, 0.0991,

0.0000,-0.0991,-0.1961,-0.2912,-0.3835,-0.4721,-0.5561,-0.6349,

-0.7075,-0.7733, 0.8317,-0.8820,-0.9239,-0.9570,-0.9808,-0.9951}; //N=64

float x_r[N]={1,1,1,1,1,1,1,1,

1,1,1,1,1,1,1,1,

1,1,1,1,1,1,1,1,

1,1,1,1,1,1,1,1,

0,0,0,0,0,0,0,0,

0,0,0,0,0,0,0,0,

0,0,0,0,0,0,0,0,

0,0,0,0,0,0,0,0,};

float x_i[N];

*/

FILE *fp;

// ----------------------------------- func -----------------------------------

/**

* 初始化输出虚部

*/

static void fft_init( void )

{

int i;

for(i=0; i<N; i++) x_i[i] = 0.0;

}

/**

* 反转算法.将时域信号重新排序.

* 这个算法有改进的空间

*/

static void bitrev( void )

{

int p=1, q, i;

int bit_rev[ N ]; //

float xx_r[ N ]; //

bit_rev[ 0 ] = 0;

while( p < N )

{

for(q=0; q<p; q++)

{

bit_rev[ q ] = bit_rev[ q ] * 2;

bit_rev[ q + p ] = bit_rev[ q ] + 1;

}

p *= 2;

}

for(i=0; i<N; i++) xx_r[ i ] = x_r[ i ];

for(i=0; i<N; i++) x_r[i] = xx_r[ bit_rev[i] ];

}

/* ------------ add by sshc625 ------------ */

static void bitrev2( void )

{

return ;

}

/* */

void display( void )

{

printf("\n\n");

int i;

for(i=0; i<N; i++)

printf("%f\t%f\n", x_r[i], x_i[i]);

}

/**

*

*/

void fft1( void )

{ fp = fopen("log1.txt", "a+");

int L, i, b, j, p, k, tx1, tx2;

float TR, TI, temp; // 临时变量

float tw1, tw2;

/* 深M. 对层进行循环. L为当前层, 总层数为M. */

for(L=1; L<=M; L++)

{

fprintf(fp,"----------Layer=%d----------\n", L);

/* b的意义非常重大,b表示当前层的颗粒具有的输入样本点数 */

b = 1;

i = L - 1;

while(i > 0)

{

b *= 2;

i--;

}

// -------------- 是否外层对颗粒循环, 内层对样本点循环逻辑性更强一些呢! --------------

/*

* outter对参与DFT的样本点进行循环

* L=1, 循环了1次(4个颗粒, 每个颗粒2个样本点)

* L=2, 循环了2次(2个颗粒, 每个颗粒4个样本点)

* L=3, 循环了4次(1个颗粒, 每个颗粒8个样本点)

*/

for(j=0; j<b; j++)

{

/* 求旋转因子tw1 */

p = 1;

i = M - L; // M是为总层数, L为当前层.

while(i > 0)

{

p = p*2;

i--;

}

p = p * j;

tx1 = p % N;

tx2 = tx1 + 3*N/4;

tx2 = tx2 % N;

// tw1是cos部分, 实部; tw2是sin部分, 虚数部分.

tw1 = ( tx1>=N/2)? -twiddle[tx1-N/2] : twiddle[ tx1 ];

tw2 = ( tx2>=N/2)? -twiddle[tx2-(N/2)] : twiddle[tx2];

/*

* inner对颗粒进行循环

* L=1, 循环了4次(4个颗粒, 每个颗粒2个输入)

* L=2, 循环了2次(2个颗粒, 每个颗粒4个输入)

* L=3, 循环了1次(1个颗粒, 每个颗粒8个输入)

*/

for(k=j; k<N; k=k+2*b)

{

TR = x_r[k]; // TR就是A, x_r[k+b]就是B.

TI = x_i[k];

temp = x_r[k+b];

/*

* 如果复习一下 (a+j*b)(c+j*d)两个复数相乘后的实部虚部分别是什么

* 就能理解为什么会如下运算了, 只有在L=1时候输入才是实数, 之后层的

* 输入都是复数, 为了让所有的层的输入都是复数, 我们只好让L=1时候的

* 输入虚部为0

* x_i[k+b]*tw2是两个虚数相乘

*/

fprintf(fp, "tw1=%f, tw2=%f\n", tw1, tw2);

x_r[k] = TR + x_r[k+b]*tw1 + x_i[k+b]*tw2;

x_i[k] = TI - x_r[k+b]*tw2 + x_i[k+b]*tw1;

x_r[k+b] = TR - x_r[k+b]*tw1 - x_i[k+b]*tw2;

x_i[k+b] = TI + temp*tw2 - x_i[k+b]*tw1;

fprintf(fp, "k=%d, x_r[k]=%f, x_i[k]=%f\n", k, x_r[k], x_i[k]);

fprintf(fp, "k=%d, x_r[k]=%f, x_i[k]=%f\n", k+b, x_r[k+b], x_i[k+b]);

} //

} //

} //

}

/**

* ------------ add by sshc625 ------------

* 该实现的流程为

* for( Layer )

* for( Granule )

* for( Sample )

*

*

*

*

*/

void fft2( void )

{ fp = fopen("log2.txt", "a+");

int cur_layer, gr_num, i, k, p;

float tmp_real, tmp_imag, temp; // 临时变量, 记录实部

float tw1, tw2;// 旋转因子,tw1为旋转因子的实部cos部分, tw2为旋转因子的虚部sin部分.

int step; // 步进

int sample_num; // 颗粒的样本总数(各层不同, 因为各层颗粒的输入不同)

/* 对层循环 */

for(cur_layer=1; cur_layer<=M; cur_layer++)

{

/* 求当前层拥有多少个颗粒(gr_num) */

gr_num = 1;

i = M - cur_layer;

while(i > 0)

{

i--;

gr_num *= 2;

}

/* 每个颗粒的输入样本数N' */

sample_num = (int)pow(2, cur_layer);

/* 步进. 步进是N'/2 */

step = sample_num/2;

/* */

k = 0;

/* 对颗粒进行循环 */

for(i=0; i<gr_num; i++)

{

/*

* 对样本点进行循环, 注意上限和步进

*/

for(p=0; p<sample_num/2; p++)

{

// 旋转因子, 需要优化...

tw1 = cos(2*PI*p/pow(2, cur_layer));

tw2 = -sin(2*PI*p/pow(2, cur_layer));

tmp_real = x_r[k+p];

tmp_imag = x_i[k+p];

temp = x_r[k+p+step];

/*(tw1+jtw2)(x_r[k]+jx_i[k])

*

* real : tw1*x_r[k] - tw2*x_i[k]

* imag : tw1*x_i[k] + tw2*x_r[k]

* 我想不抽象出一个

* typedef struct {

* double real; // 实部

* double imag; // 虚部

* } complex; 以及针对complex的操作

* 来简化复数运算是否是因为效率上的考虑!

*/

/* 蝶形算法 */

x_r[k+p] = tmp_real + ( tw1*x_r[k+p+step] - tw2*x_i[k+p+step] );

x_i[k+p] = tmp_imag + ( tw2*x_r[k+p+step] + tw1*x_i[k+p+step] );

/* X[k] = A(k)+WB(k)

* X[k+N/2] = A(k)-WB(k) 的性质可以优化这里*/

// 旋转因子, 需要优化...

tw1 = cos(2*PI*(p+step)/pow(2, cur_layer));

tw2 = -sin(2*PI*(p+step)/pow(2, cur_layer));

x_r[k+p+step] = tmp_real + ( tw1*temp - tw2*x_i[k+p+step] );

x_i[k+p+step] = tmp_imag + ( tw2*temp + tw1*x_i[k+p+step] );

printf("k=%d, x_r[k]=%f, x_i[k]=%f\n", k+p, x_r[k+p], x_i[k+p]);

printf("k=%d, x_r[k]=%f, x_i[k]=%f\n", k+p+step, x_r[k+p+step], x_i[k+p+step]);

}

/* 开跳!:) */

k += 2*step;

}

}

}

/*

* 后记:

* 究竟是颗粒在外层循环还是样本输入在外层, 好象也差不多, 复杂度完全一样.

* 但以我资质愚钝花费了不少时间才弄明白这数十行代码.

* 从中我发现一个于我非常有帮助的教训, 很久以前我写过一部分算法, 其中绝大多数都是递归.

* 将数据量减少, 减少再减少, 用归纳的方式来找出数据量加大代码的规律

* 比如FFT

* 1. 先写死LayerI的代码; 然后再把LayerI的输出作为LayerII的输入, 又写死代码; ......

* 大约3层就可以统计出规律来. 这和递归也是一样, 先写死一两层, 自然就出来了!

* 2. 有的功能可以写伪代码, 不急于求出结果, 降低复杂性, 把逻辑结果定出来后再添加.

* 比如旋转因子就可以写死, 就写1.0. 流程出来后再写旋转因子.

* 寥寥数语, 我可真是流了不少汗! Happy!

*/

void dft( void )

{

int i, n, k, tx1, tx2;

float tw1,tw2;

float xx_r[N],xx_i[N];

/*

* clear any data in Real and Imaginary result arrays prior to DFT

*/

for(k=0; k<=N-1; k++)

xx_r[k] = xx_i[k] = x_i[k] = 0.0;

// caculate the DFT

for(k=0; k<=(N-1); k++)

{

for(n=0; n<=(N-1); n++)

{

tx1 = (n*k);

tx2 = tx1+(3*N)/4;

tx1 = tx1%(N);

tx2 = tx2%(N);

if(tx1 >= (N/2))

tw1 = -twiddle[tx1-(N/2)];

else

tw1 = twiddle[tx1];

if(tx2 >= (N/2))

tw2 = -twiddle[tx2-(N/2)];

else

tw2 = twiddle[tx2];

xx_r[k] = xx_r[k]+x_r[n]*tw1;

xx_i[k] = xx_i[k]+x_r[n]*tw2;

}

xx_i[k] = -xx_i[k];

}

// display

for(i=0; i<N; i++)

printf("%f\t%f\n", xx_r[i], xx_i[i]);

}

// ---------------------------------------------------------------------------

int main( void )

{

fft_init( );

bitrev( );

// bitrev2( );

//fft1( );

fft2( );

display( );

system( "pause" );

// dft();

return 1;

}

本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/sshcx/archive/2007/06/14/1651616.aspx

java中关于堆实现优先队列的问题,我编译可以通过,但是运行的时候会出现数组越界的错误,是怎么回事

看下MaxHeapify这个方法,是不是逻辑有些问题:
if (l <= heapsize && A[l] > A[i])
largest = l;
假如数组A长度为8的时候。当i为4的时候,l为8,你去判断A[8]>A[4],A[8]这里数组越界了吧。

Ⅶ 如何检测 cuda是否装成功 tx1

一、英伟达官中国载应系统版本cuda5.5工具包我笔记本三二位载包cuda_5.5.二二_linux_三二.run载deb包deb包双击安装推荐使用run包 二、检查自系统否符合安装条件点重要我始没检测GCC导致面几安装失败命令$lspci | grep -i nvidia 检测电脑否安装NVIDIA显卡命令$gcc --version,检测GCC版本注意:CUDA5.5支持GCC四.陆版本显示图所示则需要重新GCC链接同安装文件编译环境$sudo apt-get install linux-headers-$(uname -r) build-essential 三、gcc版本四.陆跳步gcc版本四.陆则需要GCC重新链接目录/usr/bin需两命令即完重新链接 $sudo mv gcc gcc.bak $sudo ln -s gcc-四.陆 gcc 四、删除前Ubuntu nvidia驱包$sudo apt-get –purge remove nvidia*,并源驱nouveau屏蔽掉使用命令$sudo vim /etc/modprobe.d/blacklist.conf添加blacklist vga一陆fb blacklist nouveau blacklist rivafb blacklist nvidiafb blacklist rivatv 5、关闭图形环境$sudo stop lightdm按Ctrl+Alt+F一打终端登录进入载Ubuntu nvidia驱安装文件所目录,$sudo sh ./cuda_5.5.二二_linux_三二.run命令进行安装遇failed用着中国打安装log排查问题warning用管看ERROR 陆、安装完需要重启电脑清晰说明安装功 事GPU发我需要装cupenCL库支持:$sudo apt-get install nvidia-current-dev 注意事项 ubuntu需要重新编译内核记centosred hat需要命令简单:$sudo dracut -v /boot/initramfs-$(uname -r).img $(uname -r

Ⅷ 英伟达开发板tx1和tk1的区别

Linux 3.16 内核主要包含如下新特性: 1. 支持 Nouveau Kepler re-clocking 2. 支持 Samsung Exynos multi-platform 3. 更好的支持 Jetson TK1 ARM 4. Broadwell support within Intel's P-State driver 5. Dell free-fall 驱动程序支持 6. A ne。

热点内容
什么是广告脚本设计 发布:2025-09-18 05:52:09 浏览:651
移动版我的世界服务器 发布:2025-09-18 05:38:49 浏览:958
使用jsp脚本输出九九乘法表 发布:2025-09-18 05:22:11 浏览:663
出行解压 发布:2025-09-18 05:20:54 浏览:574
安卓手机画线怎么用 发布:2025-09-18 05:16:43 浏览:697
解压吃蔬菜 发布:2025-09-18 05:10:04 浏览:818
php判断数组个数 发布:2025-09-18 04:54:02 浏览:665
linuxmd5c 发布:2025-09-18 04:47:04 浏览:345
数据结构编译器哪个好 发布:2025-09-18 04:33:52 浏览:437
ad转换c语言 发布:2025-09-18 04:21:21 浏览:755