libosmodsp  0.4.0.6-1dfd
Osmocom DSP library
All Data Structures Files Functions Variables Enumerations Enumerator Modules
cxvec.h
Go to the documentation of this file.
1 /*
2  * cxvec.h
3  *
4  * Complex vectors handling
5  *
6  * Copyright (C) 2011 Sylvain Munaut <tnt@246tNt.com>
7  *
8  * All Rights Reserved
9  *
10  * This program is free software; you can redistribute it and/or modify
11  * it under the terms of the GNU General Public License as published by
12  * the Free Software Foundation; either version 2 of the License, or
13  * (at your option) any later version.
14  *
15  * This program is distributed in the hope that it will be useful,
16  * but WITHOUT ANY WARRANTY; without even the implied warranty of
17  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
18  * GNU General Public License for more details.
19  *
20  * You should have received a copy of the GNU General Public License along
21  * with this program; if not, write to the Free Software Foundation, Inc.,
22  * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
23  */
24 
25 #ifndef __OSMO_DSP_CXVEC_H__
26 #define __OSMO_DSP_CXVEC_H__
27 
36 #include <complex.h>
37 
38 #define CXVEC_FLG_REAL_ONLY (1<<0)
41 struct osmo_cxvec {
42  int len;
43  int max_len;
44  int flags;
45  float complex *data;
46  float complex _data[0];
47 };
48 
49 void
51  float complex *data, int len);
52 
53 struct osmo_cxvec *
54 osmo_cxvec_alloc_from_data(float complex *data, int len);
55 
56 struct osmo_cxvec *
58 
59 void
60 osmo_cxvec_free(struct osmo_cxvec *cv);
61 
62 void
63 osmo_cxvec_dbg_dump(struct osmo_cxvec *cv, const char *fname);
64 
67 #endif /* __OSMO_DSP_CXVEC_H__ */
int max_len
Maximum length in data field.
Definition: cxvec.h:43
void osmo_cxvec_dbg_dump(struct osmo_cxvec *cv, const char *fname)
Save the data contained of a vector into a .cfile for debug.
Definition: cxvec.c:119
void osmo_cxvec_init_from_data(struct osmo_cxvec *cv, float complex *data, int len)
Initialize a vector structure with a given data array.
Definition: cxvec.c:48
int flags
Flags, see CXVEC_FLG_xxx.
Definition: cxvec.h:44
unsigned int len
Length (in samples) of the data.
Definition: cfile.h:41
float complex * data
Data field.
Definition: cxvec.h:45
struct osmo_cxvec * osmo_cxvec_alloc(int max_len)
Allocate a complex vector of a given maximum length.
Definition: cxvec.c:83
float complex * data
Data array (read only !)
Definition: cfile.h:40
int len
Valid length.
Definition: cxvec.h:42
struct osmo_cxvec * osmo_cxvec_alloc_from_data(float complex *data, int len)
Allocate a complex vector referencing a given data array.
Definition: cxvec.c:63
Complex vector.
Definition: cxvec.h:41
void osmo_cxvec_free(struct osmo_cxvec *cv)
Free a complex vector (and possibly associated data)
Definition: cxvec.c:109