#include <it/cplx.h>
#include <it/types.h>
#include <assert.h>
#include <stddef.h>
#include <stdlib.h>
#include <string.h>
Go to the source code of this file.
Data Structures | |
struct | _Vec_header_ |
Basic vector allocation, initialization and deletion | |
#define | Vec_new_alloc(type_t, N, length_max) ((type_t *) __Vec_new_alloc(sizeof(type_t), N, length_max )) |
vec | vec_new_alloc (idx_t length, idx_t length_max) |
ivec | ivec_new_alloc (idx_t length, idx_t length_max) |
bvec | bvec_new_alloc (idx_t length, idx_t length_max) |
cvec | cvec_new_alloc (idx_t length, idx_t length_max) |
#define | Vec_new(type_t, N) ((type_t *) __Vec_new( sizeof(type_t), N )) |
Vec | __Vec_new (size_t elem_size, idx_t N) |
vec | vec_new (idx_t length) |
ivec | ivec_new (idx_t length) |
bvec | bvec_new (idx_t length) |
cvec | cvec_new (idx_t length) |
#define | Vec_delete(v) free( Vec_header(v).ptr ) |
void | vec_delete (vec v) |
void | ivec_delete (ivec v) |
void | bvec_delete (bvec v) |
void | cvec_delete (cvec v) |
Length and max length vector operations | |
#define | Vec_length(v) ( Vec_header(v).length ) |
idx_t | vec_length (vec v) |
idx_t | ivec_length (ivec v) |
idx_t | bvec_length (bvec v) |
idx_t | cvec_length (cvec v) |
#define | Vec_length_max(v) ( Vec_header(v).length_max ) |
idx_t | vec_length_max (vec v) |
idx_t | ivec_length_max (ivec v) |
idx_t | bvec_length_max (bvec v) |
idx_t | cvec_length_max (cvec v) |
#define | Vec_set_length_max(v, N) |
#define | vec_set_length_max(v, N) do { v=_vec_set_length_max( v, N ); } while (0) |
#define | ivec_set_length_max(v, N) do { v=_ivec_set_length_max( v, N ); } while (0) |
#define | bvec_set_length_max(v, N) do { v=_bvec_set_length_max( v, N ); } while (0) |
#define | cvec_set_length_max(v, N) do { v=_cvec_set_length_max( v, N ); } while (0) |
vec | _vec_set_length_max (vec v, idx_t N) |
ivec | _ivec_set_length_max (ivec v, idx_t N) |
bvec | _bvec_set_length_max (bvec v, idx_t N) |
cvec | _cvec_set_length_max (cvec v, idx_t N) |
#define | Vec_set_length(v, N) |
#define | vec_set_length(v, N) do { v=_vec_set_length( v, N ); } while (0) |
#define | ivec_set_length(v, N) do { v=_ivec_set_length( v, N ); } while (0) |
#define | bvec_set_length(v, N) do { v=_bvec_set_length( v, N ); } while (0) |
#define | cvec_set_length(v, N) do { v=_cvec_set_length( v, N ); } while (0) |
vec | _vec_set_length (vec v, idx_t N) |
ivec | _ivec_set_length (ivec v, idx_t N) |
bvec | _bvec_set_length (bvec v, idx_t N) |
cvec | _cvec_set_length (cvec v, idx_t N) |
Basic vector initialization/modification | |
#define | Vec_init(v, buf, N) memcpy( v, buf, Vec_element_size(v) * (N) ); |
vec | vec_init (vec v, double *buf, idx_t N) |
ivec | ivec_init (ivec v, int *buf, idx_t N) |
bvec | bvec_init (bvec v, byte *buf, idx_t N) |
cvec | cvec_init (cvec v, cplx *buf, idx_t N) |
#define | Vec_set(v, val) |
vec | vec_set (vec v, double val) |
ivec | ivec_set (ivec v, int val) |
bvec | bvec_set (bvec v, byte val) |
cvec | cvec_set (cvec v, cplx val) |
#define | Vec_void(v) |
void | vec_void (vec) |
void | ivec_void (ivec) |
void | bvec_void (bvec) |
void | cvec_void (cvec) |
#define | Vec_new_void(type_t) Vec_new( type_t, 0 ) |
vec | vec_new_void () |
ivec | ivec_new_void () |
bvec | bvec_new_void () |
cvec | cvec_new_void () |
#define | Vec_set_between(v, i1, i2, val) |
vec | vec_set_between (vec v, idx_t i1, idx_t i2, double val) |
ivec | ivec_set_between (ivec v, idx_t i1, idx_t i2, int val) |
bvec | bvec_set_between (bvec v, idx_t i1, idx_t i2, byte val) |
cvec | cvec_set_between (cvec v, idx_t i1, idx_t i2, cplx val) |
#define | Vec_set_subvector(v, s, index) |
void | vec_set_subvector (vec v, vec s, idx_t idx) |
void | ivec_set_subvector (ivec v, ivec s, idx_t idx) |
void | bvec_set_subvector (bvec v, bvec s, idx_t idx) |
void | cvec_set_subvector (cvec v, cvec s, idx_t idx) |
Comparisons functions | |
#define | Vec_eq(v1, v2) |
int | vec_eq (vec v1, vec v2) |
int | ivec_eq (ivec v1, ivec v2) |
int | bvec_eq (bvec v1, bvec v2) |
int | cvec_eq (cvec v1, cvec v2) |
Copy and Conversions Functions | |
#define | Vec_copy(v1, v2) __Vec_copy((Vec) v1, (Vec) v2) |
Vec | __Vec_copy (Vec v1, Vec v2) |
void | vec_copy (vec dest, vec orig) |
void | ivec_copy (ivec dest, ivec orig) |
void | bvec_copy (bvec dest, bvec orig) |
void | cvec_copy (cvec dest, cvec orig) |
Ordered set and stack operations | |
#define | Vec_del(v, pos) |
vec | vec_del (vec v, idx_t pos) |
ivec | ivec_del (ivec v, idx_t pos) |
bvec | bvec_del (bvec v, idx_t pos) |
cvec | cvec_del (cvec v, idx_t pos) |
#define | Vec_ins(v, pos, elt) |
#define | vec_ins(v, pos, elt) do { v=_vec_ins( v, pos, elt ); } while (0) |
#define | ivec_ins(v, pos, elt) do { v=_ivec_ins( v, pos, elt ); } while (0) |
#define | bvec_ins(v, pos, elt) do { v=_bvec_ins( v, pos, elt ); } while (0) |
#define | cvec_ins(v, pos, elt) do { v=_cvec_ins( v, pos, elt ); } while (0) |
vec | _vec_ins (vec v, idx_t pos, double elt) |
ivec | _ivec_ins (ivec v, idx_t pos, int elt) |
bvec | _bvec_ins (bvec v, idx_t pos, byte elt) |
cvec | _cvec_ins (cvec v, idx_t pos, cplx elt) |
#define | Vec_push(v, elt) Vec_ins( v, Vec_length(v), elt ) |
#define | vec_push(v, elt) do { v=_vec_push( v, elt ); } while (0) |
#define | ivec_push(v, elt) do { v=_ivec_push( v, elt ); } while (0) |
#define | bvec_push(v, elt) do { v=_bvec_push( v, elt ); } while (0) |
#define | cvec_push(v, elt) do { v=_cvec_push( v, elt ); } while (0) |
vec | _vec_push (vec v, double elt) |
ivec | _ivec_push (ivec v, int elt) |
bvec | _bvec_push (bvec v, byte elt) |
cvec | _cvec_push (cvec v, cplx elt) |
#define | Vec_pop(v) Vec_del( v, Vec_length(v)-1 ) |
vec | vec_pop (vec v) |
ivec | ivec_pop (ivec v) |
bvec | bvec_pop (bvec v) |
cvec | cvec_pop (cvec v) |
#define | Vec_head(v) ((v)[Vec_length(v)-1]) |
double | vec_head (vec v) |
int | ivec_head (ivec v) |
byte | bvec_head (bvec v) |
cplx | cvec_head (const cvec v) |
Safe vector access | |
#define | _vec(v, i) (*__vec(v, i)) |
#define | _ivec(v, i) (*__ivec(v, i)) |
#define | _bvec(v, i) (*__bvec(v, i)) |
#define | _cvec(v, i) (*__cvec(v, i)) |
double * | __vec (vec v, idx_t i) |
int * | __ivec (ivec v, idx_t i) |
byte * | __bvec (bvec v, idx_t i) |
cplx * | __cvec (cvec v, idx_t i) |
#define | ivec_eval(v, f, a) ivec_apply_function(v, f, a) |
#define | ivec_new_eval(v, f, a) ivec_new_apply_function(v, f, a) |
ivec | ivec_new_apply_function (ivec v, it_ifunction_t function, it_args_t args) |
Constant vectors | |
typedef void * | Vec |
typedef double * | vec |
typedef int * | ivec |
typedef byte * | bvec |
typedef cplx * | cvec |
vec const | vec_null |
ivec const | ivec_null |
bvec const | bvec_null |
cvec const | cvec_null |
Defines | |
#define | Vec_header(v) (*(((Vec_header_t *) (v)) - 1)) |
#define | Vec_element_size(v) (Vec_header(v).element_size) |
#define | IT_ALLOC_ALIGN (sizeof(cplx)) |
#define | DYN_ALLOC_RULE(l) ((l)*4/3+1) |
#define | VEC_END_PARAM(v, param) do { if( param == end ) param = Vec_length( v ) - 1; } while(0) |
#define | vec_eval(v, f, a) vec_apply_function(v, f, a) |
#define | vec_new_eval(v, f, a) vec_new_apply_function(v, f, a) |
Typedefs | |
typedef struct _Vec_header_ | Vec_header_t |
Functions | |
Vec | __Vec_new_alloc (size_t elem_size, idx_t length, idx_t length_max) |
Vec | __Vec_new_realloc (void *V, size_t elem_size, idx_t length, idx_t length_max) |
vec | vec_new_set (double val, idx_t N) |
ivec | ivec_new_set (int val, idx_t N) |
bvec | bvec_new_set (byte val, idx_t N) |
cvec | cvec_new_set (cplx val, idx_t N) |
void | vec_zeros (vec) |
void | ivec_zeros (ivec) |
void | bvec_zeros (bvec) |
void | cvec_zeros (cvec) |
vec | vec_new_zeros (idx_t N) |
ivec | ivec_new_zeros (idx_t N) |
bvec | bvec_new_zeros (idx_t N) |
cvec | cvec_new_zeros (idx_t N) |
void | vec_ones (vec) |
void | ivec_ones (ivec) |
void | bvec_ones (bvec) |
void | cvec_ones (cvec) |
vec | vec_new_ones (idx_t N) |
ivec | ivec_new_ones (idx_t N) |
bvec | bvec_new_ones (idx_t N) |
cvec | cvec_new_ones (idx_t N) |
vec | vec_get_subvector (vec v, idx_t i1, idx_t i2) |
ivec | ivec_get_subvector (ivec v, idx_t i1, idx_t i2) |
bvec | bvec_get_subvector (bvec v, idx_t i1, idx_t i2) |
cvec | cvec_get_subvector (cvec v, idx_t i1, idx_t i2) |
int | vec_geq (vec v1, vec v2) |
int | ivec_geq (ivec v1, ivec v2) |
int | bvec_geq (bvec v1, bvec v2) |
Vec | Vec_clone (Vec v) |
vec | vec_clone (vec v) |
ivec | ivec_clone (ivec v) |
bvec | bvec_clone (bvec v) |
cvec | cvec_clone (cvec v) |
void | vec_copy_from_ivec (vec dest, ivec orig) |
void | vec_copy_from_bvec (vec dest, bvec orig) |
void | vec_copy_from_cvec (vec dest, cvec orig) |
void | ivec_copy_from_vec (ivec dest, vec orig) |
void | ivec_copy_from_bvec (ivec dest, bvec orig) |
void | ivec_copy_from_cvec (ivec dest, cvec orig) |
void | bvec_copy_from_vec (bvec dest, vec orig) |
void | bvec_copy_from_ivec (bvec dest, ivec orig) |
void | bvec_copy_from_cvec (bvec dest, cvec orig) |
void | cvec_copy_from_vec (cvec dest, vec orig) |
void | cvec_copy_from_ivec (cvec dest, ivec orig) |
void | cvec_copy_from_bvec (cvec dest, bvec orig) |
bvec | vec_to_bvec (vec v) |
ivec | vec_to_ivec (vec v) |
cvec | vec_to_cvec (vec v) |
vec | ivec_to_vec (ivec v) |
bvec | ivec_to_bvec (ivec v) |
cvec | ivec_to_cvec (ivec v) |
ivec | bvec_to_ivec (bvec v) |
vec | bvec_to_vec (bvec v) |
cvec | bvec_to_cvec (bvec v) |
void | vec_copy_mem (double *buf, vec v) |
void | ivec_copy_mem (int *buf, ivec v) |
void | bvec_copy_mem (byte *buf, bvec v) |
void | cvec_copy_mem (cplx *buf, cvec v) |
void | bvec_pack (byte *buf, bvec v) |
void | bvec_unpack (bvec v, byte *buf) |
Mean, median, min, max, sum and elementary statistic indicators | |
double | vec_mean (vec v) |
double | ivec_mean (ivec v) |
double | vec_mean_robust (vec v) |
double | vec_median (vec v) |
int | ivec_median (ivec v) |
double | vec_sum (vec v) |
int | ivec_sum (ivec v) |
cplx | cvec_sum (cvec v) |
double | vec_sum_robust (vec v) |
vec | vec_cum_sum (vec v) |
ivec | ivec_cum_sum (ivec v) |
cvec | cvec_cum_sum (cvec v) |
double | vec_sum_between (vec v, idx_t i1, idx_t i2) |
int | ivec_sum_between (ivec v, idx_t i1, idx_t i2) |
cplx | cvec_sum_between (cvec v, idx_t i1, idx_t i2) |
double | vec_sum_sqr (vec v) |
double | vec_min (vec v) |
int | ivec_min (ivec v) |
double | vec_max (vec v) |
int | ivec_max (ivec v) |
idx_t | vec_min_index (vec v) |
idx_t | ivec_min_index (ivec v) |
idx_t | vec_max_index (vec v) |
idx_t | ivec_max_index (ivec v) |
vec | vec_k_min (vec v, int k) |
ivec | ivec_k_min (ivec v, int k) |
vec | vec_k_max (vec v, int k) |
ivec | ivec_k_max (ivec v, int k) |
vec | vec_k_min_between (vec v, int k, idx_t a, idx_t b) |
ivec | ivec_k_min_between (ivec v, int k, idx_t a, idx_t b) |
vec | vec_k_max_between (vec v, int k, idx_t a, idx_t b) |
ivec | ivec_k_max_between (ivec v, int k, idx_t a, idx_t b) |
ivec | vec_k_min_index (vec v, int k) |
ivec | ivec_k_min_index (ivec v, int k) |
ivec | vec_k_max_index (vec v, int k) |
ivec | ivec_k_max_index (ivec v, int k) |
ivec | vec_k_min_index_between (vec v, int k, idx_t a, idx_t b) |
ivec | ivec_k_min_index_between (ivec v, int k, idx_t a, idx_t b) |
ivec | vec_k_max_index_between (vec v, int k, idx_t a, idx_t b) |
ivec | ivec_k_max_index_between (ivec v, int k, idx_t a, idx_t b) |
double | vec_variance (vec v) |
double | vec_variance_robust (vec v) |
double | vec_cov (vec v1, vec v2) |
double | vec_norm (vec v, double nr) |
double | ivec_norm (ivec v, int nr) |
void | vec_normalize (vec v, double nr) |
vec | vec_new_normalize (vec v, double nr) |
Basic arithmetic operations | |
void | vec_neg (vec v) |
void | ivec_neg (ivec v) |
void | cvec_neg (cvec v) |
void | cvec_conj (cvec v) |
void | cvec_abssqr (cvec v) |
void | vec_sqr (vec v) |
void | ivec_sqr (ivec v) |
void | vec_sqrt (vec v) |
void | vec_log (vec v) |
void | vec_log10 (vec v) |
void | vec_exp (vec v) |
void | vec_pow (vec v, double a) |
vec | vec_new_pow (vec v, double a) |
void | vec_abs (vec v) |
void | ivec_abs (ivec v) |
vec | vec_new_abs (vec v) |
ivec | ivec_new_abs (ivec v) |
vec | cvec_new_abs (cvec v) |
Arithmetic operations with a scalar value | |
void | vec_incr (vec v, double a) |
void | ivec_incr (ivec v, int a) |
void | cvec_incr (cvec v, cplx a) |
void | cvec_incr_real (cvec v, double a) |
void | vec_decr (vec v, double a) |
void | ivec_decr (ivec v, int a) |
void | cvec_decr (cvec v, cplx a) |
void | cvec_decr_real (cvec v, double a) |
void | vec_mul_by (vec v, double a) |
void | ivec_mul_by (ivec v, int a) |
void | cvec_mul_by (cvec v, cplx a) |
void | cvec_mul_by_real (cvec v, double a) |
void | vec_div_by (vec v, double a) |
void | ivec_div_by (ivec v, int a) |
void | cvec_div_by (cvec v, cplx a) |
void | cvec_div_by_real (cvec v, double a) |
Component per component operations | |
void | vec_add (vec v1, vec v2) |
void | ivec_add (ivec v1, ivec v2) |
void | cvec_add (cvec v1, cvec v2) |
vec | vec_new_add (vec v1, vec v2) |
ivec | ivec_new_add (ivec v1, ivec v2) |
void | vec_sub (vec v1, vec v2) |
void | ivec_sub (ivec v1, ivec v2) |
void | cvec_sub (cvec v1, cvec v2) |
vec | vec_new_sub (vec v1, vec v2) |
ivec | ivec_new_sub (ivec v1, ivec v2) |
void | vec_mul (vec v1, vec v2) |
void | ivec_mul (ivec v1, ivec v2) |
void | cvec_mul (cvec v1, cvec v2) |
vec | vec_new_mul (vec v1, vec v2) |
ivec | ivec_new_mul (ivec v1, ivec v2) |
void | vec_div (vec v1, vec v2) |
void | ivec_div (ivec v1, ivec v2) |
void | cvec_div (cvec v1, cvec v2) |
vec | vec_new_div (vec v1, vec v2) |
ivec | ivec_new_div (ivec v1, ivec v2) |
double | vec_inner_product (vec v1, vec v2) |
int | ivec_inner_product (ivec v1, ivec v2) |
double | vecivec_inner_product (vec v1, ivec v2) |
int | bvecivec_inner_product (bvec v1, ivec v2) |
double | vec_inner_product_robust (vec v1, vec v2) |
void | cvec_conj_mul (cvec v1, cvec v2) |
Component per component arbitrar function | |
void | vec_apply_function (vec v, it_function_t function, it_args_t args) |
vec | vec_new_apply_function (vec v, it_function_t function, it_args_t args) |
ivec | ivec_apply_function (ivec v, it_ifunction_t function, it_args_t args) |
Set, sorting and finding functions | |
void | vec_reverse (vec v) |
void | ivec_reverse (ivec v) |
void | bvec_reverse (bvec v) |
void | cvec_reverse (cvec v) |
vec | vec_new_reverse (vec v) |
ivec | ivec_new_reverse (ivec v) |
bvec | bvec_new_reverse (bvec v) |
cvec | cvec_new_reverse (cvec v) |
idx_t | vec_count (vec v, double a) |
idx_t | ivec_count (ivec v, int a) |
idx_t | bvec_count (bvec v, byte a) |
idx_t | cvec_count (cvec v, cplx a) |
idx_t | vec_find_first (vec v, double a) |
idx_t | ivec_find_first (ivec v, int a) |
idx_t | bvec_find_first (bvec v, byte a) |
idx_t | cvec_find_first (cvec v, cplx a) |
ivec | vec_find (vec v, double a) |
ivec | ivec_find (ivec v, int a) |
ivec | bvec_find (bvec v, byte a) |
ivec | cvec_find (cvec v, cplx a) |
idx_t | vec_find_sorted (vec v, double a) |
idx_t | ivec_find_sorted (ivec v, int a) |
idx_t | bvec_find_sorted (bvec v, byte a) |
ivec | vec_replace (vec v, double a, double b) |
ivec | ivec_replace (ivec v, int a, int b) |
ivec | bvec_replace (bvec v, byte a, byte b) |
ivec | cvec_replace (cvec v, cplx a, cplx b) |
vec | vec_new_concat (vec v1, vec v2) |
ivec | ivec_new_concat (ivec v1, ivec v2) |
bvec | bvec_new_concat (bvec v1, bvec v2) |
cvec | cvec_new_concat (cvec v1, cvec v2) |
vec | vec_new_unique (vec v) |
ivec | ivec_new_unique (ivec v) |
bvec | bvec_new_unique (bvec v) |
vec | vec_new_union (vec v1, vec v2) |
ivec | ivec_new_union (ivec v1, ivec v2) |
bvec | bvec_new_union (bvec v1, bvec v2) |
vec | vec_new_intersection (vec v1, vec v2) |
ivec | ivec_new_intersection (ivec v1, ivec v2) |
bvec | bvec_new_intersection (bvec v1, bvec v2) |
vec | vec_index_by (vec v, ivec idx) |
ivec | ivec_index_by (ivec v, ivec idx) |
bvec | bvec_index_by (bvec v, ivec idx) |
cvec | cvec_index_by (cvec v, ivec idx) |
void | Vec_sort (Vec v, int(*elem_leq)(const void *, const void *)) |
void | vec_sort (vec v) |
void | ivec_sort (ivec v) |
void | bvec_sort (bvec v) |
ivec | Vec_sort_index (Vec v, int(*elem_leq_idx)(const void *, const void *)) |
ivec | vec_sort_index (vec v) |
ivec | ivec_sort_index (ivec v) |
ivec | bvec_sort_index (bvec v) |
Special vectors | |
void | vec_range (vec) |
void | ivec_range (ivec) |
void | bvec_range (bvec) |
void | cvec_range (cvec) |
vec | vec_new_range (idx_t n) |
ivec | ivec_new_range (idx_t n) |
bvec | bvec_new_range (idx_t n) |
cvec | cvec_new_range (idx_t n) |
void | vec_1N (vec) |
void | ivec_1N (ivec) |
void | bvec_1N (bvec) |
void | cvec_1N (cvec) |
vec | vec_new_1N (idx_t n) |
ivec | ivec_new_1N (idx_t n) |
bvec | bvec_new_1N (idx_t n) |
cvec | cvec_new_1N (idx_t n) |
void | vec_arithm (vec, double start, double incr) |
void | ivec_arithm (ivec, int start, int incr) |
void | bvec_arithm (bvec, byte start, byte incr) |
void | cvec_arithm (cvec, cplx start, cplx incr) |
vec | vec_new_arithm (double start, double incr, idx_t N) |
ivec | ivec_new_arithm (int start, int incr, idx_t N) |
bvec | bvec_new_arithm (byte start, byte incr, idx_t N) |
cvec | cvec_new_arithm (cplx start, cplx incr, idx_t N) |
void | vec_geom (vec, double start, double r) |
void | ivec_geom (ivec, int start, int r) |
void | bvec_geom (bvec, byte start, byte r) |
void | cvec_geom (cvec, cplx start, cplx r) |
vec | vec_new_geom (double start, double r, idx_t N) |
ivec | ivec_new_geom (int start, int r, idx_t N) |
bvec | bvec_new_geom (byte start, byte r, idx_t N) |
cvec | cvec_new_geom (cplx start, cplx r, idx_t N) |
cvec | cvec_new_unit_roots (idx_t N) |
Random vectors | |
void | vec_rand (vec v) |
vec | vec_new_rand (idx_t N) |
void | vec_randn (vec v) |
vec | vec_new_randn (idx_t N) |
ivec | ivec_new_perm (size_t N) |
Convolution | |
vec | vec_conv (vec v1, vec v2) |
ivec | ivec_conv (ivec v1, ivec v2) |
Vector <-> sparse vectors conversion | |
void | vec_to_spvec (vec v, ivec *svi_out, vec *sv_out) |
void | ivec_to_spivec (ivec v, ivec *svi_out, ivec *sv_out) |
vec | spvec_to_vec (ivec svi, vec sv, int n) |
ivec | spivec_to_ivec (ivec svi, ivec sv, int n) |
double | spvec_inner_product (ivec svi1, vec sv1, ivec svi2, vec sv2) |
int | spivec_inner_product (ivec svi1, ivec sv1, ivec svi2, ivec sv2) |
#define IT_ALLOC_ALIGN (sizeof(cplx)) |
#define Vec_element_size | ( | v | ) | (Vec_header(v).element_size) |
Definition at line 96 of file vec.h.
Referenced by __it_separable2D_itransform(), __it_separable2D_transform(), __Vec_copy(), Mat_set_col(), Vec_clone(), Vec_new_deinterleave_block(), Vec_new_interleave_block(), Vec_sort(), and Vec_sort_index().
#define Vec_header | ( | v | ) | (*(((Vec_header_t *) (v)) - 1)) |
Definition at line 95 of file vec.h.
Referenced by __it_wavelet2D_itransform(), __it_wavelet2D_transform(), __wavelet_itransform(), __wavelet_transform(), and it_vfprintf().
typedef struct _Vec_header_ Vec_header_t |
Definition at line 73 of file vec.c.
References _Vec_header_::element_size, IT_ALLOC_ALIGN, it_assert, _Vec_header_::length, _Vec_header_::length_max, and _Vec_header_::ptr.
Referenced by __Mat_new_alloc(), __Vec_new(), and __Vec_new_realloc().
|
|