Ejemplo n.º 1
0
VrArrayPtrI64 vrAllocArrayI64RM(int ndims,int func,int *sizes){
    VrArrayPtrI64 arr; 
    switch(func){
        case 0: //Zeros
            {
                VR_GET_DATA_I64(arr)=(long*)VR_MALLOC(sizeof(long)*getNumElem(sizes,ndims));
                memset(VR_GET_DATA_I64(arr),0,sizeof(int)*getNumElem(sizes,ndims));
                VR_GET_NDIMS_I64(arr)=ndims;
                VR_GET_DIMS_I64(arr)=(dim_type*)VR_MALLOC(sizeof(dim_type)*ndims);
                memcpy(VR_GET_DIMS_I64(arr),sizes,ndims*sizeof(dim_type));
                return arr;
            }
        case 1: // Ones
            {
                VR_GET_DATA_I64(arr)=(long*)VR_MALLOC(sizeof(long)*getNumElem(sizes,ndims));
                VR_GET_NDIMS_I64(arr)=ndims;
                VR_GET_DIMS_I64(arr)=(dim_type*)VR_MALLOC(sizeof(dim_type)*ndims);
                memcpy(VR_GET_DIMS_I64(arr),sizes,ndims*sizeof(dim_type));
                int numel=getNumElem(sizes,ndims);
                for(int i=0;i<numel;i++){
                    VR_GET_DATA_I64(arr)[i]=1.0f;
                }
                return arr;
            }
        case 2 : //Empty Matrix 
            {
                VR_GET_DATA_I64(arr) = NULL;
                VR_GET_NDIMS_I64(arr) = ndims;
                VR_GET_DIMS_I64(arr)=(dim_type*)VR_MALLOC(sizeof(dim_type)*ndims);
                memcpy(VR_GET_DIMS_I64(arr),sizes,ndims*sizeof(dim_type));
                return arr;
            }
    }
}
Ejemplo n.º 2
0
void ResizableArray<ElemType>::printInt(void) const
{
	for( int i=0; i<getNumElem(); i++ ) {
		int elem = (int) (getElem(i));
		printf("%d\t%d\n",i,elem);
	};
}
Ejemplo n.º 3
0
VrArrayPtrCF32 BlasComplexSingle::elem_mult(VrArrayPtrCF32 A, VrArrayPtrCF32 B) {
  if ( !checkdims<VrArrayCF32>(A,B) ) {
    std::cout<<"dimensions do not match. \n Exiting. "<<std::endl;
    exit(0);
  }
  VrArrayPtrCF32 C = vec_copy(VR_GET_NDIMS_CF32(A),A);
  for (int i = 0; i < getNumElem(VR_GET_DIMS_CF32(A),VR_GET_NDIMS_CF32(A)); i++) {
    VR_GET_DATA_CF32(C)[i] *= VR_GET_DATA_CF32(B)[i];
  }
  return C;
}
Ejemplo n.º 4
0
VrArrayPtrF64 vrAllocArrayF64RM(int ndims,int func,int *sizes){
	VrArrayPtrF64 arr; 
	switch(func){
	case 0: //Zeros
		{
		VR_GET_DATA_F64(arr)=(double*)VR_MALLOC(sizeof(double)*getNumElem(sizes,ndims));
		memset(VR_GET_DATA_F64(arr),0,sizeof(double)*getNumElem(sizes,ndims));
		VR_GET_NDIMS_F64(arr)=ndims ==1?2:ndims;
		VR_GET_DIMS_F64(arr)=(dim_type*)VR_MALLOC(sizeof(dim_type)*arr.ndims);
        arr.dims[1] = 1;
		memcpy(VR_GET_DIMS_F64(arr),sizes,ndims*sizeof(dim_type));
		return arr;
		}
	case 1: // Ones
		
		{
		//arr=(VrArrayPtrF64)VR_MALLOC(sizeof(VrArrayF64));  
		VR_GET_DATA_F64(arr)=(double*)VR_MALLOC(sizeof(double)*getNumElem(sizes,ndims));
		VR_GET_NDIMS_F64(arr)=ndims;
		//memcpy(arr->dims,sizes,ndims*sizeof(int));
		VR_GET_DIMS_F64(arr)=(dim_type*)VR_MALLOC(sizeof(dim_type)*ndims);
		memcpy(VR_GET_DIMS_F64(arr),sizes,ndims*sizeof(dim_type));
		int numel=getNumElem(sizes,ndims);
			for(int i=0;i<numel;i++){
				VR_GET_DATA_F64(arr)[i]=1.0f;
			}
		return arr;
		}
	
	
	case 2 : //Empty Matrix 
		{
		//	arr=(VrArrayPtrF64)VR_MALLOC(sizeof(VrArrayF64));
			VR_GET_DATA_F64(arr) = NULL;
			VR_GET_NDIMS_F64(arr) = ndims;
			VR_GET_DIMS_F64(arr)=(dim_type*)VR_MALLOC(sizeof(dim_type)*ndims);
			memcpy(VR_GET_DIMS_F64(arr),sizes,ndims*sizeof(dim_type));
			return arr;
		}
	}
}
Ejemplo n.º 5
0
VrArrayPtrF32 vrAllocArrayF32RM(int ndims,int func,int *sizes){
	VrArrayPtrF32 arr;
	switch(func){
	case 0: //Zeros
		{
		//VrArrayPtrF32 arr;//=(VrArrayPtrF32)VR_MALLOC(sizeof(VrArrayF32));  
		VR_GET_DATA_F32(arr)=NULL;
		VR_GET_DATA_F32(arr)=(float*)VR_MALLOC(sizeof(float)*getNumElem(sizes,ndims));
		memset(VR_GET_DATA_F32(arr),0,sizeof(float)*getNumElem(sizes,ndims));
		VR_GET_NDIMS_F32(arr)=ndims ==1?2:ndims;
		VR_GET_DIMS_F32(arr)=(dim_type*)VR_MALLOC(sizeof(dim_type)*arr.ndims);
		memset(arr.dims,1,sizeof(dim_type)*arr.ndims);
		memcpy(VR_GET_DIMS_F32(arr),sizes,ndims*sizeof(dim_type));
		return arr;
		}
	case 1: // Ones
		{
		//arr//(VrArrayPtrF32)VR_MALLOC(sizeof(VrArrayF32)); 
		VR_GET_DATA_F32(arr)=(float*)VR_MALLOC(sizeof(float)*getNumElem(sizes,ndims));
		VR_GET_NDIMS_F32(arr)=ndims ==1?2:ndims;
		VR_GET_DIMS_F32(arr)=(dim_type*)VR_MALLOC(sizeof(dim_type)*arr.ndims);
		memset(arr.dims,1,sizeof(dim_type)*arr.ndims);
		memcpy(VR_GET_DIMS_F32(arr),sizes,ndims*sizeof(dim_type));
			int numel=getNumElem(sizes,ndims);
			for(int i=0;i<numel;i++){
				VR_GET_DATA_F32(arr)[i]=1.0f;
			}
		return arr;
		}
	case 2 : //Empty Matrix 
		{
			//arr=(VrArrayPtrF32)VR_MALLOC(sizeof(VrArrayF32));
			VR_GET_DATA_F32(arr) = NULL;
			VR_GET_NDIMS_F32(arr) = ndims== 1?2:ndims;
			VR_GET_DIMS_F32(arr)=(dim_type*)VR_MALLOC(sizeof(dim_type)*arr.ndims);
			memset(arr.dims,1,sizeof(dim_type)*arr.ndims);
			memcpy(VR_GET_DIMS_F32(arr),sizes,ndims*sizeof(dim_type));
			return arr;
		}
	}
}
Ejemplo n.º 6
0
VrArrayPtrCF32 vrAllocArrayF32CM(int ndims,int func,int *sizes){
	VrArrayPtrCF32 arr;	
	switch(func){
	case 0: //Zeros
		{
		//arr=(VrArrayPtrCF32)VR_MALLOC(sizeof(VrArrayCF32));  //mxCreateNumericArray(ndims,(int*)sizes,mxSINGLE_CLASS,mxREAL);
		VR_GET_DATA_CF32(arr)=(float complex *)VR_MALLOC(sizeof(float complex)*getNumElem(sizes,ndims));
		VR_GET_NDIMS_CF32(arr)=ndims;
		memset(VR_GET_DATA_CF32(arr),0,sizeof(double)*getNumElem(sizes,ndims));
		//memcpy(arr->dims,sizes,ndims*sizeof(int));
		VR_GET_DIMS_CF32(arr)=(dim_type*)VR_MALLOC(sizeof(dim_type)*ndims);
		
		memcpy(VR_GET_DIMS_CF32(arr),sizes,ndims*sizeof(dim_type));
		return arr;
		}
	case 1: // Ones
		{
		 //arr=(VrArrayPtrCF32)VR_MALLOC(sizeof(VrArrayCF32));  //mxCreateNumericArray(ndims,(int*)sizes,mxSINGLE_CLASS,mxREAL);
		VR_GET_DATA_CF32(arr)=(float complex*)VR_MALLOC(sizeof(float complex)*getNumElem(sizes,ndims));
		VR_GET_NDIMS_CF32(arr)=ndims;
		//memcpy(arr->dims,sizes,ndims*sizeof(int));
		VR_GET_DIMS_CF32(arr)=(dim_type*)VR_MALLOC(sizeof(dim_type)*ndims);
		memcpy(VR_GET_DIMS_CF32(arr),sizes,ndims*sizeof(dim_type));
		int numel=getNumElem(sizes,ndims);
			for(int i=0;i<numel;i++){
				VR_GET_DATA_CF32(arr)[i]=1.0f;
			}
		}
		return arr;
	case 2 : //Empty Matrix 
		{
		//	arr=(VrArrayPtrCF32)VR_MALLOC(sizeof(VrArrayCF32));
			VR_GET_DATA_CF32(arr) = NULL;
			VR_GET_NDIMS_CF32(arr) = ndims;
			VR_GET_DIMS_CF32(arr)=(dim_type*)VR_MALLOC(sizeof(dim_type)*ndims);
			memcpy(VR_GET_DIMS_CF32(arr),sizes,ndims*sizeof(dim_type));
			return arr;
		}

	}
}
Ejemplo n.º 7
0
VrArrayPtrCF32 BlasComplexSingle::scal_add(int ndims, VrArrayPtrCF32 X, float complex scal, const int incX ) {
	int N = getNumElem(VR_GET_DIMS_CF32(X), ndims);
	VrArrayPtrCF32 Y=vec_copy(ndims, X);
	float complex * out=VR_GET_DATA_CF32(Y);
	
	for(int i=0;i<N;i++){
		//out[2*i]+=scal[0];
		//out[2*i+1]=scal[1];
		out[i]+=scal;
	}	
	return Y;
}
Ejemplo n.º 8
0
VrArrayPtrCF32 BlasComplexSingle::elem_div(VrArrayPtrCF32 A, VrArrayPtrCF32 B, bool zeroCheck) {
  if ( !checkdims<VrArrayCF32>(A,B) ) {
    std::cout<<"dimensions do not match. \n Exiting. "<<std::endl;
    exit(0);
  }
  VrArrayPtrCF32 C = vec_copy(VR_GET_NDIMS_CF32(A),A);
  if(!zeroCheck){
   for (int i = 0; i < getNumElem(VR_GET_DIMS_CF32(A),VR_GET_NDIMS_CF32(A)); i++) {
     VR_GET_DATA_CF32(C)[i] /= VR_GET_DATA_CF32(B)[i];
   }
  }else {
    for (int i = 0; i < getNumElem(VR_GET_DIMS_CF32(A),VR_GET_NDIMS_CF32(A)); i++) {
     if (VR_GET_DATA_CF32(B)[i]==0) {
       std::cout<<"divide by zero. \n Exiting"<<std::endl;
       exit(0);
     }
     VR_GET_DATA_CF32(C)[i] /= VR_GET_DATA_CF32(B)[i];
   }
  }
  return C;
}
Ejemplo n.º 9
0
VrArrayPtrCF64 BlasComplexDouble::scal_div( VrArrayPtrCF64 A, double complex  scal){
  
  double complex  * data, * out;
  VrArrayPtrCF64 B= vec_copy(VR_GET_NDIMS_CF64(A), A);
  data=(double complex*)VR_GET_DATA_CF64(A);
  out= (double complex*)VR_GET_DATA_CF64(B);
  for(int i=0;i<getNumElem(VR_GET_DIMS_CF64(A),VR_GET_NDIMS_CF64(A));i++){
  
    out[i]=data[i]/scal;
    //out[2*i+1]=data[2*i+1]/scal[1];
  }
  return B;
}
Ejemplo n.º 10
0
VrArrayPtrCF32 BlasComplexSingle::scal_div( VrArrayPtrCF32 A, float complex  scal){
  
  float complex * data, * out;
  VrArrayPtrCF32 B= vec_copy(VR_GET_NDIMS_CF32(A), A);
  data=(float complex *)VR_GET_DATA_CF32(A);
  out= (float complex *)VR_GET_DATA_CF32(B);
  for(int i=0;i<getNumElem(VR_GET_DIMS_CF32(A),VR_GET_NDIMS_CF32(A));i++){
  
  //  out[2*i]=data[i]/scal[0];
   // out[2*i+1]=data[2*i+1]/scal[1];
	VR_GET_DATA_CF32(B)[i]= VR_GET_DATA_CF32(A)[i]/scal;
	//mexPrintf("%f %f",creal(out[i]),cimag(out[i]));
  }
  return B;
}
Ejemplo n.º 11
0
void mat_setComplexDataCF32(PyArrayObject* arr, VrArrayPtrCF32 B){
	int numel = getNumElem(VR_GET_DIMS_CF64(B),VR_GET_NDIMS_F64(B));
	memcpy(PyArray_DATA(arr),B.data,sizeof(float complex)*numel);	
}