[97fff8]: mex / comp_dgt_long.c  Maximize  Restore  History

Download this file

126 lines (88 with data), 2.5 kB

  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
#ifndef _LTFAT_MEX_FILE
#define _LTFAT_MEX_FILE
#define ISNARGINEQ 4
#define TYPEDEPARGS 0, 1
#define SINGLEARGS
#define COMPLEXARGS
#endif // _LTFAT_MEX_FILE - INCLUDED ONCE
#define MEX_FILE __BASE_FILE__
#include "ltfat_mex_template_helper.h"
#if defined(LTFAT_SINGLE) || defined(LTFAT_DOUBLE)
#include "ltfat_types.h"
// Calling convention:
// comp_dgt_long(f,g,a,M);
void LTFAT_NAME(ltfatMexFnc)( int nlhs, mxArray *plhs[],int nrhs, const mxArray *prhs[] )
{
int L, W, a, M, N;
mwSize ndim;
mwSize dims[3];
// Get matrix dimensions.
L = mxGetM(prhs[0]);
W = mxGetN(prhs[0]);
a=(int)mxGetScalar(prhs[2]);
M=(int)mxGetScalar(prhs[3]);
N=L/a;
dims[0]=M;
dims[1]=N;
dims[2]=W;
ndim=3;
if (W==1)
{
ndim=2;
}
plhs[0] = ltfatCreateNdimArray(ndim,dims,LTFAT_MX_CLASSID,mxCOMPLEX);
const LTFAT_COMPLEX* f_combined = (const LTFAT_COMPLEX*) mxGetData(prhs[0]);
const LTFAT_COMPLEX* g_combined = (const LTFAT_COMPLEX*) mxGetData(prhs[1]);
LTFAT_COMPLEX* out_combined = (LTFAT_COMPLEX*) mxGetData(plhs[0]);
LTFAT_NAME(dgt_long)(f_combined,g_combined,L,W,a,M,out_combined);
return;
}
#endif
/*
#include "mex.h"
#include "config.h"
#include "ltfat.h"
#include "ltfat-mex-helper.h"
// Calling convention:
// comp_dgt_long(f,g,a,M);
void dothedouble(int nlhs, mxArray *plhs[],
int nrhs, const mxArray *prhs[],
int L, int W, int a, int M, int N)
{
}
void mexFunction( int nlhs, mxArray *plhs[],
int nrhs, const mxArray *prhs[] )
{
int L, W, a, M, N;
mwSize ndim;
mwSize dims[3];
ltfat_complex *f_combined, *g_combined, *out_combined;
// Get matrix dimensions.
L = mxGetM(prhs[0]);
W = mxGetN(prhs[0]);
a=(int)mxGetScalar(prhs[2]);
M=(int)mxGetScalar(prhs[3]);
N=L/a;
dims[0]=M;
dims[1]=N;
dims[2]=W;
ndim=3;
if (W==1)
{
ndim=2;
}
f_combined=(ltfat_complex*)mxMalloc(L*W*sizeof(ltfat_complex));
g_combined=mxMalloc(L*sizeof(ltfat_complex));
out_combined=(ltfat_complex*)mxMalloc(M*N*W*sizeof(ltfat_complex));
split2combined(L*W, prhs[0], f_combined);
split2combined(L, prhs[1], g_combined);
dgt_long((const ltfat_complex*)f_combined,(const ltfat_complex*)g_combined,
L,W,a,M,out_combined);
mxFree(f_combined);
mxFree(g_combined);
plhs[0] = mxCreateNumericArray(ndim,dims,mxDOUBLE_CLASS,mxCOMPLEX);
combined2split(M*N*W, (const ltfat_complex*)out_combined, plhs[0]);
mxFree(out_combined);
return;
}
*/

Get latest updates about Open Source Projects, Conferences and News.

Sign up for the SourceForge newsletter:





No, thanks