Commit a013af4f authored by D'azevedo, Ed's avatar D'azevedo, Ed
Browse files

updates for complex cases

parent 02ad5947
Loading
Loading
Loading
Loading
+2 −0
Original line number Diff line number Diff line
@@ -6,6 +6,8 @@
#include "cuda_runtime.h"
#endif

#include "dmrg_lapack.h"

int dmrg_is_managed( const void *ptr )
{
  const int lfalse = (0 == 1);
+10 −0
Original line number Diff line number Diff line
@@ -8,18 +8,28 @@ typedef int IntegerType;
   #include <complex.h>
   typedef double _Complex FpType;

   #define makeFloat(zr,zi)  ((FpType) { (zr), (zi) })

  

#elif defined(USE_COMPLEX_C)
   #include <complex.h>
   typedef float _Complex FpType;

   #define makeFloat(zr,zi)  ((FpType) { (zr), (zi) })


#elif defined(USE_FLOAT)

   typedef float FpType;

   #define makeFloat(zr,zi)  ((FpType) (zr))

#else

   typedef double FpType;

   #define makeFloat(zr,zi)  ((FpType) (zr))
#endif


+5 −5
Original line number Diff line number Diff line
@@ -87,11 +87,11 @@ void setup_matrix( const int noperator,
      for(i=1; i <= nrow; i++) {
         int ia = (ia_start-1) + i;
         int ja = (ja_start-1) + j;
         FpType dval = (ia  + (ja-1)*total_left_size); 
         dval += ( (FpType) (ioperator-1)) *
                 ( (FpType) total_left_size) *
                 ( (FpType) total_left_size);
         Amat(i,j) = dval;
         double dval = (ia  + (ja-1)*total_left_size); 
         dval += ( (double) (ioperator-1)) *
                 ( (double) total_left_size) *
                 ( (double) total_left_size);
         Amat(i,j) = makeFloat(dval,-dval);
         };
         };
     
+7 −6
Original line number Diff line number Diff line
@@ -401,16 +401,17 @@ int main(int argc, char *argv[])
 {
  IntegerType i = 0;
  FpType Y_avg = 0;
  FpType Y_sd = 0;
  double Y_max = ABS(hY(1));
  double Y_min = ABS(hY(1));

  for(i=1; i <= xy_size; i++) {
    Y_avg += hY(i);
    Y_max = (ABS(hY(i)) > Y_max) ? ABS(hY(i)) : Y_max;
    Y_min = (ABS(hY(i)) < Y_min) ? ABS(hY(i)) : Y_min;
    };
  Y_avg = Y_avg/( (double) xy_size );
  for(i=1; i <= xy_size; i++) {
    Y_sd = Y_sd + (hY(i)-Y_avg)*(hY(i)-Y_avg);
    };
  Y_sd = sqrt( Y_sd );
  printf("Y_avg = %lf, Y_sd = %lf\n", (double) Y_avg, (double) Y_sd );
  printf("ABS(Y_avg) = %le, Y_max = %le Y_min = %le \n", 
          (double) ABS(Y_avg), Y_max, Y_min );
  };