Hi everyone,
I'm new in C I use visual studio 2010, I don't know how to display my output result, I've tried to use printf, but it failed, the result is not indicate the truth of calculation in my program.
Attached link is my project code.
it related with anisotropic filtering.
thanks in advance
http://www.sendspace.com/file/b2qs96[
^]
[EDIT: Bring code from answer to question]
below a brief of my code :
main.cpp :
#include <stdio.h>
#include <stdlib.h>
#include "anisodiff1D.h"
#include "anisodiff1D_initialize.h"
#include "anisodiff1D_terminate.h"
#include "rt_nonfinite.h"
#include "anisodiff1D.h"
#include "power.h"
#include "conv.h"
int main(void)
{
real_T diff_sig_data[10];
int32_T diff_sig_sizes[1];
anisodiff1D_initialize();
anisodiff1D(diff_sig_data,diff_sig_sizes);
anisodiff1D_terminate();
system ("PAUSE");
return 0;
}
anisodiff1D.cpp :
#include "rt_nonfinite.h"
#include "anisodiff1D.h"
#include "power.h"
#include "conv.h"
void anisodiff1D(real_T diff_sig_data[11], int32_T diff_sig_sizes[1])
{
static const real_T b_sig[11] = { 10,10,11,10,9,10,13,10,10,13,9 };
int32_T t;
int32_T nablaW_sizes;
real_T nablaW_data[11];
int32_T nablaE_sizes;
real_T nablaE_data[11];
real_T b_nablaW_data[11];
real_T b_nablaE_data[11];
int32_T tmp_sizes;
real_T tmp_data[11];
int iteration=5;
int kappa=5.0;
diff_sig_sizes[0] = 11;
memcpy((void *)&diff_sig_data[0], (void *)&b_sig[0], 11U * sizeof(real_T));
for (t = 0; t < iteration; t++) {
conv(diff_sig_data, diff_sig_sizes, nablaW_data, *(int32_T (*)[1])&nablaW_sizes); b_conv(diff_sig_data, diff_sig_sizes, nablaE_data, *(int32_T (*)[1])&nablaE_sizes);
nablaW_sizes = 11;
for (nablaE_sizes = 0; nablaE_sizes < 11; nablaE_sizes++) {
b_nablaW_data[nablaE_sizes] = nablaW_data[nablaE_sizes] / kappa;
b_nablaE_data[nablaE_sizes] = nablaE_data[nablaE_sizes] / kappa;
}
power(b_nablaW_data, *(int32_T (*)[1])&nablaW_sizes, tmp_data, *(int32_T (*)[1])&tmp_sizes);
nablaE_sizes = 11;
power(b_nablaE_data, *(int32_T (*)[1])&nablaE_sizes, b_nablaW_data, *(int32_T (*)[1])&tmp_sizes);
diff_sig_sizes[0] = 11;
for (nablaE_sizes = 0; nablaE_sizes < 11; nablaE_sizes++)
{
diff_sig_data[nablaE_sizes] = diff_sig_data[nablaE_sizes] + (1/3) * (((1.0 / (1.0 +tmp_data[nablaE_sizes]) * nablaW_data[nablaE_sizes] + 1.0 / (1.0 +b_nablaW_data[nablaE_sizes]) * nablaE_data[nablaE_sizes]))+(diff_sig_data[0]-diff_sig_data[nablaE_sizes]));
printf("%g\n",diff_sig_data);
}
}
}