39 #include <blitz/array.h> 41 int mindex3(
int x,
int y,
int z,
int sizx,
int sizy);
43 template<
typename Type,
int Dim>
45 blitz::Array<Type,Dim> &image, blitz::Array<Type,Dim> &Dxx,
46 blitz::Array<Type,Dim> &Dyy, blitz::Array<Type,Dim> &Dzz,
47 blitz::Array<Type,Dim> &Dxy, blitz::Array<Type,Dim> &Dxz,
48 blitz::Array<Type,Dim> &Dyz,
double delta_t = 0.0625,
int v = 1);
51 double *u,
double *a,
double *b,
double *c,
double *d,
double *e,
52 double *f,
int x,
int y,
int z,
int nx,
int ny,
int nz,
int px,
int py,
53 int pz,
double dt,
int *dimsu);
55 template<
typename GType>
57 blitz::Array<GType,1>& p,
double delta_t,
int len,
int m,
58 double* alpha,
double *beta,
double *gamma,
double* L,
double *M,
61 template<
typename Type,
typename gType>
63 const blitz::Array<Type, 3>& u, blitz::Array<gType, 3>& g,
64 blitz::Array<Type, 3>& u_new,
const double delta_t);
66 template<
typename Type>
68 blitz::Array<Type, 3>& image,
69 const blitz::TinyVector<double, 3>& spacing,
const int num_iter = 4,
70 const double kappa = 0.1,
const double delta_t = 1,
const int mode = 0,
74 double* alpha,
double* beta,
double* gamma,
75 double* l,
double* m,
double* r,
unsigned long N);
78 double* l,
double* m,
double* r,
double* d,
double* y,
unsigned long N);
80 template<
typename Type>
82 double* l,
double* m,
double* r, blitz::Array<Type,1> &d,
double* y,
85 #include "ldiffusion.icc" double CalculateDiffusionNewGreyValue(double *u, double *a, double *b, double *c, double *d, double *e, double *f, int x, int y, int z, int nx, int ny, int nz, int px, int py, int pz, double dt, int *dimsu)
void nonlinearDiffusion3D_AOS(blitz::Array< Type, 3 > &image, const blitz::TinyVector< double, 3 > &spacing, const int num_iter=4, const double kappa=0.1, const double delta_t=1, const int mode=0, const int v=1)
void get1DAOS_blitz(blitz::Array< GType, 1 > &p, double delta_t, int len, int m, double *alpha, double *beta, double *gamma, double *L, double *M, double *R)
void tridiagonal_Thomas_solution(double *l, double *m, double *r, double *d, double *y, unsigned long N)
void anisotropicDiffusion3D_explicit(blitz::Array< Type, Dim > &image, blitz::Array< Type, Dim > &Dxx, blitz::Array< Type, Dim > &Dyy, blitz::Array< Type, Dim > &Dzz, blitz::Array< Type, Dim > &Dxy, blitz::Array< Type, Dim > &Dxz, blitz::Array< Type, Dim > &Dyz, double delta_t=0.0625, int v=1)
void tridiagonal_Thomas_solution_blitz(double *l, double *m, double *r, blitz::Array< Type, 1 > &d, double *y, unsigned long N)
int mindex3(int x, int y, int z, int sizx, int sizy)
void tridiagonal_Thomas_decomposition(double *alpha, double *beta, double *gamma, double *l, double *m, double *r, unsigned long N)
void AOS_3D_blitz(const blitz::Array< Type, 3 > &u, blitz::Array< gType, 3 > &g, blitz::Array< Type, 3 > &u_new, const double delta_t)