0001 #include <stdlib.h>
0002 #include <stdio.h>
0003 #include "Fokker_Planck_DKE_loop.h"
0004
0005 void ReadBinaryArray_DKE(char* file,struct Tensor **Array)
0006 {
0007 FILE* TENSOR;
0008 int i;
0009 int cookie;
0010
0011 TENSOR=fopen(file,"r");
0012
0013
0014 fread(&cookie,sizeof(int),1,TENSOR);
0015
0016 "%i\n"
0017 if(cookie==0){
0018 int j,k;
0019 int mc,*nc;
0020 int pc=1,p=1;
0021
0022
0023 "reading m\n"
0024 fread(&mc,sizeof(int),1,TENSOR);
0025 if(mc!=2){return;}
0026 nc=malloc(mc*sizeof(int));
0027 fread(nc,sizeof(int),mc,TENSOR);
0028 fread(&pc,sizeof(int),1,TENSOR);
0029
0030 *Array=malloc(sizeof(**Array)*pc);
0031
0032 for(i=0;ifor(j=0;jint),1,TENSOR);
0036 (*Array)[i+nc[0]*j].sizedim=malloc((*Array)[i+nc[0]*j].ndims*sizeof(int));
0037 fread((*Array)[i+nc[0]*j].sizedim,sizeof(int),(*Array)[i+nc[0]*j].ndims,TENSOR);
0038
0039 fread(&((*Array)[i+nc[0]*j].size),sizeof(int),1,TENSOR);
0040 ((*Array)[i+nc[0]*j].vals)=malloc((*Array)[i+nc[0]*j].size*sizeof(DOUBLE));
0041 fread((*Array)[i+nc[0]*j].vals,sizeof(DOUBLE),(*Array)[i+nc[0]*j].size,TENSOR);
0042 for(k=0;k<(*Array)[i+nc[0]*j].size;k++){
0043
0044 }
0045 }
0046 }
0047 }
0048
0049 else if(cookie==1){
0050
0051 fread(&((**Array).ndims),sizeof(int),1,TENSOR);
0052
0053 (**Array).sizedim=malloc((**Array).ndims*sizeof(int));
0054 fread((**Array).sizedim,sizeof(int),(**Array).ndims,TENSOR);
0055
0056 fread(&((**Array).size),sizeof(int),1,TENSOR);
0057
0058 ((**Array).vals)=malloc((**Array).size*sizeof(DOUBLE));
0059 fread((**Array).vals,sizeof(DOUBLE),(**Array).size,TENSOR);
0060 }
0061
0062
0063
0064
0065
0066 fclose(TENSOR);
0067
0068 }