00001 #ifndef HYBR_CART_H
00002 #define HYBR_CART_H
00003 #include "mpi.h"
00004
00005 #ifndef PI
00006 #define PI 3.141592653589793
00007 #endif
00008
00009 #define frand() ((float) rand() / (RAND_MAX+1.0))
00010
00011
00012
00013
00014 #include "mpi.h"
00015 #include "emdata.h"
00016
00017 using namespace EMAN;
00018
00019 int recons3d_HyBR_mpi_Cart(MPI_Comm comm_2d, MPI_Comm comm_row, MPI_Comm comm_col, EMData ** images, float * angleshift, EMData *& xvol, int nangloc, int radius = -1, int maxit = 100, std::string symmetry = "c1", int insolve = 1);
00020 void LBD_Cart(MPI_Comm comm_2d, MPI_Comm comm_row, MPI_Comm comm_col, float *angleshift, Vec3i volsize, int nraysloc, int nnzloc, Vec3i origin, int radius, int *ptrs, int myptrstart, int *cord, int nangloc, int nx, int ny, float *Ukloc, float **B, float **Vloc,int m, int n, int k, int maxiter, std::string symmetry);
00021 float findomega(float * bhat, float *s, int m, int n, int insolve);
00022 float gcvstopfun(float alpha, float * u, float *s, float beta, int k, int m, int n, int insolve);
00023
00024 void recons3d_CGLS_mpi_Cart(MPI_Comm comm_2d, MPI_Comm comm_row, MPI_Comm comm_col, EMData ** images, float * angleshift, EMData *& xvol, int nangloc, int radius, int maxiter, std::string symmetry);
00025
00026 #endif // HYBR_CART_H